Pseudocode für Analogen Kompasssensor

Juni 6th, 2007 by Felix Hardmood Beck

Dank Hilfe des mathemathischen Wunderkindes Aveal alias Michi und der technischen Formelsammlung von Kurt Gieck kommt man zu folgender Rechnung:

Dabei sind V(ok) und V(uk) als obere und untere Kreuzspannung Variablen, die durch eine Vorlaufphase fest in den Ram des Microcontroller geschrieben werden und bei einem Wechsel überschrieben werden können. Die Mittelspannung V(m) ist unrelevant und wird mit dem Wert 512 = 2,5 Volt festgelegt.

1.Fall
Wenn Kurve 1 ≥ V(ok) folgt: 315°...45° (also ein Winkel von 90°)
V(ok)-V(uk)=V(bereich)
V°rel=90°/(V(ok)-V(uk))x(V(2)-V(uk)) ergibt einen Wert 0°...90°
Wenn 0°...45° dann 315°+V°rel
Wenn 45°...90° dann 0°+(V°rel-45°)

2.Fall
Wenn Kurve 2 > V(ok) folgt: 45°...135° (also ein Winkel von 90°)
V(ok)-V(uk)=V(bereich)
V°rel=90°/(V(ok)-V(uk))x(V(bereich)-(V1-V(uk))) ergibt V°rel (Wert 0°...90°)
Wir rechnen um auf den Komplett-Winkel zu kommen 45° + V°rel

3.Fall
Wenn Kurve 1 ≤ V(uk) folgt: 135°...225° (also ein Winkel von 90°)
V(ok)-V(uk)=V(bereich)
V°rel=90°/(V(ok)-V(uk))x(V(bereich)(V2-V(uk)) ergibt V°rel (Wert 0°...90°)
Wir rechnen um auf den Komplett-Winkel zu kommen 135° +V°rel

4.Fall
Wenn Kurve 2 < V(uk) folgt: 225°...315° (also ein Winkel von 90°)
V(ok)-V(uk)=V(bereich)
V°rel=90°/(V(ok)-V(uk))x(V1-V(uk)) ergibt V°rel (Wert 0°...90°)
Wir rechnen um auf den Komplett-Winkel zu kommen 225° +V°rel

Es gibt vier Sonderfälle bei denen V(ok) und V(uk) aufeinander liegen (== die Schnittpunkte von Sinus und Cosinus die V(ok) und V(uk) ausbilden. Zwei der Sonderfälle werden bereits durch das ≥ bzw ≤ Zeichen in den if-Abfragen gelöst. Für die anderen beiden Fölle stellt man folgende Formel auf:

A) if (V1==V2)&&>512) then 45°
B) if (V1==V2)&&<512) then 225°

;-)


Bild vergrößern

Show On Map | Posted in Fotos, Technik, geomashup, software | No Comments »

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.