În ARDUINO avem 20 de pini I / O, deci putem programa 20 de pini UNO pentru a fi folosiți ca intrare sau ieșire. Deși există mai mulți pini pe controlerul ATMEGA328P decât pe UNO, acest lucru se datorează faptului că, în timpul proiectării plăcii, unii pini sunt impliciți.
Acum, pentru unele aplicații avem nevoie de mai mult de 30 de pini, spuneți dacă vrem să proiectăm un LED CUBE 5x5x5, deci pentru aceasta avem nevoie de 5x5 + 5 = 30 pini. Pentru astfel de cazuri, folosim cipuri de conversie serial-paralel sau registru de schimbare. Un cip de registru de schimbare preia datele de pe placa UNO în serie și oferă ieșire în configurație paralelă de 8 biți.
Componente necesare
Hardware: placă Arduino uno, pini de conectare, rezistență de 220Ω, LED (opt bucăți), IC 74HC595, placă de pâine.
Sofware: Arduino în fiecare noapte
Diagrama circuitului și explicația de lucru
Aici vom trimite date în dimensiune de opt biți printr-un singur canal pentru a schimba registrul. Registrul de schimbare preia datele în serie și stochează aceste date în memoria sa. Odată ce datele sunt trimise de controler, vom trimite o comandă pentru a schimba registrul pentru a afișa datele la ieșire, cu această comandă registrul de schimbare scoate datele în paralel.
Această ieșire este afișată de opt LED-uri conectate la ieșire.
Pentru conectarea registrului de schimbare la Arduino UNO, trebuie să facem două lucruri:
|
Mai întâi trebuie să setăm trei ieșiri UNO ca ieșire. Apoi, trebuie să conectăm pinul digital, pinul de ceas și pinul de blocare la acești trei pini de ieșire. După aceea, trebuie să-i spunem UNO care pin de cip este conectat la pinii de bord UNO. Acest lucru se face prin scrierea simplă la comanda „
shiftOut(dataPin, clockPin, data);
”. Datele de aici pot fi binare sau zecimale sau hexazecimale. Informațiile de opt biți care trebuie trimise sunt scrise în locul „datelor”.
Datele trimise se fac astfel:
Dezactivați zăvorul, acest lucru spune cipului să nu afișeze ieșirea pentru moment.
De opt ori vom trimite datele cu ceasul în serie, deci ceasul mare este scăzut cu ceasul de date scăzut și așa mai departe.
Activați blocarea, acest lucru îi spune cipului să afișeze date pe opt biți.
Lucrul ARDUINO cu SHIFT REGISTER este explicat pas cu pas în codul C dat mai jos: