Hallo Leute!! 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. Programmcode: int Sensor = A4; int sensorValue; void setup() { Serial.begin(9600); } void loop() { analogReference(DEFAULT); sensorValue = analogRead(Sensor); Serial.println(sensorValue); delay(500); } Da sollte eigentlich alles passen. Serial Monitor zeigt folgendes an: 1023 1023 942 800 688 370 81 0 0 0 0 0 0 0 0 5 69 153 286 388 723 965 1023 1023 Bitte um Hilfe! :-) GLG
:
Verschoben durch User
Bitte das Kapitel AD-Wandlung lesen. Dein System funktioniert richtig! Es wird aber einfacher wenn du das Signal digital behandelst. Alle Werte oberhalb von [800] stehen dabei für eine logische 1 alle Werte unterhalb [600] für eine logische 0. Das dazwischen ist die Hysterese, die kannst du in den Skat drücken. Wenn du jetzt eine 1 bekommst, also dein Sensor irgendwas bei 4V ausgibt ist das AD gewandelt irgendwas oberhalb von [800] und kein Auto ist da. Sonst bekommst du eine 0, dein Sensor liefert irgendwas unter 1V, das ist wieder gewandelt kleiner [600] und ein Auto ist da. Die Zahlen [800] und [600] sind jetzt willkürlich gewählt. Mehr dazu erklärt dir das Datenblatt deines uCs.
> Forum: Projekte & Code > > Hier könnt ihr eure Projekte, Schaltungen oder Codeschnipsel > vorstellen und diskutieren. Bitte hier keine Fragen posten!
>analogReference(DEFAULT); https://www.arduino.cc/en/Reference/AnalogReference Note After changing the analog reference, the first few readings from analogRead() may not be accurate. Mach das einmal im Setup (oder garnicht, da DEFAULT Standard ist), dann sollte es gehen.
Ich kann den Anderen nur Recht geben, dass was dein Serial Monitor angibt ist vollkommen korrekt. Der Wert am analogen Eingang wird durch den Arduino in den Bereich von 0 - 1024 aufgelöst. Man könnte es wie in meinen Beispiel betrachten. Hier wird der Status für deinen Sensor bei einer Spannung von mehr als 2,5 Volt auf 1 gesetzt und ist ansonsten auf 0. int Sensor = A4; int sensorValue; // Wertebereich 0 - 1024 int sensorStatus; // 0 = kein Fahrzeug, 1 = Fahrzeug void setup() { Serial.begin(9600); } void loop() { sensorValue = analogRead(Sensor); if (sensorValue > 500) { Serial.println("Fahrzeug im Sensorbereich"); sensorStatus = 1; } else { Serial.println("Kein Fahrzeug im Sensorbereich"); sensorStatus = 0; } delay(500); }
Hendrik B. schrieb: > Der Wert am analogen Eingang wird durch > den Arduino in den Bereich von 0 - 1024 aufgelöst. Erwin schrieb: > 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. Bitte genau lesen! Wenn die Spannung konstant bei 4,1 V liegt, sollten konstant Werte um 840 herum ausgegeben werden.
Karl schrieb: > Hendrik B. schrieb: >> Der Wert am analogen Eingang wird durch >> den Arduino in den Bereich von 0 - 1024 aufgelöst. > > Erwin schrieb: >> 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. > > Bitte genau lesen! Wenn die Spannung konstant bei 4,1 V liegt, sollten > konstant Werte um 840 herum ausgegeben werden. Ich entschuldige mich vielmals :D Das habe ich vollkommen überlesen.
Walter S. schrieb: > Sensor am falschen Pin angeschlossen? Vermutlich nicht. Aber er weiß trotzdem nicht was er tut.... (interessiert ihn auch vermutlich nicht wirklich)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.