-
-
Erfahrener Benutzer
Roboter Genie
GP2D12 konkret
HI!
Ich habe einen GP2D12, der über einen I²C, 8-Bit ADC ausgelesen wird.
In Bascom wird dieser Wert in einer Single-Variable zur Voltzahl
umgerechnet.
Ich habe im Internet nach einem stichhaltigen Verfahren gesucht, das in die Entfernung umzurechnen. Ohne Erfolg, der funktioniert hätte.
Die Formel aus diesem Thread funktoniert bei mir irgendwie nicht:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=174
Deshalb: Hat jemand eine Fromel für den GP2D12 oder wie muss ich das anstellen?
Wie macht ihr das?
Vielen Dank schonmal jetzt,
Tobi
-
Super-Moderator
Lebende Robotik Legende
Was meinst Du genau?
Die Formel mit dem x hoch y ist sicher etwas schwierig für den Controller ist das das Problem?
https://www.roboternetz.de/phpBB2/vi...?p=34344#34344
Manfred
-
Erfahrener Benutzer
Roboter Genie
HI Manf,
Ich meine einfach ein einfaches Patentrezept für die Berechnung der Entfernung aus der Spannung;
Diehier habe ich getestet, es funzt aber nicht:
D = A/(X-B)
Danke schonmal!
Tobi
PS/EDIT: Ich wüsste nciht, wie ich x^y mit dem controller ausrechnen sollte... ohne Schleife mit BASCOM...
-
Erfahrener Benutzer
Roboter Genie
Hi,
Ich fahre jetzt leider nach Sinsheim ins Museum; Familienausflug, da kann man sich schlecht drum drücken...
Trozdem danke für alle Antworten! Ich beantworte heute Abend!
Tobi
-
Neuer Benutzer
Öfters hier
Hallo,
soweit ich weiß beherrscht Bascom die Potenzrechnung. Sollte es Probleme durch die Floatzahl im Exponent geben, so läßt sich die Formel sicherlich mit etwas Geschick (und einer Matheformelsammlung) geeignet umstellen. Ich fang schon mal mit dem Minus an:
y = A * x^-B = A / x^B
Ich habe mir gerade die Tabelle nochmal angeschaut. Der Wert für B ist etwa 1,15. Durch leichte Anpassung des Sensorsignals (nach unten) kann der Wert auf knapp 1 gebracht werden. Ich habe mal von allen Werten des A/D-Wandlers (Tabelle1, Spalte C) 10 subtrahiert. Dann ergibt sich im Diagramm die Formel
y = 2407,8 * x^-1,0036
Das kann man dann schon etwas vereinfachen
y = 2408 / x
Als Gesamtformel ergibt sich also
y = 2408 / (x - 10)
wobei y = Entfernung in cm
und x = Wert des A/D-Wandlers
Also das sollte für den µC kein Problem sein und der Fehler ist gering (max. 1 cm).
Grüße
Markus
-
Erfahrener Benutzer
Roboter Genie
HI!
Danke!
Hast du berücksichtigt, dass ich mit 8 Bit arbeite?
Ich werd's testen!
Viele liebe Grüße und Danke,
Tobi
-
Erfahrener Benutzer
Roboter Genie
Hi,
Also, hab's schnell programmiert. Da kommen schon wieder ordentliche Zahlen raus, aber ich glaube, dass du das für 10Bit oder so ausgelegt hast?!
Tobi
-
Neuer Benutzer
Öfters hier
Hallo,
also ich habe mit einem 8-bit-ADC gearbeitet. Im Prinzip ist es aber egal. Im 2. Diagramm ist das ganze ja gegen die Spannung aufgetragen, da kannst du das genauso vereinfachen. Durch Verwendung eines 10-bit-ADC wird ja nur die X-Achse des Diagramms gestreckt, das Berechnungsprinzip bleibt gleich. Das gleiche gilt auch, wenn du einen anderen Sharp-Sensor nimmst. Einfach etwas mit den Zahlen spielen, bis du etwas raushast, daß sich leicht berechnen läßt.
Haben die AVRs oder Bascom überhaupt Probleme mit der ersten Formel? Ich hatte die Sensorauswertung auf dem PC gemacht und mich deshalb nicht um Rechenkapazität gekümmert.
Markus
-
Erfahrener Benutzer
Roboter Genie
Hi
Ja, danke, es funktioneirt jetzt!!
Also mit den n Stellen hinterm Komma haben die AVRs schon so ihre Problemchen... Vor allem steigt der Flash-Verbrauch extrem an, wenn man
SINGLE-Variablen nimmt.
DANKE AN ALLE!
Tobi
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen