Mål: Att kunna använda shiftregister för att kunna styra flera lysdioder med bara några arduino pins.
Teori: T.ex. talet 26 motsvaras av 00011010 (8 bits) i det binära talsystemet. Då vi skickar det här talet till shiftregistern så kommer de 8 pins som går till lysdioderna att antigen bli HIGH eller LOW beroende på om de tar emot en 1:a eller 0:a.
Vad gör de tre kablarna?
Datapin: hit skickas antingen 0 eller 1
Clockpin: det som tickar fram 0 eller 1 till shiftregistern
Latchpin: när alla 8 bitar är inne kan man sätta latchpin HIGH och då skrivs alla dessa värden (0 eller 1) från registret ut till lysdioderna. Talet 26 kommer att få lysdioderna 2, 4 och 5 att börja lysa.
Koppling: enligt bilden
Fritzing kopplingsschema
Arduino kod
int latchPin = 8; int dataPin = 11; int clockPin = 12; int seq[14] = {1,2,4,8,16,32,64,128,64,32,16,8,4,2}; void setup() { pinMode(dataPin, OUTPUT); pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); } void loop() { for (int n = 0; n < 14; n++) { digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, MSBFIRST, seq[n]); digitalWrite(latchPin, HIGH); delay(100); } }