My Version of The LED_WS2812 Library
Dependencies: WS2812 PixelArray
Fork of LED_WS2812 by
LEDs_Car.cpp@8:392cfdbded1e, 2019-06-21 (annotated)
- Committer:
- sepp_nepp
- Date:
- Fri Jun 21 15:25:05 2019 +0000
- Revision:
- 8:392cfdbded1e
Add New Module LEDs_Car to the Library: directly handles all four LED lamps of a Car/Robot.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
sepp_nepp | 8:392cfdbded1e | 1 | // ***************************************************************** |
sepp_nepp | 8:392cfdbded1e | 2 | // Handle all the LEDs with some general function wrappers functions |
sepp_nepp | 8:392cfdbded1e | 3 | // ***************************************************************** |
sepp_nepp | 8:392cfdbded1e | 4 | #include "LEDs_Car.h" |
sepp_nepp | 8:392cfdbded1e | 5 | |
sepp_nepp | 8:392cfdbded1e | 6 | // Added a lookup function from a color number to a color, used by Creabot |
sepp_nepp | 8:392cfdbded1e | 7 | int LEDs_Car::ColNr2Color( char ColNr) |
sepp_nepp | 8:392cfdbded1e | 8 | { switch (ColNr) { |
sepp_nepp | 8:392cfdbded1e | 9 | case 0: return BLACK; |
sepp_nepp | 8:392cfdbded1e | 10 | case 1: return WHITE; |
sepp_nepp | 8:392cfdbded1e | 11 | case 2: return RED; |
sepp_nepp | 8:392cfdbded1e | 12 | case 3: return GREEN; |
sepp_nepp | 8:392cfdbded1e | 13 | case 4: return BLUE; |
sepp_nepp | 8:392cfdbded1e | 14 | case 5: return PURPLE; |
sepp_nepp | 8:392cfdbded1e | 15 | default: return BLACK; |
sepp_nepp | 8:392cfdbded1e | 16 | } |
sepp_nepp | 8:392cfdbded1e | 17 | } |
sepp_nepp | 8:392cfdbded1e | 18 | |
sepp_nepp | 8:392cfdbded1e | 19 | void LEDs_Car::LEDsOff( void ) { |
sepp_nepp | 8:392cfdbded1e | 20 | StopRotation(); |
sepp_nepp | 8:392cfdbded1e | 21 | StopBlink() ; |
sepp_nepp | 8:392cfdbded1e | 22 | for (int lNr=0; lNr<NumLEDs; lNr++) |
sepp_nepp | 8:392cfdbded1e | 23 | { SetColor(BLACK,lNr); } |
sepp_nepp | 8:392cfdbded1e | 24 | } |
sepp_nepp | 8:392cfdbded1e | 25 | |
sepp_nepp | 8:392cfdbded1e | 26 | void LEDs_Car::LEDsRainbow( void ) |
sepp_nepp | 8:392cfdbded1e | 27 | { for (int Nr=0; Nr<NumLEDs; Nr++) |
sepp_nepp | 8:392cfdbded1e | 28 | { SetColor(ColNr2Color(Nr + 1),Nr); } |
sepp_nepp | 8:392cfdbded1e | 29 | } |
sepp_nepp | 8:392cfdbded1e | 30 | |
sepp_nepp | 8:392cfdbded1e | 31 | void LEDs_Car::LEDNrCol(LED_Nr aNr, int parameter) |
sepp_nepp | 8:392cfdbded1e | 32 | { |
sepp_nepp | 8:392cfdbded1e | 33 | SetColor( ColNr2Color( aNr ), aNr); |
sepp_nepp | 8:392cfdbded1e | 34 | } |
sepp_nepp | 8:392cfdbded1e | 35 | |
sepp_nepp | 8:392cfdbded1e | 36 | void LEDs_Car::LEDsRainbowMove( double speed ) |
sepp_nepp | 8:392cfdbded1e | 37 | { LEDsRainbow( ); |
sepp_nepp | 8:392cfdbded1e | 38 | StartRotation(0.3); |
sepp_nepp | 8:392cfdbded1e | 39 | } |
sepp_nepp | 8:392cfdbded1e | 40 | |
sepp_nepp | 8:392cfdbded1e | 41 | void LEDs_Car::LEDClignote(LED_Nr aNr, int OnOff) { |
sepp_nepp | 8:392cfdbded1e | 42 | if (OnOff == 1) { |
sepp_nepp | 8:392cfdbded1e | 43 | SetColor( ORANGE, aNr); |
sepp_nepp | 8:392cfdbded1e | 44 | StartBlink(0.5) ;} |
sepp_nepp | 8:392cfdbded1e | 45 | else { LEDsOff(); } |
sepp_nepp | 8:392cfdbded1e | 46 | } |
sepp_nepp | 8:392cfdbded1e | 47 | |
sepp_nepp | 8:392cfdbded1e | 48 | // ***************************************************************** |
sepp_nepp | 8:392cfdbded1e | 49 | // Handle all the LEDs specifically with the LED Position definitions |
sepp_nepp | 8:392cfdbded1e | 50 | // ***************************************************************** |
sepp_nepp | 8:392cfdbded1e | 51 | |
sepp_nepp | 8:392cfdbded1e | 52 | void LEDs_Car::LEDFront(int ColNr) |
sepp_nepp | 8:392cfdbded1e | 53 | { |
sepp_nepp | 8:392cfdbded1e | 54 | SetColor( ColNr2Color( ColNr ), ledAvD); |
sepp_nepp | 8:392cfdbded1e | 55 | SetColor( ColNr2Color( ColNr ), ledAvG); |
sepp_nepp | 8:392cfdbded1e | 56 | } |
sepp_nepp | 8:392cfdbded1e | 57 | |
sepp_nepp | 8:392cfdbded1e | 58 | void LEDs_Car::LEDRear(int ColNr) |
sepp_nepp | 8:392cfdbded1e | 59 | { |
sepp_nepp | 8:392cfdbded1e | 60 | SetColor( ColNr2Color( ColNr ), ledArD); |
sepp_nepp | 8:392cfdbded1e | 61 | SetColor( ColNr2Color( ColNr ), ledArG); |
sepp_nepp | 8:392cfdbded1e | 62 | } |
sepp_nepp | 8:392cfdbded1e | 63 | |
sepp_nepp | 8:392cfdbded1e | 64 | void LEDs_Car::LEDCligR(int speed) { |
sepp_nepp | 8:392cfdbded1e | 65 | if ( (speed>0) && (speed<4) ) { |
sepp_nepp | 8:392cfdbded1e | 66 | SetColor(ORANGE, ledAvD) ; |
sepp_nepp | 8:392cfdbded1e | 67 | SetColor(ORANGE, ledArD) ; |
sepp_nepp | 8:392cfdbded1e | 68 | StartBlink(float(speed)/4) ;} |
sepp_nepp | 8:392cfdbded1e | 69 | else { LEDsOff(); } |
sepp_nepp | 8:392cfdbded1e | 70 | } |
sepp_nepp | 8:392cfdbded1e | 71 | |
sepp_nepp | 8:392cfdbded1e | 72 | void LEDs_Car::LEDCligL(int speed) { |
sepp_nepp | 8:392cfdbded1e | 73 | if ( (speed>0) && (speed<4) ) { |
sepp_nepp | 8:392cfdbded1e | 74 | SetColor(ORANGE, ledAvG) ; |
sepp_nepp | 8:392cfdbded1e | 75 | SetColor(ORANGE, ledArG) ; |
sepp_nepp | 8:392cfdbded1e | 76 | StartBlink(float(speed)/4) ;} |
sepp_nepp | 8:392cfdbded1e | 77 | else { LEDsOff(); } |
sepp_nepp | 8:392cfdbded1e | 78 | } |
sepp_nepp | 8:392cfdbded1e | 79 | |
sepp_nepp | 8:392cfdbded1e | 80 | void LEDs_Car::LEDAnim(int speed) { |
sepp_nepp | 8:392cfdbded1e | 81 | if ( (speed>0) && (speed<4) ) |
sepp_nepp | 8:392cfdbded1e | 82 | { LEDsRainbowMove(float(speed)/4); } |
sepp_nepp | 8:392cfdbded1e | 83 | else { LEDsOff(); } |
sepp_nepp | 8:392cfdbded1e | 84 | } |
sepp_nepp | 8:392cfdbded1e | 85 |