28 Led bar graph shift register

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

28-led-bar-graph-shift-register-latch

 

 

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);
    }
}


 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s