Last active
August 29, 2015 14:21
-
-
Save xseignard/e2dda826e8825f64f14c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include "LPD8806.h" | |
| #include "SPI.h" | |
| // passer à 0 pour virer le debug | |
| #define DEBUG 1 | |
| // nb de leds pour un tube | |
| // 144 leds par tube, leds adressable 3 par 3, et 3 leds pour un RGB, donc 144/9 = 16 leds RGB en equivalence | |
| int nLEDs = 16; | |
| // pin de donnée et de clock | |
| int dataPin = 12; | |
| int clockPin = 13; | |
| // variables pour traitement série | |
| String fromMax; | |
| char charBuf[50]; | |
| // constructeur | |
| LPD8806 strip = LPD8806(nLEDs, dataPin, clockPin); | |
| // couleurs : G,R,B de 0 à 127 | |
| //uint8_t color = strip.Color(G,R,B); | |
| void setup() { | |
| Serial.begin(9600); | |
| // démarre le strip | |
| strip.begin(); | |
| // met à jour les leds du strip | |
| strip.show(); | |
| } | |
| void loop() { | |
| // permet d'allumer un pixel grace à un message du type INDEX,R,G,B# | |
| // 1,127,127,127# allumera le pixel d'index 1 avec un r,g et b à fond | |
| // 1,0,0,0# éteindra le pixel d'index 1 | |
| // 10,0,127,0# allumera le pixel d'index 10 en vert | |
| while (Serial.available() > 0) { | |
| char recieved = Serial.read(); | |
| // si le caractère recu est le caractère de stop | |
| if (recieved == '#') { | |
| // convertir le message en tableau de char afin de la traiter | |
| fromMax.toCharArray(charBuf, 50); | |
| // récupérer les données | |
| int pixelIndex = atoi(strtok(charBuf, ",")); | |
| int r = atoi(strtok(NULL, ",")); | |
| int g = atoi(strtok(NULL, ",")); | |
| int b = atoi(strtok(NULL, ",")); | |
| // afficher sur le port série les données brutes et traitées | |
| if (DEBUG) { | |
| Serial.print("Message reçu: "); | |
| Serial.println(fromMax); | |
| Serial.print("Index du pixel: "); | |
| Serial.println(pixelIndex); | |
| Serial.print("R: "); | |
| Serial.println(r); | |
| Serial.print("G: "); | |
| Serial.println(g); | |
| Serial.print("B: "); | |
| Serial.println(b); | |
| } | |
| // allumer le pixel | |
| strip.setPixelColor(pixelIndex, strip.Color(g, r, b)); | |
| // remettre à zéro la chaine servant à stocker les données série | |
| fromMax = ""; | |
| } | |
| // si ce n'est pas la caractère de stop, continuer à concaténer | |
| else { | |
| fromMax += recieved; | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment