PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit ADC von Mega32



Olle_Pinelle
01.03.2008, 13:48
Hallo.
Bin neu hier, also erstmal hallo!
Ich beschäftige mich seit kurzen mit uControllern. Hab die Grundschaltungen mit einem Atmega32 aufgebaut und die ersten Led-Taster Programme mit BASCOM geschrieben. Soweit läuft alles prächtig.
Nun hab ich vor eine Spannung zu messen. Dazu hab ich einen Spannungsteiler ( 2x 470 Ohm) aufgebaut und an die 5V Spannungsquelle mit der ich auch den Controller betreibe angeschlossen. Den ADC0 Pin des Controllers hab ich mit der Mitte der beiden Widerständen verbunden. Da die Spannung ja somit 2,5V beträgt will ich die Versorgungsspannung des Controllers als Referenzspannung benutzen.
Hier ist der Quellcode den ich geschrieben hab. Da ich kein UART und noch kein Display besitze, hab ich mir gedacht eine LED als Anzeige zu verwenden.


$regfile = "m32def.data"
$crystal = 16000000
DDRB = &B00000001
PORTB.0 = 1

Dim W As Word
Config ADC = Single, Prescaler = Auto, Reference = AVCC
Do
W = Getadc(0)
If W>400 Then
PORTB.0 = 0 'LED einschalten
endif
loop

end

Am Controller hab ich an PIN AVCC 5 V angeschlossen, an AREF nichts, da ich ja keine externe Referenzspannung verwenden will.

Ich hoffe die Frage ist nicht zu banal, hab in der Suche halt nichts gefunden...
Vielen Dank schonmal!!

zerush
01.03.2008, 13:53
Hallo erstmal!

Also ansich hast du ja gar keine Frage gestellt?!
Aber ich gehe einfach mal davon aus, dass es so nicht klappt, wie du es dir vorstellst?
Dann wäre trotzdem gut zu wissen, was passiert? Geht die LED nicht an?

Gruß,
zerush

Olle_Pinelle
01.03.2008, 13:59
Die Led leuchtet. Allerdings sollte sie doch aus sein, da ja die Spannung nicht größer 400 ist. 400 bezieht sich doch auf mV, oder irr ich mich? Ich wollte nur mal generell fragen ob ich was generell falsch gemacht habe. Ist leider sehr schwierig ohne UART bzw Display. Habe ich aber schon bestellt, mal sehen was dann bei rauskommt.
Also ist schaltungstechnisch soweit alles in Ordnung?

Hubert.G
01.03.2008, 14:47
An AVCC gehört ein 100n Kondensator wenn die interne Referenz verwendet wird. Die 400 beziehen sich nicht auf mV. Der ADC teilt durch 10bit, also 1024, 2,5V sind also 512.

Dirk
01.03.2008, 16:09
Also ist schaltungstechnisch soweit alles in Ordnung?

Ja, der Spannungsteiler 470/470 Ohm ist ok, allerdings würde man, wenn man eine Spannung dauerhaft messen will, mit viel kleineren Strömen arbeiten.

Auf meiner Platine überwache ich auch eine 5V-Spannung und habe dafür einen Spannungsteiler 100/100 kOhm. Der hat nur 25 uA als Längsstrom, während dein Spannungsteiler 5,3 mA hat. Das kann wichtig werden z.B. bei Batterie- oder Solarbetrieb.

Gruß Dirk

Olle_Pinelle
01.03.2008, 16:20
Toll.
Tausend dank an euch alle!! O:)

Hubert.G
01.03.2008, 16:47
Wenn du deine 5V überwachen willst und sie gleichzeitig als Referenz nimmst, wird das nicht funktionieren da sich Mess- und Referenzspannung im gleichen Maße ändern. Es wäre besser, in dem Fall, die interne Referenz 2,56V zu verwenden da diese doch länger konstant bleibt.

Besserwessi
01.03.2008, 16:56
Die Versorgungsspannung des Controller mißt man am einfachsten indem man AVCC als Referenz nimmt und damit die interne bandgab referenz mißt. Der AD Wert ist dann zwar gerade umgekehrt (hohe Wert bei niedriger Spannung), aber man braucht keinen externen Pin.

Olle_Pinelle
03.03.2008, 19:08
war nur zum generellen ausprobieren. Trotzdem vielen Dank. Funktioniert jetzt alles!