2 Bewegungssensoren an einem PIN

Hallo liebe Forenmitglieder,

vielleicht kann mir jemand von Euch bei meinem Problem weiterhelfen. Habe dazu weder hier noch nebenan bei Google etwas gefunden, was mein Problem löst. Vielleicht ist es ja auch gar nicht lösbar.

Herausforderung:
Ich möchte zwei Bewegungssensoren (AM312) über einen D-Pin abfragen, um Pins zu sparen und weil ich einfach nur wissen möchte, ob - egal von welchem Sensor - eine Bewegung festgestellt wurde.

Dazu habe ich die zwei Sensoren über jeweils eine Diode an den Pin angeschlossen (funktioniert auch ohne Dioden nicht.)

Jetzt liefert mir der Pin nur ein HIGH-Signal, wenn beide Sensoren GLEICHZEITIG getriggert werden.
Was ich möchte ist aber, dass ich ein HIGH-Signal bekomme, wenn schon ein Sensor getriggert wurde.

Eigentlich müsste das HIGH-Signal eines einzelnen Sensors Richtung PIN doch das gleiche sein, egal ob ein oder zwei dieser Sensoren dran hängen.

Es wirkt als "wüsste" der Arduino vom zweiten Sensor und wartet ab, ob beide ein Signal liefern.

Im Anhang findet Ihr die verwendete Schaltung "2BewegungSensoren1Pin_Steckplatine.png".

Danke schon mal für Eure Antworten!

(deleted)

Hallo,

am Arduino liegt es nicht, du kannst ja mal den Pegel messen. Wenn man es nicht weiß ist messen angesagt.

Meine Vermutung geht dahin das der Pegel des Sensors entweder H oder L ist. Du gehst eigendlich davon aus das er bei L offen ist.

Wenn also einer H ist , und der andere L wird es so sein das der Sensor mit dem L Pegel den Gesamtpegel runter zieht und damit gilt L für den Knotenpunkt.

Du könntest versuchen beide Ausgänge über je einen Widerstand auf den Arduino zu legen. Wie hoch die alledings sein müssen musst Du mal probieren, hängt vom Innenwiderstand des Sensors ab. Damit ergibt sich dann ein Spannungsteiler eine Seite H , die andere L , damit könnte man eventuell einen Spannung einstellen die > 2,5V ist und damit würde halbwegs H erkannt.

Richtiger ist natürlich ein Logik ODER 74xx zu verwenden.

Heinz

Was da fehlt ist ein PullDown-Widerstand, damit der Eingangspin immer einen definierten Pegel hat. Bei deiner Beschaltung kannst Du den internen Widerstand nicht verwenden, da das ein PullUp Widerstand ist.

Praktisch machst Du mittels der 2 Dioden aus den Ausgängen 2 Open Collektor PNP Ausgänge. Die können das Pin auf +5V ziehen, auf LOW muß dies aber ein Widerstand machen.

Darum auch der Link von Peter: DRL (diode resistor logic)

Grüße Uwe

Danke schon mal für die schnellen und vielen Antworten!

Ich habe mit meinem Laien-Verständnis die Tipps versucht umzusetzen, soweit ich sie verstanden habe. Funktionieren tut's leider noch nicht.

Was ich getan habe:
Spannung am PIN gemessen:

Einzelnen Sensor angeschlossen:
Keine Bewegung=1,8V
Bewegung=4,2 Volt

2. Sensoren angeschlossen:
Keine Bewegung=0V
Bewegung nur am 1. Sensor=0V
Bewegung nur am 2. Sensor 1,8V
Bewegung an beiden Sensoren = 2,6V (daher wird dann auch das HIGH-Signal geliefert weil > 2,5V)

Pulldown
Ich habe dann mal einen 10K-Resistor als Pulldown parallel vom Pin zu Ground gelegt (so wie bei einem Taster üblich.) Da ging dann aber fasst gar kein Strom mehr durch (0,1V)

Widerstände an Ausgängen
Auch habe ich 680-Ohm-Widerstände an beide Sensor-Ausgänge gehängt. Hat aber gar keinen Effekt.

Wahrscheinlich habe ich Euch einfach falsch verstanden und Ihr schlagt Euch gegen die Stirn - oder ich habe ein neues elektronisches Phänomen entdeckt, von dem die Wissenschaft noch lange reden wird.

Das Problem ist nicht daß Du uns falsch verstanden hast sondern einen Fehler in der Schaltung hast.

Dazu ist auch noch zu sagen daß ein Digitales Voltmeter einen so großen innenwiderstand hat daß es Spannungen die aus Leckströmen risultieren mißt. Schalte mal einen 10k bis 100 kOhm Widerstand zwischen die Meßspitzen und miß dann so. Da sind die Spannungen etwas wahrhaftiger.

  1. Sensoren angeschlossen:
    Keine Bewegung=0V
    Bewegung nur am 1. Sensor=0V
    Bewegung nur am 2. Sensor 1,8V
    Bewegung an beiden Sensoren = 2,6V (daher wird dann auch das HIGH-Signal geliefert weil > 2,5V)

Die Schaltschwelle bei einem ATemga der mit 5V versorgt wird ist 3V nicht 2,5.


Die Zeichnung ist richtig, abgesehen vom fehlenden Widerstand zwischen D9 und Masse, aber sieht Deine Schaltung auch so aus? Mach mal ein gutes Foto und zeig es uns.

Grüße Uwe

uwefed:
Praktisch machst Du mittels der 2 Dioden aus den Ausgängen 2 Open Collektor PNP Ausgänge. Die können das Pin auf +5V ziehen, auf LOW muß dies aber ein Widerstand machen.

Darum auch der Link von Peter: DRL (diode resistor logic)

Grüße Uwe

@Uwe danke,
jetzt habe ich bei meiner Betrachtung glatt die beiden Dioden vergessen. :cry:

Komisch ist doch warum die beiden Sensoren unterschiedlich sind. Eigentlich sollte doch mit den beiden Dioden und dem Pulldown die Spannung am Eingang L sein wenn beide Sensoren L sind . Wenn einer H ist sollte auch H erkannt werden und die Spannung sauber etwa 4V sein.

Mach doch mal die Schaltung mit Dioden und Pulldown und nur einem Sensor . Den intrenen Pullup hast Du abgeschaltet. ? Damit mal messen . Dann mit dem anderen Sensor und messen . Dann beide und messen. Bist Du sicher das es ein 10K Widerstand ist.

Heinz

mikeraduino:
Ich möchte zwei Bewegungssensoren (AM312) über einen D-Pin abfragen, um Pins zu sparen

Ich nehme mal an, dass Du nicht den nackten PIR verwendest, sondern mit einem kleine Breakout Board? Zeig mal einen Link, was Du da genau gekauft hast.
Zum einen: Der AM312 ist 3,3V Chip, und entsprechend niedrig ist auch seine Ausgangsspannung. Auch wenn die Module da meist einen Spannungsregler drauf haben, so dass die Versorgungspannung auch höher sein kann. Zusätzlich gibt es wohl Module, wo am Ausgang noch ein Widerstand in Serie eingebaut ist.

MicroBahner:
Zum einen: Der AM312 ist 3,3V Chip, und entsprechend niedrig ist auch seine Ausgangsspannung.

Das Datenblatt https://robojax.com/products/files/robojax_am312_pir_motion_sensor_datasheet.pdf nennt den Ausgang "Output REL" und nennt nur Ausgangsströme, keinen Ausgangsspanungen. Weiß jemand was man unter "Output REL" verstehen soll?

Grüße Uwe

Was das REL soll, weiß ich auch nicht. Scheint aber ein Push-Pull Ausgang zu sein:

output.jpg

Kann also aktiv gegen GND oder VCC ziehen.

output.jpg

uwefed:
... nennt nur Ausgangsströme, keinen Ausgangsspanungen.

Steht doch in der letzten Spalte der Tabelle: bei 'LOW' <1V, bei HIGH bis zu 1V unter der Versorgungsspannung - und die darf max. 3,6V sein.
Bei den Modulen kommt aber noch erschwerend hinzu, dass da oft noch ein Widerstand zwischen PIR-Ausgang und Modulausgang geschaltet ist. Vermutlich als Schutz, falls da versehentlich eine zu hohe Spannung draufgegeben wird.

Das Problem scheint gelöst!
Und es ist ein bisschen peinlich.

Ich habe alles nochmal neu aufgebaut - zum dritten Mal - und jetzt funktioniert es plötzlich (siehe Anhang von der neuen Verdrahtung)!

Ich kann's mir nicht wirklich erklären...

Vielleicht, weil ich kürzere Draht-Brücken genommen habe, um's fotogen zu machen, weil jemand von Euch ein Foto von der Schaltung sehen wollte.

Zum einen: Der AM312 ist 3,3V Chip

Der AM312 funktioniert nach meinen Infos bis 12V (oder habe ich was falsch verstanden?)
Jedenfalls funktioniert er jetzt bei mir mit 5V

"funktioniert in einem Spannungsbereich zwischen 2.7 – 12V und verbraucht weniger als 1mA"

Vielen Dank an alle, die mich hier unterstützt haben!
Toll, wie engagiert Ihr seid!

mikeraduino:
Der AM312 funktioniert nach meinen Infos bis 12V (oder habe ich was falsch verstanden?)
Jedenfalls funktioniert er jetzt bei mir mit 5V

Das Modul funktioniert bis 12 V, weil ein Spannungsregler drauf ist, der die angelegte Spannung auf die 3.3V runterregelt. Der eigentlich Baustein AM312 wird mit diesen 3,3V versorgt, und dementsprechen kann aus seinem Ausgang auch nicht mehr herauskommen.

MicroBahner:
Steht doch in der letzten Spalte der Tabelle: bei 'LOW' <1V, bei HIGH bis zu 1V unter der Versorgungsspannung - und die darf max. 3,6V sein.

Diese Info als Bemerkung geschrieben habe ich nicht als garantierte Ausgfangsdaten angesehen.
Ich erwartete mir Zeilen mit VoutH und VoutL.
Grüße Uwe

MicroBahner:
Der eigentlich Baustein AM312 wird mit diesen 3,3V versorgt, und dementsprechen kann aus seinem Ausgang auch nicht mehr herauskommen.

Darausfolgerb würde ich keine 2 Dioden nehmen sondern 2 NPN Transistoren mit relativen Basiswiderstand (zB 1kOhm) nehmen und die Collektoren zusammenschalten (Emettitoren auf Masse) und einen Pullupverwenden ( extenen zB 10 kOhm oder den internen aktivieren).
So ist die Signalspannung größer und der 5V Arduino erkennt sicherer den HIGH Logikpegel.

Grüße Uwe

uwefed:
Diese Info als Bemerkung geschrieben habe ich nicht als garantierte Ausgfangsdaten angesehen.
Ich erwartete mir Zeilen mit VoutH und VoutL.
Grüße Uwe

Na, ja, da müsste man dann den Strom als Bemerkung/Testbedingung dazu schreiben. Ist doch eigentlich egal wie rum. Eine andere Aussage als die im Datenblatt gibt's nunmal nicht.