Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

( gelöst ) Relais ansteuern

    Nobody is reading this thread right now.
hi @sralus,
ich bin leider noch nicht dazu gekommen mich damit näher zu beschäftigen ... mit den 2 Sensoren wird das ganze etwas kniffeliger ... Du könntest aber schon mal alle möglichen Fälle gedanklich durchspielen und versuchen diese hier niederzuschreiben ...
Nach dem Motto, was soll passieren wenn der 1. Sensor "Aktivität" meldet und der 2. meldet nichts ...
.. was soll passieren, wenn der 1. und 2. Sensor "Aktivität" melden ...
.. was soll passieren, wenn wenn beide Sensoren "Aktivität" melden und dann der 1. oder 2. Sensor "Inaktivität" meldet
Je mehr Fälle man hat und je genauer der einzelene Fall beschrieben ist ... umso einfach wird das runter-code'n ... dann ist es quasi nur noch Tipparbeit.
 
Hi
Soweit habe ich bisher ein Prog..
Rennt aber noch nicht wirklich....

Code:
#!/usr/bin/env python
#coding: utf8
import time
import RPi.GPIO as GPIO

# I/Os fuer die Melder (unten, oben)
Melder = [17, 4]

# I/Os fuer die Lampen (von unten nach oben)
Lampen = [13, 16, 19, 20, 21, 26]

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

UpDirection = False
DownDirection = False

def GPIO_Callback(Channel):
    # Wurde der Melder aktiviert oder ist er deaktiviert worden?
    State = GPIO.input(Channel)

    # Melder 1 (unten) aktiviert -> Schalte Lampen von unten nach oben an
    if(Channel == Melder[0]):
        UpDirection = True
   
    # Melder 2 (oben) aktiviert -> Schalte Lampen von oben nach unten an
    elif(Channel == Melder[1]):
        DownDirection = True

# Eingaenge fuer die Bewegungsmelder setzen
for Eingang in Melder:
    GPIO.setup(Eingang, GPIO.IN, pull_up_down = GPIO.PUD_UP)
    GPIO.add_event_detect(Eingang, GPIO.BOTH, callback = GPIO_Callback, bouncetime = 2000)

# Ausgaenge fuer die Lampen setzen
for Ausgang in Lampen:
    GPIO.setup(Ausgang, GPIO.OUT)
    GPIO.output(Ausgang, GPIO.LOW)

if(__name__ == "__main__"):
    while(True):
        if(UpDirection):
            # Schalte die Lampen von unten nach oben ein
            for Lampe in Lampen:
                GPIO.input(Lampe, GPIO.HIGH)
                time.sleep(0.5)
           
            # Schalte die Lampen von oben nach unten aus
            for Lampe in Lampen[::-1]:
                GPIO.output(Lampe, GPIO.LOW)
                time.sleep(0.5)

            UpDirection = False
        elif(DownDirection):
            # Schalte die Lampen von oben nach unten ein
            for Lampe in Lampen[::-1]:
                GPIO.output(Lampe, GPIO.HIGH)
                time.sleep(0.5)

            # Schalte die Lampen von unten nach oben aus
            for Lampe in Lampen:
                GPIO.output(Lampe, GPIO.LOW)
                time.sleep(0.5)

            UpDirection = False

GPIO.cleanup()
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben