Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenloses 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 Bereiche, welche für Gäste verwehrt bleiben

( gelöst ) Relais ansteuern

sralus

Ist oft hier
Registriert
25. April 2010
Beiträge
126
Reaktionspunkte
19
Punkte
38
Hallo
habe ein skript geschrieben welches auch funktioniert aber beim ausschalten stimmt die reinfolge nicht immer.Es ist bestimmt auch nicht 1A programiert ich bin halt neu in dem Bereich.
Evtl. kann das ja jemand abändern bzw.besser aufbauen,.
Besten Dank vorab.

Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!
 
Zuletzt bearbeitet von einem Moderator:
Hi @sralus,
kannst du beschreiben, was du genau vorhast und welcher GPIO-PIN mit welchem Bauteil an welchem PIN verbunden ist? Die Initialisierung vom GPIO-PIN 4 sollte als IN sein; ist doch bestimmt ein Taster-ähnliches Bauteil oder? .. und die mehrfachen if ( GPIO.input(4) == False ) Abfragen; sowie doppelte Verneinungen; kann man bestimmt eleganter lösen. Die GPIo_Output findet man so auch nicht in der Doku.
 
Ich habe einen bewegungsmelder am anfang meiner auffahrt .. dieser schaltet ein octocopler relais.. dies schaltet ein GPIO . das wiederum schaltet ein skript welches meine Relais schalten . Die relais schalten je eine Lampe.
Ich habe 6 lampen in meiner aufhart verbaut und diese sollen der reihe nach angehen.
Wenn der bewegungsmelder ausschaltet sollen die Lampen der reieh nach wieder ausgehen.
Das habe ich soweit auch hinbekommen.
Jetzt habe ich am Ende der auffahr noch einen zweiten Bewegungsmelder. Der soll das gleiche machen wie der erste bewegungsmelde (nur umgekehrt)
So ist meine Idee ..
 

Anhänge

  • rp00.jpg
    rp00.jpg
    229,4 KB · Aufrufe: 38
hi,
wenn das hier die Initialisierung vom GPIO-PIN für den Bewegungsmelder ist GPIO.setup(4,GPIO.OUT) .. dann muss der mit GPIO.IN initialisiert werden ... ansonsten ist der Zustand mehr oder weniger zufällig. Jedes Relay würde ich mit einem einzelnen Befehl steuern .. ich habe bis jetzt noch nie gesehen, das man der output-Funktion eine Liste übergeben und als Zustand nutze GPIO.LOW und GPIO.HIGH und nicht GPIO.OUT/GPIO.IN .. auch wenn intern beide Varianten auf "0" und "1" zurückfallen; macht es aber einfacher zu verstehen.
 
Hi Danke für deine Erklärung
Hab es jetzt so geschrieben:

Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!
 
Zuletzt bearbeitet:
Hi,

so grob könnte es aussehen ... muss natürlich noch Finetuning ran .. vor allem der Bewegungsmelder muss noch sauber abgefragt werden.


Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!
 
Zuletzt bearbeitet:
hi
ich bekomm den fehler ´:
File "ok.py", line 31
lastState = state
^
IndentationError: unindent does not match any outer indentation level
 
Traceback (most recent call last):
File "ok.py", line 34, in <module>
state = GPIO.input(switch)
NameError: name 'switch' is not defined

muss da die 4 rein ?

Danke !
Funktioniert ...

Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!
 
Wie könnte ich jetzt noch dazu einen zweiten bewegungsmelder einbauen ?
also GPIO 4 schaltet den einen und GPIO 22 soll den anderen Bewegunsmelder schalten.
Die Relais sollen dann genau andersherum schalten....
 
Hi,
du kannst den zweiten Bewegungsmelder direkt hinter dem anderen abfragen lassen und musst dir den entsprechenden Status in einer neuen Variable merken; auch den letzten Status vom zweiten Melder muss du dir merken.
Dann muss man entscheiden, welcher Status hat mehr Priorität ... ... also, was soll zB passieren, wenn beide Bewegungsmelder "Aktivität" signalierisen ... bleiben die Lampen an oder gehen die aus ...
 
Hi
Danke für deine Info …
Bin schonmal angefangen aber leider fehlt mir das nötige wissen für den entsprechenden Status in einer neuen Variable. zudem soll der erst geschaltete Bewegungsmelder Priorität haben.... Wenn du zeit und lust findest kannst du mir ja evtl. dabei helfen .. bzw. mir einen ansatz geben auf dem ich weiter aufbauen kann..

Beste Grüß

Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!
 
Zuletzt bearbeitet von einem Moderator:
Hi ...
du musst alles in der ersten while Schleife machen ... weil die 2. while Schleife nie verwendet wird ... die erste while Schleife wird nie verlassen und läuft quasi unendlich
 
Hi !!!
Leider bekomm ich das nicht hin ..
So habe ich es bisher geschrieben aber klappt nicht so wie es soll ...
Beste Grüße

Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben