Stap 2: Basic bedrading en werking
De 74HC164 is een 14 pin chip, heeft 4 input pins, 8 output pinnen, macht en gemalen, dus laten we beginnen vanaf de bovenkant.
Pin 1 en 2 zijn beide seriële ingangen, ze zijn opgezet als een logische AND-gate, wat betekent dat ze beide moeten logica hoge (ie 5 volt) om de bits te bezien als een 1, een laag staat (0 volt) op beide zal lezen als het getal nul. We hoeven niet echt dit en zijn gemakkelijker te behandelen in software, dus kies een en bind het aan V + dus er altijd hoog staat. Ik kies ervoor om een jumper van pin 1 naar pin 14 (V +) gebruiken, daar u alleen pop een breadboard jumper over de chip kunt. De resterende seriële input (pin 2 in mijn schema's) zal goto digitale pin 2 van de arduino.
Pinnen 3,4,5 en 6 van de 74HC164 zijn de eerste 4 bytes van output
Pin 7 verbindt op grond
Springen naar rechts, pin 8 is de pin klok, dit is hoe het shift register weet dat de volgende seriële bit is klaar om te lezen, dit moet worden aangesloten op de digitale pen 3 op de arduino.
Pin 9 is het wissen van het gehele register tegelijk, als het gaat laag, hebt u de mogelijkheid om het te gebruiken, maar niets in dit ondoorgrondelijke doet, dus aan V koppelen +
pinnen 10, 11 12 en 13 zijn de laatste 4 bytes van output
pin 14 is de macht van de chips
Operatie
Eerst moet u de seriële input van het register (digitale pin 2 op de arduino) hoog of laag, vervolgens u wilt spiegelen de klok pin (digitale pin 3) van laag naar hoog, het shift register zal lezen van de gegevens op de seriële input en verschuiving van de pennen door 1, herhaal dit 8 keer en u alle 8 uitgangen hebt ingesteld.
Dit kan worden gedaan met de hand met voor loops en digitale schrijft in de arduino IDE, maar aangezien dit een veel voorkomende hardware niveau communicatie (SPI) hebben een enkele functie die het voor je doet.
shiftOut (dataPin, clockPin, bitOrder, waarde)
Gewoon vertellen waar de gegevens- en pinnen zijn aangesloten op de arduino, op welke manier voor het verzenden van de gegevens en wat te verzenden, zijn genomen verzorgd voor u (handig)