Arduino Analoginput mit LM 358

Gast #4310122
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
Gast #4310235
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.
Gast #4310530
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
Angehängte Dateien:
(Firma: matzetronics) #4310549
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.
Gast #4310578
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.
(Firma: matzetronics) #4311381
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.