Das Schieberegister – mehr Pins am Arduino

Photo of an Arduino

So langsam gehen einem die Ausgänge beim Programmieren mit dem Arduino? Schieberegister bieten hier Abhilfe und mit der Bibliothek Schieberegister eine einfache Möglichkeit die Ausgänge am Microcotroller zu erweitern. Genau wie beim Arduino Framework mit digitalWrite() lassen sich die Register ansteuern.

Die Bibliothek zur Ansteuerung mehrer Schieberegister steht auf Github zum Download bereit. Die Bibliothek übernimmt das Bitshifting und ermöglicht es mehrere Register des Typs 74HC595 in Reihe zuschalten.

Anschluss des Schieberegisters

Das Schieberegister wird an den Microcontroller angeschlossen. Hierzu finden sich viele Anleitungen im Netz. Nach dem Anschluss kann die Programmierung mit Hilfe der Bibliothek Schieberegister erfolgen.

Anwendung der Bibliothek

Füge den Ordner mit der Bibliothek zunächst unter /Dokumente/Arduino/libraries/ ein. So wird die Bibliothek in der Arduino IDE sichtbar. Nachdem die Bibliothek unter /Dokumente/Arduino/libaries/ eingefügt wurde kann Sie in der Arduino IDE mit #include eingebunden werden.

#include <shiftregister.h>

Außerdem kannst du nun unter Datei – Beispiele ein Blinkbeispiel direkt öffnen. Du findest es allerdings auch am Ende dieser Seite.

Konstruktor

Die Registerreihe wird zunächst definiert. Hier wird als erster Parameter die Anzahl der Register, die in Reihe angeschlossen sind angegeben. Dann folgen die Pins SH_CP, ST_CP und DS an denen das Register angeschlossen ist.

shiftregister register1(1, 8, 9, 10);        //initilisiere ein Objekt von shiftregister: register(number of Registers, SH_CP, ST_CP, DS-Pin)
                                          

Pins steuern

Über die Methode setPin können Pins mit Pinnummer und gewünschtem Status HIGH oder LOW gesteuert werden. Die Nummerierung der Pins am Schieberegister beginnt bei eins am ersten Pin des Registers.

register1.setPin(1, HIGH);               //Pin 1 wird auf HIGH gesetzt

Pinstatus seriell ausgeben

printPinStatus() gibt die Stati aller Register in Reihe über den Seriellen Monitor aus. Dies kann bei der Fehlersuche helfen.

register1.printPinStatus();             //Methode um alle Werte eines Schieberegisterverbunds anzuzeigen

Pinstatus abfragen

Die Methode gibt den Pinstatus eines Pins am Register zurück.

register1.getPinStatus(2);//Ausgabe des Pinstatus an Pin 2

Die Methode getPinStatus() und printPinStatus() gibt lediglich den Status zurück, der durch die Methode setPin() angegeben wurde. Eigene Änderungen an der Ansteuerung am Schieberegister werden nicht ausgegeben.

Dokumentation

Auf Github findet sich zusätzlich eine pdf-Dokumentation zu der Bibliothek mit allen Methoden und entsprechenden Erklärungen.

Blink Beispiel

Eine Led an Pin 1 des Schieberegisters blink im Takt von 250 Millisekunden.

Weitere Projekte

Das Schieberegister – mehr Pins am Arduino

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen