Hallo,
ich habe mir ein Accelerometer von Robotikhardware besorgt. Angeschlossen ist dieser mit x an ADC2, y an ADC1 und z an ADC 0, alle anderen ADC sind nicht angeschlossen. Hierzu steht auch in der Anleitung ein Beispielprogramm. Nun komme ich damit aber allgemein hinten und vorne nicht zurecht. Da mich die Ergebnisse immer verwundert haben, habe ich einfach mal alle ADC des ATMEGA32 ausgelesen mit folgendem code (Vorsicht lang, aber wenig Inhalt
Code:
$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600

Enable Interrupts

Config Adc = Single , Prescaler = Auto , Reference = Internal

Declare Sub _betriebsspannung().
Const Ref =(488 * 5.0) / 1024
Dim Xwert As Single
Dim Ywert As Single
Dim Zwert As Single
Dim Awert As Single
Dim Bwert As Single
Dim Cwert As Single
Dim Dwert As Single
Dim Ewert As Single
Dim Beschlx As Single
Dim Beschly As Single
Dim Beschlz As Single
Dim Beschla As Single
Dim Beschlb As Single
Dim Beschlc As Single
Dim Beschld As Single
Dim Beschle As Single


Main:
Do
Cls
Call _betriebsspannung()
Print Xwert ; "   X " ; Beschlx
Print Ywert ; "   Y " ; Beschly
Print Zwert ; "   Z " ; Beschlz
Print Zwert ; "   A " ; Beschla
Print Zwert ; "   B " ; Beschlb
Print Zwert ; "   C " ; Beschlc
Print Zwert ; "   D " ; Beschld
Print Zwert ; "   E " ; Beschle
Print ""
Print ""
Waitms 2000

Loop
End

Sub _betriebsspannung().

Local X As Word
Local Y As Word
Local Z As Word
Local A As Word
Local B As Word
Local C As Word
Local D As Word
Local E As Word
Start Adc
Z = Getadc(0)
Y = Getadc(1)
X = Getadc(2)
A = Getadc(3)
B = Getadc(4)
C = Getadc(5)
D = Getadc(6)
E = Getadc(7)
Stop Adc

Xwert = X * Ref
Ywert = Y * Ref
Zwert = Z * Ref
Awert = A * Ref
Bwert = B * Ref
Cwert = C * Ref
Dwert = D * Ref
Ewert = E * Ref

Beschlx = X
Beschly = Y
Beschlz = Z
Beschla = A
Beschlb = B
Beschlc = C
Beschld = D
Beschle = E
End Sub
Das Ergebniss ist folgendes:

462.265625 X 194.0
617.1484375 Y 259.0
903.0859375 Z 379.0
903.0859375 A 224.0
903.0859375 B 241.0
903.0859375 C 250.0
903.0859375 D 285.0
903.0859375 E 491.0

Das Problem ist:

Die Vorderen zahlen Variieren immer wie sie lustig sind. Das dürfte dann aber maximal an einer nicht stabilen Spannung liegen oder?

Aber warum zeigen mir die direkten Werte der ADC alle Unterschiedliche Zahlen an, obwohl doch von A-E garnichts angeschlossen ist. Da müsste doch überall garnichts ankommen.

Auserdem müssten doch der Sensor in X und Y richtung jeweils die Erdbeschleunigung anzeigen, aber diese Variieren ja auch total.
Wie kriege ich das bitte hin das ich vernünftige Ergebnisse da raus krieg, und warum gibt der ADC immer so komisches Zeug aus?

Grüße[/code]