Im Zuge der Berufsschule müssen wir eine Ampelschaltung bauen.
Ein Optischer Sensor (OMRON E3T-SL11) soll bei der Ampel erkennen wann ein Auto kommt und das dann dem Arduino weiter geben.
Betrieben wird der Sensor über 24V. Über einen Spannungsteiler wird dann die reduzierte Spannung abgegriffen, da sonst ja der Arduino zerstört wird.
Habe nun folgendes Problem:
Steht kein Auto bei der Ampel so leifert der Sensor gemessene 4,0V ~ 4,2V. Steht dort ein Auto schaltet der Sensor, und liefert mir eine Spannung von ~0,1V.
Dieses Signal geht beim Arduino in den Analogen Eingang A4 rein. Wir dann über die ganzen Befehle ausgelesen und über dem Serial Monitor ausgegeben. Dort steigen die Werte dann auf unerklärlicherweise an bis 1023 und sinken wieder ab. Und das die ganze Zeit. Jedoch zeigt das Multimeter einen konstanten Wert von 4,1V an.
Da der Sensor, so wie du schreibst, schaltet, liefert er doch High oder Low, also Spannung oder keine Spannung. Das natürlich über deinen Spannungsteiler.
Dann ist es einfacher dies über digitale Eingänge zu lösen, die du mit "DigitalRead" auf High oder Low abfragst.
Du brauchst ja auch keinen Zwischenwert, also ob ein Auto evtl. noch nicht ganz an der Ampel steht.
Ach und in deinem Sketch liest du ja den Wert des Analogeingangs und nicht des Sensors.
Dort steigen die Werte dann auf unerklärlicherweise an bis 1023 und sinken wieder ab. Und das die ganze Zeit. Jedoch zeigt das Multimeter einen konstanten Wert von 4,1V an.
Verdrahtungsfehler.
Und ja!
Das analoge Auslesen eines digitalen Senors ist ein Fehler.
Verwende A4 digital.
Und, wieso überhaupt ein Spannungsteiler?
Der Sensor hat einen Open Collector Ausgang.
Darum ist dieses:
Problem wird vermutlich sein, dass du die Referenzspannung jedesmal neu setzen willst. Sowas gehört in den Setup (wobei in diesem Fall mit DEFAULT überhaupt nicht nötig ist).
Des weiteren würde hier doch die Auswertung über eine DI vollkommen ausreichen. Du sagst, er hat im unbestätigten Zustand ~4, - 4,2V. Das reicht locker aus, den Eingang als HIGH zu erkennen. Wird der Sensor aktiv, sollte dieses auch mit 0,1V als LOW erkannt werden.
Dazu muss uns ams_Erwin aber mitteilen, wie er den Sensor genau angeschlossen hat.
Nicht dass er die 24 Volt an den Ausgang gelegt hat, dann geht es nur über den Spannungsteiler.
In dem Fall wäre ein Schaltbild wichtig.
Aber leider fehlen immer wieder wichtige Angaben um konkrete Aussagen zu machen.
HotSystems:
Dazu muss uns ams_Erwin aber mitteilen, wie er den Sensor genau angeschlossen hat.
Nicht dass er die 24 Volt an den Ausgang gelegt hat, dann geht es nur über den Spannungsteiler.
In dem Fall wäre ein Schaltbild wichtig.
Aber leider fehlen immer wieder wichtige Angaben um konkrete Aussagen zu machen.
Sorry Also der Sensor ist über 24V aus dem Nezgerät versorgt. Der Arduino hat eine eigene Versorgung über den PC.
Die 24V liegen am braunen Kabel des Sensors an, welches über einen 10kOhm Widerstand mit dem Datenkabel des Sensors verbunden ist. Dieses ist wiederum über einen 4,7kOhm Widerstand mit dem Pin verbunden wo ich die Spannung abgreife und zum Arduino gehe. Und dieser ist mit einem 3,9kOhm Widerstand mit Masse und somi dem blauen Kabel des Sensors verbunden.
Sorry für die lange Beschreibung, bin aber leider grad nicht im Labor und hab keine Bilder bei Hand
ams_Erwin:
Sorry Also der Sensor ist über 24V aus dem Nezgerät versorgt. Der Arduino hat eine eigene Versorgung über den PC.
Die 24V liegen am braunen Kabel des Sensors an, welches über einen 10kOhm Widerstand mit dem Datenkabel des Sensors verbunden ist. Dieses ist wiederum über einen 4,7kOhm Widerstand mit dem Pin verbunden wo ich die Spannung abgreife und zum Arduino gehe. Und dieser ist mit einem 3,9kOhm Widerstand mit Masse und somi dem blauen Kabel des Sensors verbunden.
Sorry für die lange Beschreibung, bin aber leider grad nicht im Labor und hab keine Bilder bei Hand
Wenn es tatsächlich so verdrahtet ist (schwer zu verstehen) dann brauchst du keine Spannung vom Labornetzteil am Sensorausgang. Dann reicht der OK des Sensor, den du mit dem Arduino verbindest. Hier den digitalen Eingang verwenden und einen Pullup-Widerstand einsetzen (konfigurieren).
Wichtig dennoch- Masse verbinden.
Widerstände am Ausgang Sensor entfernen, keine Spannung am Ausgang. Und weiter wie zuletzt mehrfach beschrieben. OK an digitalen Eingang mit PullUp-Widerstand.
Ich sehe im Schaltplan +12V Arduino. Wird diese auch am Arduino mit zusätzlicher GND Klemme genutzt?
Ist der PullUp am Sensor notwendig? Der Spannungsteiler sieht mir falsch ausgelegt aus.
Ich sehe im Schaltplan +12V Arduino. Wird diese auch am Arduino mit zusätzlicher GND Klemme genutzt?
Ist der PullUp am Sensor notwendig? Der Spannungsteiler sieht mir falsch ausgelegt aus.
Hätte mir das so gedacht: Wenn der Arduino fertig programmiert ist wird er mit diesen +12V was du gesehen hast betrieben. Leider habe ich den GND Pin hierzu noch nicht in der Schaltung. Aber ja ich füge ihn noch hinzu und werde ihn dann über die +12 V betreiben. Somit habe ich für Sensor und Arduino dann nur noch 1 Plus und eine Masse. Dann sollte es normal klappen?
Der Schaltplan ist falsch!!
Der Spannungsteiler ist flüssiger als Wasser! Überflüssig!
Sensor Versorgung kann an 24V oder 12V angeschlossen werden... egal...
GND des Arduinos muss mit GND des Sensors verbunden werden.
Daten Ausgang des Sensors direkt, ohne Gnade, an den Arduino Pin.
Und dann entweder den internen Pullup aktivieren, oder bei langen Kabeln einen (zusätzlichen) externen Pullup nach 5V.
Fertig.