Serial Monitor zeigt falsche Werte an

Gast #4289394
Lesenswert?

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
Gast #4289410
Lesenswert?

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.
#4289537
Lesenswert?

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);

}
Gast #4289544
Lesenswert?

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.
#4289557
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren