Hallo
Ich möchte gerne 6 LED-Lampen über den RP schalten
Dazu nutze ich die GPIO´s 2 und 22 als Taster – werden diese geschaltet startet ein Skript.
Dieses schaltet der reihe nach die GPIOS 21 20 26 16 19 13 diese schalten je ein Relais das dann die LED an bzw. ausschaltet.
Soweit habe ich das auch am Laufen.
Jetzt möchte ich gerne das wenn ich Taster 1 betätige das die GPIO´s der Reihe nach 21 20 26 16 19 13 schaltet und wenn ich Taster 2 betätige die GPIO´s umgekehrt geschaltet werden also 13 19 16 26 20 21.
Starter ich Taster 1 schalten die Relais und starte ich NUR Taster 2 schalten die Relais auch.
Starte ich aber beide Taster klicken die Relais auf und ab.
Die taster habe ich so aussehen:
previous=$(cat /sys/class/gpio/gpio2/value)
# Endlose Schleife
while true
do
# Den Zustand des Eingangs lesen
pin=$(cat /sys/class/gpio/gpio2/value)
# Wenn der Eingang von 0 auf 1 gewechselt hat
if [ $pin -gt $previous ]
then
# Das Programm starten
bash /home/pi/lameein2.sh
else
# Eine halbe Sekunde schlafen, damit der Prozessor nicht heissläuft
bash /home/pi/lameaus2.sh
fi
# Der aktuelle Wert wird der alte Wert für den nächsten Durchlauf
previous=$pin
done
-------------------------------
Der zweie Taster steuert dann den GPIO 22 und startet lamein / aus .sh
Die sehen so aus:
Lamein.sh
#!/bin/sh
for Port in 21 20
do
echo "0" > /sys/class/gpio/gpio${Port}/value
done
sleep 1
for Port in 26 16
do
echo "0" > /sys/class/gpio/gpio${Port}/value
done
sleep 1
for Port in 19 13
do
echo "0" > /sys/class/gpio/gpio${Port}/value
done
lamaus.sh
#!/bin/sh
for Port in 21 20
do
echo "1" > /sys/class/gpio/gpio${Port}/value
done
sleep 1
for Port in 26 16
do
echo "1" > /sys/class/gpio/gpio${Port}/value
done
sleep 1
for Port in 19 13
do
echo "1" > /sys/class/gpio/gpio${Port}/value
done
wie bekomm ich das hin ohne das sich die beiden taster beißen ….
MFG