| Raspberry Pi: GPIOs mit Bash steuern
Die SchaltungFolgend ein kleines Beispiel mit 3 Tastern und zwei Leuchtdioden. Nachdem die Eingänge und Ausgänge getestet wurden, wird ein einfaches Script, an dem die Taster und Leuchtdioden teilnehmen, erstellt. Mit dem ersten Taster wird die erste Leuchtdiode eingeschaltet. Mit dem zweiten Taster die zweite. Beim Betätigen des dritten Tasters wird ein Blinkmodus aktiviert und die beiden Leuchtdioden werden dann abwechselnd ein- und ausgeschaltet. Der SchaltplanZunächst skizzieren wir einen Schaltplan. Es werden insgesamt fünf Pins des Raspberry Pi in Anspruch genommen. Für die Aufgabe kann jeder beliebige Pin gewählt werden. Drei Pins, an die die Taster S1 bis S3 angeschlossen werden, werden dann anschließend als Eingänge definiert. Mit dem vierten und fünften Pin, die als Ausgänge definiert werden, werden die Leuchtdioden angesteuert. Mit drei Pulldown Widerständen R1 bis R3 stellen wir sicher, dass die Eingänge des Raspberry Pi bei geöffneten Tastern den Wert Low haben. Schaltplan Beispiel für den Aufbau einer Testschaltung: Testschaltung Bevor man sich dem Script widmet, sollen die einzelnen Verbindungen überprüft werden. Zu beachten ist, dass manche Funktionen
nur dem Root-Nutzer zugänglich sind (Bei Bedarf „sudo“ voranstellen). Mit einigen Kommandos in dem LXTerminal wird die Leuchtdiode LD1
ein- und ausgeschaltet:
Das ScriptNachdem alle Anschlüsse geprüft wurden, kann ein Script geschrieben werden. Bash ist eine eigenständige
Programmierungssprache, hat viele Anhänger und wird oft eingesetzt. Das Programm (Script) wird in einer Textdatei geschrieben, die
anschließend ausführbar gemacht werden muss. Mit
# ---------------------------------------------------------- # Raspberry Pi, GPIOs mit Bash steuern # ---------------------------------------------------------- # Ausführung mit Bash #!/bin/bash # GPIO-Schnittstelle generieren sudo echo 27 > /sys/class/gpio/export sudo echo out > /sys/class/gpio/gpio27/direction sudo echo 22 > /sys/class/gpio/export sudo echo out > /sys/class/gpio/gpio22/direction sudo echo 16 > /sys/class/gpio/export sudo echo in > /sys/class/gpio/gpio16/direction sudo echo 20 > /sys/class/gpio/export sudo echo in > /sys/class/gpio/gpio20/direction sudo echo 21 > /sys/class/gpio/export sudo echo in > /sys/class/gpio/gpio21/direction Ende=0 # HAUPTPROGRAMM while [ $Ende -eq "0" ]; do # Sequenz Leuchtdiode 1 EIN Taster1=$(cat /sys/class/gpio/gpio16/value) if [ $Taster1 -eq "1" ]; then echo 1 > /sys/class/gpio/gpio27/value echo 0 > /sys/class/gpio/gpio22/value fi # Sequenz Leuchtdiode 2 Ein Taster2=$(cat /sys/class/gpio/gpio20/value) if [ $Taster2 -eq "1" ]; then echo 1 > /sys/class/gpio/gpio22/value echo 0 > /sys/class/gpio/gpio27/value fi # Sequenz Blinker Taster3=$(cat /sys/class/gpio/gpio21/value) if [ $Taster3 -eq "1" ]; then Blinker=1 for i in {1..20}; do echo 1 > /sys/class/gpio/gpio27/value echo 0 > /sys/class/gpio/gpio22/value sleep 0.3 echo 0 > /sys/class/gpio/gpio27/value echo 1 > /sys/class/gpio/gpio22/value sleep 0.3 done Ende=1 fi done # GPIO-Schnittstelle wieder deaktivieren for j in 16 20 21 22 27; do sudo echo $j > /sys/class/gpio/unexport done # ---------------------------------------------------------- Nachdem das Listing erstellt wurde wird die Datei mit Strg+O abgespeichert. Mit STRG+X kann sie dann verlassen werden. Das
Programm (Script) wird im LXTerminal, nachdem es ausführbar gemacht wurde, gestartet:
|
Google-Suche auf MEINE-SCHALTUNG.de : |