Forum: Mikrocontroller und Digitale Elektronik Arduino - AnalogInput - Problem


von S. R. (redsnake64)


Angehängte Dateien:

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

von Pastor Braune (Gast)


Lesenswert?

moin

Was für ein MC ist auf dem Arduino ?

lese dir doch bitte die Tutorials durch ;-)

http://www.mikrocontroller.net/articles/AVR-Tutorial
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

mfg

von Uwe (de0508)


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/

von S. R. (redsnake64)


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

von Sales Support (Gast)


Lesenswert?


von S. R. (redsnake64)


Lesenswert?

Was soll das heißen? :-D
Hast du auch Alternativen (in gleicher Bauform)?

Ich glaube nicht das es am Arduino liegt sondern an der Schaltung...

von Kompostierer (Gast)


Lesenswert?

S. R. schrieb:
> Ich glaube nicht das es am Arduino liegt sondern an der Schaltung...

Nee, das liegt an der Biomasse, die davor hockt.

von Eumel (Gast)


Lesenswert?

S. R. schrieb:
> Ich glaube nicht das es am Arduino liegt sondern an der Schaltung...

Welche Referenz benutzt du?

von S. R. (redsnake64)


Lesenswert?

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

von Uwe (de0508)


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.

von S. R. (redsnake64)


Lesenswert?

Der Arduino-Micro hat 5 Volt ;-)

von franz (Gast)


Lesenswert?

Deine Schaltung hat einen Fehler. Den Minus-Eingang musst Du mit GND des 
Arduino verbinden.

von S. R. (redsnake64)


Lesenswert?

Das habe ich vergessen einzuzeichnen...

Habe ich weiter oben schon erwähnt...

von fritz (Gast)


Lesenswert?

S. R. schrieb:
> Habe ich weiter oben schon erwähnt...

So, dann funzt es jetzt endlich.

von S. R. (redsnake64)


Lesenswert?

Nein, leider nicht - GND war immer schon vorhanden ;-)

von walter (Gast)


Lesenswert?

Die interne Analog-Referenz liegt bei 2,56 Volt.

von Bastler 999 (Gast)


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

von Albert M. (Firma: Bastler aus Mönchengladbach) (albertm) Benutzerseite


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).

von Peter N. (Gast)


Lesenswert?

Albert M. schrieb:
>> Es wird ein ATmega32u4 verwendet.
> Das stimmt so nicht ganz:

Passt schon:
http://arduino.cc/en/Main/ArduinoBoardMicro
nicht passend:
http://arduino.cc/forum/index.php?topic=153232.0

von S. R. (redsnake64)


Lesenswert?

Vielen Dank für eure Hilfe :-)

Problem gelöst:

Hatte durch eine Diode(Verpolschutz) ein Masse - Problem

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.