In ARDUINO hebben we 20 I / O-pinnen, dus we kunnen 20 pinnen van UNO programmeren om te gebruiken als invoer of uitvoer. Hoewel er meer pinnen op de ATMEGA328P-controller zijn dan op UNO, komt dit doordat bij het ontwerpen van het bord sommige pinnen standaard zijn ingesteld.
Nu hebben we voor sommige toepassingen meer dan 30 pinnen nodig, bijvoorbeeld als we een 5x5x5 LED CUBE willen ontwerpen, dus hiervoor hebben we 5x5 + 5 = 30 pinnen nodig. Voor dergelijke gevallen gebruiken we serieel naar parallel converterchips of schuifregister. Een schuifregisterchip neemt gegevens serieel van het UNO-bord en geeft uitvoer in 8 bit parallelle configuratie.
Componenten vereist
Hardware: Arduino uno-bord, verbindingspinnen, 220Ω-weerstand, LED (acht stuks), 74HC595 IC, breadboard.
Software: Arduino 's avonds
Schakelschema en werkuitleg
Hier gaan we gegevens in acht bit-grootte verzenden via een enkel kanaal om het register te verschuiven. Het schuifregister neemt de gegevens serieel en slaat die gegevens op in zijn geheugen. Zodra de gegevens door de controller zijn verzonden, gaan we een commando sturen om het register te verschuiven om de gegevens aan de uitgang te tonen, met dit commando stuurt het schuifregister de gegevens parallel.
Deze output wordt weergegeven door acht LED's die bij de output zijn aangesloten.
Om het schuifregister met Arduino UNO te verbinden, moeten we twee dingen doen:
|
Eerst moeten we drie willekeurige pinnen van UNO als uitvoer instellen. Vervolgens moeten we de digitale pin, klokpin en grendelpin aansluiten op deze drie uitgangspennen. Daarna moeten we de UNO vertellen welke pin van de chip is verbonden met de UNO-kaartpinnen. Dit wordt gedaan door simpelweg het commando "
shiftOut(dataPin, clockPin, data);
" te schrijven. De gegevens hier kunnen binair, decimaal of hexadecimaal zijn. De acht bit informatie die verzonden moet worden, wordt geschreven in plaats van "data".
De verzonden gegevens worden gedaan als:
Schakel de vergrendeling uit, dit vertelt de chip om voorlopig geen uitvoer te tonen.
Acht keer zullen we gegevens met klok serieel verzenden, dus klok hoog laag-gegevens-klok laag-enzovoort.
Schakel vergrendeling in, dit vertelt de chip om 8-bits gegevens weer te geven.
De werking van ARDUINO met SHIFT REGISTER wordt stap voor stap uitgelegd in de onderstaande C-code: