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
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.