Hi Leute, ich habe ein Problem, wenn ich mit dem Arduino Analogwerte einlesen will. Ich habe einen Phototransitor über einem OPV LM358 an den Analogeingang vom Arduino angeschlossen um das Signal zu verstärken. Jetzt messe ich am Eingang (also am Ausgang vom OVP) eine konstante Spannung von ca. 2,05V. Am Arduino jedoch gibt er mir über die Serielle Schnittstelle Werte zwischen 10 und 600 an. Versorgt wird das Board über den USB Anschluss. Könnt ihr mir weiter helfen?? Mfg Emsland
Das kann an der Hardware oder an der Software liegen. Zeige uns doch mal beides. Was für Werte erhältst Du, wenn ein Poti an den Analogeingang schaltest? Also ein Ende an 5V, das andere an GND und den Schleifer an den Analogeingang.
An was für einer Spannung hängt der LM358 und der Fototransistor? Hast du die Masse des LM358 und dem Arduino verbunden?
Emsland schrieb: > Jetzt messe ich am Eingang (also am Ausgang vom OVP) eine konstante > Spannung von ca. 2,05V. Mit einem Oszi gemessen? Wenn nicht: Möglicher Weise oszilliert dein LM358 und ein normales Digitalmultimeter kann eine prima Mittelwertanzeige sein.
Emsland schrieb: > Jetzt messe ich am Eingang (also am Ausgang vom OVP) eine konstante > Spannung von ca. 2,05V. Am Arduino jedoch gibt er mir über die Serielle > Schnittstelle Werte zwischen 10 und 600 an. Wird wohl beides falsch sein!?
Moin, habe ein Poti an Analoginput angeschlossen und der liefert saubere werte zwischen 0 und 1023. Habe leider noch kein Oszilloskop zur Verfügung. Spannungsversorgung erfolgt über 5V und GND vom Arduino Board. Die Software ist von Arduino als Beispielcode: AnalogInOutSerial Hier nochmal der Code. Foto im Anhang
1 | const int analogInPin = A0; // Analog input pin that the potentiometer is attached to |
2 | const int analogOutPin = 9; // Analog output pin that the LED is attached to |
3 | |
4 | int sensorValue = 0; // value read from the pot |
5 | int outputValue = 0; // value output to the PWM (analog out) |
6 | |
7 | void setup() { |
8 | // initialize serial communications at 9600 bps: |
9 | Serial.begin(9600); |
10 | } |
11 | |
12 | void loop() { |
13 | // read the analog in value: |
14 | sensorValue = analogRead(analogInPin); |
15 | // map it to the range of the analog out: |
16 | outputValue = map(sensorValue, 0, 1023, 0, 255); |
17 | // change the analog out value: |
18 | analogWrite(analogOutPin, outputValue); |
19 | |
20 | // print the results to the serial monitor: |
21 | Serial.print("sensor = " ); |
22 | Serial.print(sensorValue); |
23 | Serial.print("\t output = "); |
24 | Serial.println(outputValue); |
25 | |
26 | // wait 2 milliseconds before the next loop |
27 | // for the analog-to-digital converter to settle |
28 | // after the last reading: |
29 | delay(2); |
30 | } |
Danke schonmal für die Hilfe
Du hast allerdings den LM358 so verdrahtet, als würde er symmetrisch (mit +/- 5V) gespeist, darauf deutet der 10k Widerstand vom - Eingang nach Masse hin. Das kann nicht klappen, wenn der OPAmp nur mit +5V gespeist wird. Entweder baust du die Schaltung auf 'Single Supply' um, speist den LM358 symmetrisch oder verzichtest ganz auf dem OPAmp und schliesst den Sensor direkt an den ADC des Arduino an.
Man kann nen OPamp mit zig verschiedenen Beschaltungen verwenden, du sagst er ist als Verstärker angeschlossen. Das können immer noch mehrere Varianten sein. Oder meinst Du in Wirklichkeit als Spannungsfolger bzw. Impedanzwandler ? Sonst kann man tatsächlich Null Aussage zu deinem Problem machen. Es wäre schon ein erster Schritt, mit dem Multimeter mal die Werte zu messen und kurz nachzurechnen was das binär sein sollte. Ich weiß allerdings nicht ob das bei arduinonikern überhaupt noch üblich ist.
DJShadowman schrieb: > Ich weiß allerdings nicht ob das bei arduinonikern überhaupt noch üblich > ist. Danke für die Blumen.
DJShadowman schrieb: > Man kann nen OPamp mit zig verschiedenen Beschaltungen verwenden, > du sagst er ist als Verstärker angeschlossen. Das sagt der TE nicht nur, auf dem Foto ist die Schaltung ja mit drauf. Wie o.a., ist das nur keine Schaltung für Single Supply. Hier gibts mehr darüber: https://www.mikrocontroller.net/articles/Operationsverstärker-Grundschaltungen Dort sind nur Wechselspannungsverstärker beschrieben. Als Grundregel wird im Fall von Single Supply eine künstliche Masse auf der Höhe der halben Betriebsspannung angelegt, auf die dann die Eingänge bezogen werden - in deinem Fall also das untere Ende des 10k Widerstandes.
:
Bearbeitet durch User
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.