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
Das Ergebniss ist folgendes: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
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]







Zitieren

Lesezeichen