/* Das nachfolgende Codebeispiel zeigt die Verwendung des Schieberegister Bausatzes. Das Programm wurde für die Verwendung mit einem DigiX an den Pins 90 bis 93 geschrieben, kann aber durch Anpassen der Pin-Nummern auch an jedem andere Arduino kompatiblen Board verwendet werden. */ // Pins für Schieberegister definieren int latchPin = 90;// Pinout: LAT int resetPin = 91;// Pinout: RES int clockPin = 92;// Pinout: CLK int dataPin = 93;// Pinout: DIN void setup() { // Pins für Schieberegister konfigurieren pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); pinMode(resetPin, OUTPUT); digitalWrite(resetPin, HIGH); } void loop() { // Schieberegister auf Schreiben vorbereiten digitalWrite(latchPin, LOW); // nacheinander 4 // schreiben (4 x shiftOut(dataPin, shiftOut(dataPin, shiftOut(dataPin, shiftOut(dataPin, Bytes in die Schieberegister 8 Bit = 32 Ausgänge) clockPin, LSBFIRST, 0); clockPin, LSBFIRST, 0); clockPin, LSBFIRST, 0); clockPin, LSBFIRST, 0); // geschriebene Werte übernehmen digitalWrite(latchPin, HIGH); // eine Sekunde warten delay(1000); // anderes Bitmuster ausgeben digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, LSBFIRST, shiftOut(dataPin, clockPin, LSBFIRST, shiftOut(dataPin, clockPin, LSBFIRST, shiftOut(dataPin, clockPin, LSBFIRST, digitalWrite(latchPin, HIGH); 0b00000001); 0b10101010); 0b11110000); 0b11111111); // erneut eine Sekunde warten delay(1000); }