-
        

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 31

Thema: ADC Messung und Beschleunigungssensor

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    03.10.2008
    Beiträge
    36

    ADC Messung und Beschleunigungssensor

    Anzeige

    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]

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.183
    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.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    03.10.2008
    Beiträge
    36
    Ok vielen Dank.
    Bleibt nur noch die Frage wie ich jetzt Ergebnisse des Sensors bekomme.

    Grüße

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    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.
    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.


    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
    Wie sollen denn die Zahlen vor dem Buchstaben mit denen dahinter zusammenhängen?
    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.

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    03.10.2008
    Beiträge
    36
    Hatte nen Fehler im Programm. Die Berichtigten Zahlen sind:

    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
    Also die anderen Benutzte ich ja nicht, das war ja nur so rien interesse halber was die ausgeben.

    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

  6. #6
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    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.

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    03.10.2008
    Beiträge
    36
    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.

  8. #8
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    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)

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    03.10.2008
    Beiträge
    36
    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?

  10. #10
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    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.

Seite 1 von 4 123 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •