Programm zur Darstellung der Lage eines Objektes im Raum mit Hilfe eines Beschleunigungssensores, 4 LED's und einem LCD-Display.

Dependencies:   TextLCD mbed

Committer:
Schreeker
Date:
Tue Jun 28 19:05:15 2016 +0000
Revision:
11:5861bc23022a
Parent:
9:38d287593320
Child:
14:2543a798b4a1
Hinzuf?gen der Funktionen vDebugData und vLCDDebug. Erstere gibt Spannungswerte der Achsen mit Faktor 10000 multipliziert zur?ck, zweitere zeigt diese Werte an f?r Kalibrierung der Nullage. Simon Rutzen

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Schreeker 0:2a6b63a19ae5 1 /**********************************************************************************
Schreeker 0:2a6b63a19ae5 2 * File name: LCD.cpp
Schreeker 0:2a6b63a19ae5 3 * Zweck: Beinhaltet alle Funktionen zur Ausgabe von Informationen
Schreeker 0:2a6b63a19ae5 4 auf dem LCD-Display, sowie Funktionen zum Debuggen des Projektes
Schreeker 0:2a6b63a19ae5 5 * Author: Simon Rutzen, Nils Kemmer
Schreeker 0:2a6b63a19ae5 6 * Changes: keine
Schreeker 0:2a6b63a19ae5 7 ***********************************************************************************/
Schreeker 0:2a6b63a19ae5 8
Schreeker 0:2a6b63a19ae5 9 /* Includes */
Schreeker 0:2a6b63a19ae5 10 #include "LCD.h"
Schreeker 0:2a6b63a19ae5 11
Schreeker 0:2a6b63a19ae5 12 /* Objekt zum Steuern des Bildschirmes */
Schreeker 0:2a6b63a19ae5 13 TextLCD olcd(PA_9, PC_7, PB_5, PB_4, PB_10, PA_8, TextLCD::LCD20x2); // rs, e, d4-d7
Schreeker 0:2a6b63a19ae5 14
Schreeker 0:2a6b63a19ae5 15 /************************************************************************************
Schreeker 0:2a6b63a19ae5 16 * void vLCDSet(word wWinkelX, word wWinkelY)
Schreeker 0:2a6b63a19ae5 17 * Zweck: Funktion zur Darstellung der aktuellen X- und Y-Lage (in °)
Schreeker 0:2a6b63a19ae5 18 des Beschleunigungssensores auf dem LCD-Display
Schreeker 0:2a6b63a19ae5 19 * Parameter:
Schreeker 0:2a6b63a19ae5 20 wWinkelX: aktueller Winkel bezogen auf die X-Achse des Beschleunigungssensores
Schreeker 0:2a6b63a19ae5 21 wWinkelY: aktueller Winkel bezogen auf die Y-Achse des Beschleunigungssensores
Schreeker 0:2a6b63a19ae5 22 * return Parameter:
Schreeker 0:2a6b63a19ae5 23 keine
Schreeker 0:2a6b63a19ae5 24 *************************************************************************************/
Schreeker 9:38d287593320 25 void vLCDSet(signed short int wWinkelX, signed short int wWinkelY){
Schreeker 5:c0d6d490dd5b 26 /* Bildschirm bereinigen*/
Schreeker 5:c0d6d490dd5b 27 olcd.cls();
Schreeker 7:882edb5f9466 28
Schreeker 0:2a6b63a19ae5 29 /* Überschrift in erster Zeile darstellen */
Schreeker 0:2a6b63a19ae5 30 olcd.locate(0,0);
Schreeker 0:2a6b63a19ae5 31 olcd.printf("Lage:");
Schreeker 0:2a6b63a19ae5 32
Schreeker 0:2a6b63a19ae5 33 /* aktuelle Winkel darstellen in ° */
Schreeker 0:2a6b63a19ae5 34 olcd.locate(0,1);
Schreeker 7:882edb5f9466 35 olcd.printf("X:%i\337 Y:%i\337",wWinkelX,wWinkelY); // \337 entspricht °-Zeichen
Schreeker 11:5861bc23022a 36 }
Schreeker 11:5861bc23022a 37
Schreeker 11:5861bc23022a 38 /************************************************************************************
Schreeker 11:5861bc23022a 39 * void vLCDDebug(signed short int wWinkelX, signed short int wWinkelY, signed short int wWinkelZ)
Schreeker 11:5861bc23022a 40 * Zweck: Debugfunktion zum Anzeigen der aktuellen Messwerte des Beschleunigungssensores
Schreeker 11:5861bc23022a 41 zwecks Kalibrierung der einzelnen Nullpunkte der Achsen
Schreeker 11:5861bc23022a 42 * Parameter:
Schreeker 11:5861bc23022a 43 wWinkelX: aktueller Winkel bezogen auf die X-Achse des Beschleunigungssensores
Schreeker 11:5861bc23022a 44 wWinkelY: aktueller Winkel bezogen auf die Y-Achse des Beschleunigungssensores
Schreeker 11:5861bc23022a 45 wWinkelZ: aktueller Winkel bezogen auf die Y-Achse des Beschleunigungssensores
Schreeker 11:5861bc23022a 46 Hinweis: Alle Winkelwerte sind Spannungswerte des Sensores mit Faktor 10000 multipliziert!
Schreeker 11:5861bc23022a 47 * return Parameter:
Schreeker 11:5861bc23022a 48 keine
Schreeker 11:5861bc23022a 49 *************************************************************************************/
Schreeker 11:5861bc23022a 50 void vLCDDebug(signed short int wWinkelX, signed short int wWinkelY, signed short int wWinkelZ){
Schreeker 11:5861bc23022a 51 /* Bildschirm bereinigen */
Schreeker 11:5861bc23022a 52 olcd.cls();
Schreeker 11:5861bc23022a 53
Schreeker 11:5861bc23022a 54 /* Anzeigen der einzelnen Parameter, oben X und Y, unten Z */
Schreeker 11:5861bc23022a 55 olcd.locate(0,0);
Schreeker 11:5861bc23022a 56 olcd.printf("X:%i Y:%i",wWinkelX,wWinkelY);
Schreeker 11:5861bc23022a 57 olcd.locate(0,1);
Schreeker 11:5861bc23022a 58 olcd.printf("Z:%i",wWinkelZ);
Schreeker 11:5861bc23022a 59 }