Arduino Analoginput mit LM 358

Gast #4310122
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
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 #4310412
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!?
Gast #4310530
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.