ich habe Probleme, einen AM312 an dem Optokopplern eines KC868-A8 zu betreiben. Das Board enthält einen PCF8574, dessen Eingänge an Optokopplern liegen, die wiederum über Pull-Ups (100k) zugänglich sind (siehe Bild).
Der AM312 liefert hingegen ein HIGH-Signal bei Bewegung, ich schätze, das klappt nicht, da die Pullups die Eingänge eh schon auf High ziehen.
Ist es der richtige Weg, über einen zusätzlichen Pull-Down das Signal wieder runter zu ziehen (wie berechne ich den) oder wie mache ich das am besten?
Ein anderer Ansatz wäre ein Eingang des ESP32, der über einen 4.7k Pull up nach draußen führt. Da kann ich den AM312 erkennen, wenn ich zusätzlich einen 4.7k pull-down nehme. Aber ich finde diese Lösung nicht so schön, da ich den auch für etwas anderes nutzen könnte (Analog, 1wire, etc.)
ich habe Probleme, einen AM312 an dem Optokopplern eines KC868-A8 zu
betreiben
Kann ich mir vorstellen bisher sind das nur ein paar auf ein Blatt verstreute Bauelemente.
Glaubst du ernsthaft, irgendjemand macht sich jetzt die Mühe, zu jedem label überall auf dem Papier jedes weitere Auftreten dieses label nachzusuchen und das für alle unterschiedlichen label ? Das ist ein exponentieller Aufwand, für JEDEN Lesenden.
Der AM312 hat einen sauberen CMOS push pull Ausgang
1
Output REL
2
Output Low Current IOL 10 mA VOL<1V
3
Output High Current IOH -10 mA VOH>(VDD-1V)
und kann (wenn er aus denselben 5V des PCF versorgt wird) den PCF8574 Eingang direkt treiben, ohne pull up oder pull down, die TTL Schaltschwelle passt.
Aber deine Optokoppler sind völliger Unsinn, wegmachen.
Glaubst du ernsthaft, irgendjemand macht sich jetzt die Mühe, zu jedem
label überall auf dem Papier jedes weitere Auftreten dieses label
nachzusuchen und das für alle unterschiedlichen label ? Das ist ein
exponentieller Aufwand, für JEDEN Lesenden.
ich erkläre es dir gerne: Am Optoeingang sitzt ein 100k Pull-Up, im Bild links INAx. Daher reagiert der, wenn der Eingang auf GND geht. Die Frage war, ob ich mit einem Pulldown das Teil überreden kann, auf HIGH zu reagieren. Oder eben irgendwie anders.
Aber deine Optokoppler sind völliger Unsinn, wegmachen.
Hilft mir nix, das ist ein fertiges Board. Daran ändere ich nichts.
Der AM312 liefert hingegen ein HIGH-Signal bei Bewegung, ich schätze,
das klappt nicht, da die Pullups die Eingänge eh schon auf High ziehen.
Nein. Wenn Du am Eingang des Optokopplers ein High-Signal anlegst schaltet er durch. Dadurch zieht er seinen Ausgang, also den Eingang des PCF8574, auf Low. Der Optokoppler invertiert also schon.
Wenn das nicht klappt muss der Fehler woanders liegen. Ist vielleicht der Ausgang des AM312 nicht stark genug den Optokoppler durchzuschalten? Probier das doch mal mit einem Labornetzteil am Eingang des Optokopplers, 3.3V und dann drehe die Strombegrenzung immer weiter runter und schau mal ob und bis wann der PCF8574 durchschaltet.
Der AM312 liefert hingegen ein HIGH-Signal bei Bewegung, ich schätze,
das klappt nicht, da die Pullups die Eingänge eh schon auf High ziehen.
Nein. Wenn Du am Eingang des Optokopplers ein High-Signal anlegst
schaltet er durch. Dadurch zieht er seinen Ausgang, also den Eingang des
PCF8574, auf Low. Der Optokoppler invertiert also schon.
Wenn das nicht klappt muss der Fehler woanders liegen. Ist vielleicht
der Ausgang des AM312 nicht stark genug den Optokoppler durchzuschalten?
Probier das doch mal mit einem Labornetzteil am Eingang des
Optokopplers, 3.3V und dann drehe die Strombegrenzung immer weiter
runter und schau mal ob und bis wann der PCF8574 durchschaltet.
Danke, mit deinen Tips scheine ich es hingekriegt zu haben. Ich habe dazu 100k vom Eingang des Optokopplers zu GND gelegt, damit erkennt er das Signal des AM312 bisher sehr zuverlässig.
Keine Ahnung, ob "man das so macht" und ob der Wert gut ist, aber ich dachte, ich probiere es mal mit der Mitte.
Oder ist es besser, mit z.B. 47k etwas weiter in Richtung GND zu gehen?
Danke, mit deinen Tips scheine ich es hingekriegt zu haben. Ich habe
dazu 100k vom Eingang des Optokopplers zu GND gelegt, damit erkennt er
das Signal des AM312 bisher sehr zuverlässig.
Welches GND? Das vom Ausgang des Optokopplers? Das macht man definitiv nicht so, denn dann stellt man eine Verbindung zwischen den beiden Seiten des Optokopplers her - und einen Optokoppler verwendet man extra um eine saubere Trennung der beiden Seiten sicherzustellen.
Ich denke Du solltest nochmal genauer untersuchen was da passiert. Nimm daher den AM312 ganz raus und untersuche erst mal mit Labornetzteil, Multimeter und evtl. verschiedenen zusätzlichen Vorwiderständen wie sich die Kombination aus Optokoppler, Vorwiderstand und PCF8574 verhält.
Erst wenn Du das voll verstanden hast den AM312 wieder dazunehmen.
Sonst hast Du zu viele Unbekannte im Spiel und das erschwert zu verstehen was los ist.
Nee, den pull down am Eingang des Optokopplers. Ich habe also am Eingang jetzt einen Spannungsteiler mit 2x100k. In der Mitte hängt jetzt der Ausgang vom Am312 und der Eingang vom Optokoppler. Soll ich das besser zeichnen?
Ich habe also am Eingang jetzt einen Spannungsteiler mit 2x100k.
Am Eingang des Optokopplers?
Soll ich das besser zeichnen?
Ja bitte - besser ist das.
Zeichne einen zusammenhängenden Schaltplan mit dem Signalfluss angefangen beim AM312 bis zum PCF8574, auch mit den Versorgungsspannungen.
so hab ich das jetzt geschaltet. Der 100k mit den ??? ist das einzige Bauteil, das ich hinzugefügt habe (und den AM312 natürlich) - der Rest ist auf dem Kincony Boards so fest verbaut und nicht zu ändern.
Mir ist ein bisschen mumlig, wie der AM312 auf Dauer mit den 6V klar kommt. Aber funktionieren tut es bisher sehr gut.
Der AM312 enthält einen internen 3.3V Spannungsregler, mehr als 3.3V kommen da nicht raus, 5V reinzustecken reicht völlig, und nein man zifht den Ausgang nicht über diese 3.3V.
Was machen die von Dir eingezeichneten 12V da? Wo kommen die her? Wozu werden die benötigt?
Eigentlich müsstest Du den einen Pol des Optokoppler-Eingangs mit dem Signalausgang von dem AM312 verbinden und den anderen Pol mit dem GND vom AM312. Ist egal welcher, dieser Optokoppler geht lt. Schaltzeichen in beide Richtungen.
Und nirgends 12V anschließen.
Dann braucht es auch Deine 100k-Widerstände nicht.
Was machen die von Dir eingezeichneten 12V da? Wo kommen die her? Wozu
werden die benötigt?
die sind da tatsächlich, das messe ich auch. Sind von der SPannungsversorgung. Das passt doch auch zu dem Vorwiderstand von 2k von den LEDs vom Optokoppler.
Eigentlich müsstest Du den einen Pol des Optokoppler-Eingangs mit dem
Signalausgang von dem AM312 verbinden und den anderen Pol mit dem GND
vom AM312. Ist egal welcher, dieser Optokoppler geht lt. Schaltzeichen
in beide Richtungen.
ja, das weiß ich, eigtl. kommt der AM312 auch direkt am ESP klar. Aber das Koncony Board ist nun mal so aufgebaut.
Und nirgends 12V anschließen.
Dann braucht es auch Deine 100k-Widerstände nicht.
Kincony hat die Eingänge für die Optokoppler leider wirklich einseitig mit an die Versorgungsspannung gelegt.
Das ist m.E. etwas hirnrissig, weil das die Potentialtrennung etwas blöde dastehen lässt.
Der Käse ist mir leider erst aufgefallen, als KC868-A16 (was genauso gebaut ist) schon bestellt hatte.
Wäre das nicht so, hätte ich das wie im Anhang zusammengeschaltet.
Kincony hat die Eingänge für die Optokoppler leider wirklich einseitig
mit an die Versorgungsspannung gelegt.
Das ist m.E. etwas hirnrissig, weil das die Potentialtrennung etwas
blöde dastehen lässt.
Meine Lösung oben funktioniert prima, aber sie ist mir etwas unheimlich: Ich habe am Eingang des Optokopplers und damit am Ausgang des AM312 eine Spannung von 9.5V zu 9.7V je nach Bewegung - erstaunlich, dass das den Optokoppler sicher schaltet. Da hab ich wohl "zufällig" genau den richtigen Punkt getroffen zu haben. Ohne jetzt das Datenblatt zu studieren, das wird ganz sicher außerhalb jeglicher Spezifikation sein.
Ich hab das jetzt mit nem BC547C und 10k Basis-R probiert, die hier zufällig vorbei kamen. Damit ist das Signal sauber zwischen 0 und 12V. Fühlt sich erheblich besser an.
Dass der Umweg über NPN und Optokoppler völlig überflüssig ist, weiß ich.