Archiv verlassen und diese Seite im Standarddesign anzeigen : 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
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/viewtopic.php?p=34344#34344
Manfred
HI Manf,
Ich meine einfach ein einfaches Patentrezept für die Berechnung der Entfernung aus der Spannung; :D
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... :-k
Hi,
Ich fahre jetzt leider nach Sinsheim ins Museum; Familienausflug, da kann man sich schlecht drum drücken... :D
Trozdem danke für alle Antworten! Ich beantworte heute Abend!
Tobi
Mr. Burns
03.11.2004, 10:44
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
HI!
Danke!
Hast du berücksichtigt, dass ich mit 8 Bit arbeite?
Ich werd's testen!
Viele liebe Grüße und Danke,
Tobi
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
Mr. Burns
04.11.2004, 10:57
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
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
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.