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)
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:
könnt ihr mir helfen??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
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
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.
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
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
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.
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 RegressionZitat von Che Guevara
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
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
Lesezeichen