-         

Ergebnis 1 bis 7 von 7

Thema: Sharp GP2D12

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    24
    Beiträge
    1.544

    Sharp GP2D12

    Anzeige

    Hallo Leute,

    heute ist endlich meine lieferung von Robotikhardware gekommen (2x SFR02 und 2x GP2D12).
    der sfr02 funktionierte auf anhieb :-D und der sharp eig auch, nur in kombination mit dem atmega32 nicht
    am oscar bekomme ich beim gp2d12 völlig korrekte werte, nur wenn ich das in die entfernung umrechnen will, kommt 0 raus

    hier mal mein code:
    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    
    Config Lcd = 20 * 4
    Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.4 , Rs = Portc.5
    Config Lcdbus = 4
    Initlcd
    Cls
    Cursor Off Noblink
    
    Config Adc = Single , Prescaler = Auto
    Start Adc
    
    Config Pina.0 = Input
    Porta.0 = 0
    
    Enable Interrupts
    
    
    Dim D As Single
    Dim X As Word
    Dim Y As Single
    Dim Z As Single
    
    Const A = 24.93
    Const B = 0.0695
    
    
    'D = A /(x -b)
    
    
    Do
    
    X = Getadc(0)
    
    Y = X - B
    Z = A / Y
    D = Z * 100
    
    Locate 1 , 1
    Lcd "X = " ; X
    Locate 2 , 1
    Lcd "Y = " ; Y
    Locate 3 , 1
    Lcd "Z = " ; Z
    Locate 4 , 1
    Lcd "D = " ; D
    
    Wait 1
    Cls
    
    Loop
    
    End
    könnt ihr mir helfen??
    vielleicht ist der fehler auch ganz einfach, nur ich sehe ihn nicht *grübel*

    P.S.: Das mit y und z unso ist nur, damit ich die werte sehe! ich weiß, dass das viel einfacher zu machen ist, hatte ich auch vorher einfacher, nur wollte ich jetzt mal die werte sehen

    danke schon mal
    gruß
    chris

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.04.2008
    Ort
    Esslingen
    Alter
    29
    Beiträge
    235
    Bekommst du denn ergebnisse für y und z? Weis nicht wie das ist wenn du ne single von nem word subtrahierts (
    y=x-b)
    Elektronische Bauteile funktionieren mit Rauch. Lässt man den Rauch raus, sind sie kaputt.

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    24
    Beiträge
    1.544
    Hallo MelMan

    danke für deine schnelle antwort!
    ja, bekomme ich schon!

    ich bekomme auch einen wert für d (die entfernung), also nicht richtig!
    aber könnte es vielleicht sein, dass ich von d noch etwas abziehen muss, um auf den richtigen wert zu kommen??

    gruß
    chris

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    24
    Beiträge
    1.544
    Hallo MelMan

    danke für deine schnelle antwort!
    ja, bekomme ich schon!

    ich bekomme auch einen wert für d (die entfernung), aber nicht richtig!
    aber könnte es vielleicht sein, dass ich von d noch etwas abziehen muss, um auf den richtigen wert zu kommen??

    gruß
    chris

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.04.2008
    Ort
    Esslingen
    Alter
    29
    Beiträge
    235
    Hmm kann ich dir leider nicht sagen kenn mich mit dem Ding nicht aus. Du willst einfach nur die Entfernung messen richtig? Im Datenblatt steht max. Range = 80cm, min. Range = 8cm. Wofür hast du die Werte A und B?
    Elektronische Bauteile funktionieren mit Rauch. Lässt man den Rauch raus, sind sie kaputt.

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.551

    Re: Sharp GP2D12

    Zitat Zitat von Che Guevara
    ... gp2d12 ... wenn ich das in die entfernung umrechnen will, kommt 0 raus ...
    Da ja der Sensorausgang stimmt, ist einfach Deine Umrechnung nicht richtig. Ich kann Dir mit Bascom nicht weiterhelfen - aber lies Dir mal hier durch, wie ich die Umrechnung mache. Die stimmt dann auf den Millimeter . . . . Für den Entfernungsbereich der Sensorwerte oberhalb des maximalen Spannungswertes dürfte für alle Sensortypen dieser Art die Regression
    Abstand = konstante / ADC-Wert
    stimmen. Natürlich gibt es immer wieder Abweichungen - und wer in Mathe pingelig ist, findet sicher auch ein richtig hübsches Polygon als Näherung (aber wer wirklich Mathe kann, rechnet so etwas auch nicht bis zur fünften signifikanten Stelle).

    Viel Erfolg
    Ciao sagt der JoeamBerg

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    24
    Beiträge
    1.544
    Hallo,

    @MelMan,
    ich habe die formel d = a/(x-b) i-wo im forum gelesen!

    @oberallgeier,
    danke für den link, allerdings kenne ich das schon

    @all:
    auch wenn eure antworten sehr hilfreich waren, bin ich nun schon von alleine draufgekommen. und die lösung ist wirklich haarsträubend einfach:

    mit "ausgabewert des sensors" (also x) ist nicht der adc-wert, sondern die spannung, die der sensor ausgibt gemeint
    jetzt funktionierts tadellos

    gruß
    chris

Berechtigungen

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