Arduino - AnalogInput - Problem

OP #3078377
Lesenswert?

Hallo Leute,

habe mir ein Arduino-Micro zugelegt und bin bis jetzt recht zufrieden.

Leider habe ich momentan ein Problem mit dem Analog-Eingang, bei dem ich 
nicht weiter komme.

Ich möchte mit dem Arduino Spannungen messen (0 - 24V).
Habe bereits eine kleine Schaltung dazu aufgebaut (siehe Anhang)
Das funktioniert schon mal alles...

zum Problem:


Wenn ich beim Spannungsteiler keine Spannung (0V) anliegen habe, dann 
gibt mir Arduino z.B. den Wert 150 , 100 , 120 usw. aus... (Wert 
schwankt)
Warum ist dieser nicht auf 0?


Bei z.B.: 12 Volt gibt mir das Board ca. 350 aus
Müsste dieser Wert nicht 512 sein? (Analog-Eingang 0...1024 ; beim 
Spannungsteiler liegt 2,5 Volt an ; also die Hälfte vom Eingang?)


Dadurch kann ich die Spannung nicht berechnen...


Muss ich den Analog-Eingang auf GND setzen?
Wenn ja, wie?


Vielen Dank für eure Hilfe...


MfG Snake
Angehängte Dateien:
#3078399
Lesenswert?

Und was macht der AVR, wenn die Spannung etwas über 24V liegt - puf?

Die sieht die AVcc, ARef und AGnd Beschaltung aus und wo ist das 
Programm dazu ?

Meistens liegt dort das Problem.

Wie ich gerade sehe läuft dort ein ATmega32u4 mit 3,3V.
Ob man da von ADC 5V ausgehen kann ?

Link:
http://www.adafruit.com/blog/2012/11/05/new-product-arduino-micro-with-headers-5v-16mhz-atmega32u4-assembled/
OP #3078428
Lesenswert?

Vielen Dank für die schnellen Antworten...

Es wird ein ATmega32u4 verwendet.

Es ist ausgeschlossen dass eine Spannung über 24 Volt anliegt, da nicht 
mehr als mit 20V gemessen wird.

AREF wird nicht verwendet - "DEFAULT" ist gesetzt 
(http://arduino.cc/en/Reference/AnalogReference)


Testweise habe ich das Beispiel-Programm verwendet:

http://arduino.cc/en/Tutorial/AnalogReadSerial

Da bei 12V am Spannungsteiler 2,5V anliegen, müsste bei einem 10bit 
Analog-Eingang 512 als Wert herauskommen, oder liege ich damit falsch?

Bei der Spannungsberechnung hätt ich folgende Formel verwendet:

sensorValue = 0-1024

voltage = sensorValue * (24.0 / 1023.0);

EDIT:
Das was ich in der Zeichnung vergessen habe: GND von beiden Spannungen 
sind zusammengefasst
#3078628
Lesenswert?

Jetzt bist Du aber auf dem Holzweg,
die Doku schreibt:

DEFAULT: the default analog reference of 5 volts (on 5V Arduino boards) 
or 3.3 volts (on 3.3V Arduino boards)

Also 3,3V was ich schon ober geschrieben hatte.

Und nun rechne mal nach, um wieviel die Spannung darüber liegt !

Da wir immer noch kein Programm sehen, gehe ich von aus, der ADC ist 
defekt, da er nicht mehr als 3,3V + Diodenspannung verträgt.
Gast #3078713
Lesenswert?

S. R. schrieb:
> Wenn ich beim Spannungsteiler keine Spannung (0V) anliegen habe, dann
>
> gibt mir Arduino z.B. den Wert 150 , 100 , 120 usw. aus... (Wert
>
> schwankt)
>
> Warum ist dieser nicht auf 0?

Bist du die sicher, dass du den richtigen Eingang erwischt hast?
Leg mal alle ADC Eingänge auf GND und prüfe nochmal
(Firma: Bastler aus Mönchengladbach) Persönliche Seite #3078769
Lesenswert?

S. R. schrieb:
> Es wird ein ATmega32u4 verwendet.

Das stimt so nicht ganz:
Meines Wissens wird der ATMega32u4 bei den Arduinos nur als 
Schnittstellenwandler benutzt, der eigentliche Controller auf dem Board 
ist ein ATMega328.

Deine Messschwankungen rühren wahrscheinlich von zu langen Kabeln am 
Analogeingang oder Spannungsteiler, die dann als Antenne für den überall 
vorhandenen Störpegel dienen. Dein Eingang ist zwar mit 470 Ohm recht 
niederohmig, könnte aber trotzdem so sein. Messe mal mit 
kurzgeschlossenem Eingang (nicht einfach keine Spannung anlegen).

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