I ARDUINO har vi 20 I / O-stift, så vi kan programmera 20 stift av UNO som ska användas antingen som ingång eller utgång. Även om det finns fler stift på ATMEGA328P-styrenheten än på UNO, beror det på att vissa stift är standardinställda när du utformar kortet.
Nu för vissa applikationer behöver vi mer än 30 stift, säg om vi vill designa en 5x5x5 LED CUBE, så för detta behöver vi 5x5 + 5 = 30pins. I sådana fall använder vi seriella till parallella omvandlarchips eller skiftregister. Ett skiftregisterchip tar data från UNO-kortet seriellt och ger utdata i 8-bitars parallellkonfiguration.
Komponenter krävs
Hårdvara: Arduino uno-kort, anslutningsstift, 220Ω motstånd, LED (åtta delar), 74HC595 IC, brödbräda.
Soffbord: Arduino varje natt
Kretsschema och arbetsförklaring
Här ska vi skicka data i åtta bitars storlek genom en enda kanal för att skifta register. Skiftregistret tar data seriellt och lagrar dessa data i sitt minne. När data har skickats av styrenheten kommer vi att skicka ett kommando till skiftregistret för att visa data vid utgången, med detta kommando lägger skiftregistret ut data parallellt.
Denna utgång visas med åtta lysdioder anslutna vid utgången.
För att ansluta skiftregistret till Arduino UNO måste vi göra två saker:
|
Först måste vi ställa in tre UNO-stift som utdata. Då måste vi ansluta digital stift, klockstift och spärrstift till dessa tre utgångsstift. Därefter måste vi berätta för UNO vilken stift av chip som är ansluten till UNO-kortstiften. Detta görs genom att enkelt skriva i kommando ”
shiftOut(dataPin, clockPin, data);
”. Data här kan vara i binär eller decimal eller hexadecimal. Den åtta bitars information som måste skickas skrivs i stället för ”data”.
De skickade uppgifterna görs som:
Inaktivera spärren, detta berättar för chip att inte visa output för nu.
För åtta gånger kommer vi att skicka data med klocka i serie, så klocka hög låg-dataklocka låg- och så vidare.
Aktivera spärr, detta berättar för chip att visa åtta bitars data.
Arbetet med ARDUINO med SHIFT REGISTER förklaras steg för steg i C-koden nedan: