
Programm zur Darstellung der Lage eines Objektes im Raum mit Hilfe eines Beschleunigungssensores, 4 LED's und einem LCD-Display.
Diff: Sensor.cpp
- Revision:
- 4:ed779bcb8ce6
- Parent:
- 3:740ab0a19e1d
- Child:
- 5:c0d6d490dd5b
--- a/Sensor.cpp Mon May 23 12:15:11 2016 +0000 +++ b/Sensor.cpp Tue May 24 13:43:39 2016 +0000 @@ -7,7 +7,9 @@ ***********************************************************************************/ /*define*/ -#define pi 3.1416 +#define pi 3.141 +#define URef 1.660 +#define UDiff 0.332 /*Include*/ #include "Sensor.h" @@ -37,5 +39,23 @@ double dGMessX; double dGMessY; double dGMessZ; - /*Umrechnen der Messdaten in Winkel*\ + /* Umrechnen der Messdaten in Spannungen */ + dGMessX = (sSensData->wSensX/65535.0)*3.3; + dGMessX = (int)(dGMessX*1000)/1000.0; // Doublewerte auf 2 Nachkommastellen begrenzen! + dGMessX = abs(dGMessX-URef)/UDiff; + dGMessX = (int)(dGMessX*1000)/1000.0; + if(dGMessX<=1 || dGMessX>=-1){ + sWinkelData->i16WinkelX = asin(dGMessX)*(180/pi); + } + + dGMessY = (sSensData->wSensY/65535.0)*3.3; + dGMessY = (int)(dGMessY*1000)/1000.0; // Doublewerte auf 2 Nachkommastellen begrenzen! + dGMessY = abs(dGMessY-URef)/UDiff; + dGMessY = (int)(dGMessY*1000)/1000.0; + if(dGMessY<=1 || dGMessY>=-1){ + sWinkelData->i16WinkelY = asin(dGMessY)*(180/pi); + } + + /* Umrechnen der Spannungen in g-Kräfte*/ + /* Umrechnen der g-Kräfte in Winkel*/ } \ No newline at end of file