Forum: Mikrocontroller und Digitale Elektronik Arduino Analoginput mit LM 358


von Emsland (Gast)


Lesenswert?

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

von Tom (Gast)


Lesenswert?

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.

von Dieter S. (Gast)


Lesenswert?

An was für einer Spannung hängt der LM358 und der Fototransistor?
Hast du die Masse des LM358 und dem Arduino verbunden?

von M. K. (sylaina)


Lesenswert?

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.

von K. Hans (Gast)


Lesenswert?

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!?

von Emsland (Gast)


Angehängte Dateien:

Lesenswert?

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

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

von DJShadowman (Gast)


Lesenswert?

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.

von Ulrich F. (Gast)


Lesenswert?

DJShadowman schrieb:
> Ich weiß allerdings nicht ob das bei arduinonikern überhaupt noch üblich
> ist.
Danke für die Blumen.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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
Noch kein Account? Hier anmelden.