An offenen Eingängen ist nicht nichts, sondern irgenwas, das bekommst du ja auch angezeigt. Leg die Eingänge auf GND und du wirst 0 bekommen.
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]
An offenen Eingängen ist nicht nichts, sondern irgenwas, das bekommst du ja auch angezeigt. Leg die Eingänge auf GND und du wirst 0 bekommen.
Ok vielen Dank.
Bleibt nur noch die Frage wie ich jetzt Ergebnisse des Sensors bekomme.
Grüße
Richtig. Statt die Oins auf GND zu löten würde ich aber lieber einfach die Pullups aktivieren. Dann liegen sie zwar auf 1 (1023), flattern aber auch nicht.An offenen Eingängen ist nicht nichts, sondern irgenwas, das bekommst du ja auch angezeigt. Leg die Eingänge auf GND und du wirst 0 bekommen.
Wie sollen denn die Zahlen vor dem Buchstaben mit denen dahinter zusammenhängen?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
Ich vermute mal du willst aus den Werten an den AD-Eingängen die Spannung errechnen.
Dann ist es allerdings etwas seltsam, dass bei den unteren Zeilen vor dem Buschstaben überall dieselbe Zahl steht und dahinter unterschiedliche.
Irgendwas passt da in deinem Programm nicht.
Hatte nen Fehler im Programm. Die Berichtigten Zahlen sind:
Also die anderen Benutzte ich ja nicht, das war ja nur so rien interesse halber was die ausgeben.1522.6171875 X 639.0
2282.734375 Y 958.0
1822.8515625 Z 765.0
1281.953125 A 538.0
1108.0078125 B 465.0
988.8671875 C 415.0
967.421875 D 406.0
1398.7109375 E 587.0
Die Erste Zahl ist die Spannung in Millivolt, der Buchstabe ist die Bezeichnung, und die 2. Zahl ist der Wert den mir der ADC zurück gibt. Somit wundert es mich das die alle unterschiedliche Werte zurück geben. Auch wenn ich mit nem Multimeter die Spannung an den eingängen Mess welche der Beschleunigungsmesser ausgibt fängt er bei 320 Millivolt an, und fällt dan ganz langsam bis auf 0 ab O_o.
Auserdem verändert sich die Spannung laut ADC vom ATMEGA laufend bei den ersten 3 Pins, welche aber immer gleich sien sollten da ich den Beschleunigungsmesser nicht bewege. Diese werden Teils utopisch hoch.
Grüße
Bei den meisten Beschleunigungssensoren ist es üblich, dass man als Nullwert etwa die halbe Versorgungsspnnung zurükbekommt.
Mit dem 3.3 V Regler wären das hier 1.65 V. Das käme etwa hin für x und Z. Bei einer Achse muß ja auch noch die Erdbeschleunigung wirken, hier vermutlich Y.
Die Werte sehen deutlich besser aus als 320 mV und fallend auf 0. Das spricht mehr für eine Fehlbedienung oder fehlende Versorgungsspannung.
Wenn man keinen geschirmenten Aufbau hat, und eventuell noch eine Trafo in der Nähe können die Werte schon ziehmlich schwanken.
Das komische ist halt das wenn ich den Beschleunigungssensor Drehe, alle Werte gleich bleiben, und sich keiner verändert. Dabei müsste sich ja mindestens 2 Achsen ändern, weil g woanders hin wirkt.
Es kommt auf die Richtung der Drehung an. Aber wenn einen andere Seite nach unten kommt dann sollte sich schon was ändern. Nicht unbedingt gleich 2, aber immerhin.
Wie sieht denn das mit der Versorgungsspannung aus ? Stimmen da die Werte ? (Vcc, Avcc, 3.3 V vom Accelerometer)
Aref sind 5,05 V beim Atmega avcc auch, (Hab grade überprüft, dieser misst auch richtig). vin sind 5,05 v beim accerlometer und bei der extra 3,3v versorgung des accelerometers kommen auch 3,3 v raus. Das komische ist auch das er die Spannung ändert wenn garnichts passiert und er ruhig da liegt.
Ist das Modul vielleicht defekt?
Aref = 5 V ist nicht ganz das ideale, aber nicht so schlimm, das damit gar nichts geht. Besser wären da z.B. die 3.3 V. Nur das kann oach nicht das Problem sein.
Wie sind denn die Übrogen Eingänge des Moduls beschaltet ? Ist da nicht so was wie ein Enable Eingang ?
Stimmt denn die masseverbindung ?
Ganz auszuschließen ist ein defektes Modul nie, aber so etwas ist eher die Ausnahmen.
Lesezeichen