
Programm zur Darstellung der Lage eines Objektes im Raum mit Hilfe eines Beschleunigungssensores, 4 LED's und einem LCD-Display.
Diff: LED.cpp
- Revision:
- 20:094cdb790dcb
- Parent:
- 19:51747c0ab062
--- a/LED.cpp Tue Jul 12 14:49:28 2016 +0000 +++ b/LED.cpp Fri Jul 29 14:58:49 2016 +0000 @@ -3,13 +3,22 @@ * Zweck: Beinhaltet alle Funktionen zur Einstellung der LED-Helligkeit in Abhängigkeit von den berechneten Winkeln. * Author: Simon Rutzen, Nils Kemmer -* Changes: keine +* Changes: + 31.05.16 Erstellung File und Kommentar + 05.06.16 Funktion setLED erstellt + Kommentar zum Code + 28.06.16 Funktion initLED erstellt + 03.07.16 Funktion setLED geschrieben + 06.07.16 Ueberkopflage auf +- 80° festgelegt (LED blinken) + 07.07.16 Funktion setLED Helligkeitsbezug auf 80° gesetzt (vorher 90°) + 12.07.16 Periode PWM auf 10ms gesetzt wegen Flackern der LED's + 29.07.16 Anpassung an Programmierrichtlinie-Dokument und letzte endgültige + Kontrolle Simon Rutzen ***********************************************************************************/ /* Zu benutzende Pins */ // PWM1 - Channel 1N (PB_15), 2N (PB_14), 3N (PB_13) und 4 (PA_11) -/* Include */ +/* Includes */ #include "mbed.h" #include "Sensor.h" @@ -27,19 +36,20 @@ PwmOut oLEDYP(PA_11); /************************************************************************************ -* void setLED(struct WinkelData stWinkelData) +* byte LED_bsetLED(struct WinkelData stWinkelData) * Zweck: Steuerung der vier LED's auf Basis der berechneten Winkel in stWinkelData. 1. Auswerten der Z-Achse, ob Überkopflage oder nicht 2. Ansteurung der LED's auf Basis der berechneten Winkel in stWinkelData und Schritt 1. * Parameter: - wWinkelX: aktueller Winkel bezogen auf die X-Achse des Beschleunigungssensores - wWinkelY: aktueller Winkel bezogen auf die Y-Achse des Beschleunigungssensores + wWinkelX: aktueller Winkel bezogen auf die X-Achse des Beschleunigungssensores + wWinkelY: aktueller Winkel bezogen auf die Y-Achse des Beschleunigungssensores wSpannungZ: aktueller Winkel bezogen auf die Y-Achse des Beschleunigungssensores -* return Parameter: - bStateLCD: LCD zeigt Winkel an (0) oder Textnachricht Überkopflage (1) +* return bStateLCD: + 1 : Normallage -> Winkelanzeige der X- und Y-Achse + 0 : Ueberkopflage -> Anzeige Textnachricht, keine Winkel *************************************************************************************/ -byte setLED(int16 wWinkelX, int16 wWinkelY, int16 wSpannungZ){ +byte LED_bsetLED(int16 wWinkelX, int16 wWinkelY, int16 wSpannungZ){ /* Variabeln */ byte bStateLED = 0; // Zustand des Lagesensors ( 0: Normallage 1: Überkopflage) byte bStateLCD = 0; // Zustand der LCD-Anzeige ( 0: Winkelausgabe 1: Textnachricht Überkopflage) @@ -56,6 +66,7 @@ /* Einstellen der LED's */ switch(bStateLED){ + case 0:{ // Normallage, einstellen der LED-Helligkeit abhängig vom Winkel if(wWinkelX <= 0){ oLEDXN = abs(wWinkelX/80.0); @@ -73,6 +84,7 @@ } break; } + case 1:{ // Überkopflage, LED's blinken if(oLEDXN.read()> 0){ oLEDXN = 0; @@ -88,6 +100,7 @@ } break; } + default: break; } @@ -96,14 +109,14 @@ } /************************************************************************************ -* void void initLED() +* void LED_initLED() * Zweck: Blinken der LED's beim Anschalten des Boards. 4x Blinken im 250ms Abstand * Parameter: keine * return Parameter: keine *************************************************************************************/ -void initLED(){ +void LED_vinitLED(){ /* Variabeln */ int i = 0;