Analog Digital Wandler bei Mega8
Weil ich schon immer mal den AD Wandler einsetzten/testen wollte habe ich das Beispielprogramm aus dem RN Wiki ein wenig umgeschrieben, um den AD Wandler zu testen.
Code:
' Die gemessene Spannung wird in der Variablen W gespeichert.
' Channel ist der Pin, an dem die Spannung gemessen werden soll.
$regfile "m8def.dat"
$baud = 9600
$crystal = 8000000
Config Portc.5 = Output
Portc.5 = 1
Config Adc = Single , Prescaler = Auto
Start Adc
Dim W As Word , Channel As Byte
Channel = 0
Do
W = Getadc(channel)
Print "ADC-Pin " ; Channel ; ": Wert " ; W
Incr Channel
If Channel > 7 Then Channel = 0
Waitms 800
Loop
End
Zwischen Portc.5 (an dem ja +5V liegen sollten) und AD0 hängt ein 10K Poti. AREFF und AVCC sind nicht beschaltet (dann verwendet er doch VCC als AREFF, oder?) Wenn ich nun das Proggi starte, so gibt sendet der uC für jeden ADPort 1023 - egal, wie das Poti eingestellt ist. Das kann doch nicht richtig sein...?
Re: Analog Digital Wandler bei Mega8
Hallo Barthimaeus,
Zitat:
Zitat von Barthimaeus
...Zwischen Portc.5 (an dem ja +5V liegen sollten) und AD0 hängt ein 10K Poti.
Lege mal ein Ende des Potis an den Pin, das andere Ende an Masse und den Mittelabgriff an AD0. Deine Methode funktioniert nicht, da der AD-Wandler aufgrund seines hohen Eingangswiderstands immer die volle Spannung "sieht".
Zitat:
AREFF und AVCC sind nicht beschaltet ...
Aus dem ATmega8 Datenblatt:
Bild hier
Im Zweifel Aref immer zusätzlich mit einem Kondensator entkoppeln.
Viele Grüße
Fred