Raspberry Pi / GPIO

  • Die GPIOs müssen Initialisiert werden
  • Im Unterverzeichnis des jeweiligen GPIOs kann in der direction Datei definiert werden ob der Pin als Ein- (in) oder Ausgang (out) fungieren soll.
  • Aus der Datei value kann im Modus Eingang der aktuelle Wert (High (1) oder Low (0)) ausgelesen werden. Im Modus Ausgang kann hier eine 1 oder 0 hineingeschrieben werden um den Pegel des Pins zu beeinflussen.

Umsetzung als Bashscript

raspi_-_get_gpio_demo.bash
#!/bin/bash
 
# RasPi I/O-Ports (GPIO) einfach auslesen mit BASH, ein simples Beispiel-Script
 
# Benutze I/O-Ports
ports='21 22'
 
# INIT
for port in ${ports} ; do
	echo "${port}" > '/sys/class/gpio/export'
	echo 'in' > "/sys/class/gpio/gpio${port}/direction"
done
# /INIT
 
# Schleife zum permanenten auslesen und anzeigen
while [ true ] ; do 
	for port in ${ports} ; do
		v="$(< "/sys/class/gpio/gpio${port}/value")"
		#echo "Debug: ${port} = ${v}"
		if [ "${v}" = '1' ] ; then 
			echo "Pin: ${port}: An"
		else
			echo "Pin: ${port}: Aus"
		fi
	done
	sleep 1s
done
# /Schleife zum permanenten auslesen und anzeigen
 
# FIN
  • Zukünftig: Eventuell über Cron abfragen um die Stabilität zu erhöhen
  • Zukünftig: Eventuell über Systemd?
  • Zuletzt geändert: 2016-10-28 11:02