Arduino Tutorial: Mehr Schieberegister

 

 

Wie man einen Schieberegister verwendet, weißt du nun jetzt. Ich werde dir jetzt noch zeigen wie du deinen Schieberegister um noch einen Schieberegister erweitern kannst.

 

 

Was benötigst du?

  • 1 x Arduino Uno

 

  • 1 x USB Kabel

 

  • 1 x Steckbrett

  

  • 1 x Schieberegister (Typ 74HC595)

 

  • 8 x LED

 

  • 8 x Ohmscher Widerstand (220 Ohm)

 

  •  Jump Wire (Männlich)

 

 

Wie sieht die Schaltung aus?

Der Code

int sh = 8;                            // SH_CP Pin

int st = 9;                            // ST_CP Pin

int ds = 10;                           // DS Pin

byte daten1 = B10101010;               // Variable für die LEDs

                                       // ( 0 = LOW = aus, 1 = HIGH = an)

byte daten2 = B11100011;               //

 

void setup() {

 

  pinMode(sh, OUTPUT);                 //

  pinMode(st, OUTPUT);                 // Pins für Schieberegister als Ausgang definieren

  pinMode(ds, OUTPUT);                 //

}

 

void loop() {

 

 

                                    

  digitalWrite(st,0);

  shiftOut(ds, sh, MSBFIRST, daten1);  // Die ersten 8 Bits in das 2. Schieberegister

                                       // speichern

  shiftOut(ds, sh, MSBFIRST, daten2);  // Die letzten 8 Bits in das 1. Schieberegister

                                       // speichern

  digitalWrite(st, 1);                 // Wenn for- Schleife beendet wurde, ST_CP Pin auf 1

                                       // (HIGH) setzen damit 

                                       // die gespeicherten Daten ausgegeben werden.

                                       // (Erst dann leuchten die LEDs)

 

}

 

 

Den Sketch kannst du auch hier herunterladen.

 

 

Code- Review

Eigentlich hast du hier nichts anderes gemacht wie in den vorherigen Kapiteln. Dir sollte nur klar werden ,dass der 1. Bit in daten1 in die letzte Registerzelle am 2. Schieberegister ausgegeben wird. 

 

Wichtig bei Schaltungen mit mehreren Schieberegistern. Der SH_CP Pin und ST_CP Pin werden von Pin 8 bzw. Pin 9 an die zugehörigen Pins der Schieberegister parallel geschaltet. Der DS Pin des ersten Registers wird mit Pin 10 verbunden. Der DS Pin des 2. Registers wird mit dem Qi Pin des 1. Schieberegisters verbunden. Die Schieberegister kann man so theoretisch bis ins unendliche fortführen.

Jetzt bist du dran

 Versuche nun...

 

a) ein Lauflicht zu erzeugen der alle 16 LEDs durchläuft-

b) zwei Lauflichter parallel Laufen zu lassen.

 

Dazu kannst du wieder ein Daten- Array initialisieren, wenn du möchtest.

 

Die Lösungen findest du hier.

 

 

 

 

Wenn du hier irgendetwas vermisst, bessere Ansätze hast oder dir etwas nicht klar ist, zögere nicht einen Kommentar zu hinterlassen.

Kommentar schreiben

Kommentare: 0