My Version of The LED_WS2812 Library

Dependencies:   WS2812 PixelArray

Fork of LED_WS2812 by CreaLab

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?

UserRevisionLine numberNew 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