From e30902a5cffb1937658533fcfead15a09562c039 Mon Sep 17 00:00:00 2001 From: Clement Date: Fri, 20 Oct 2023 20:42:07 +0200 Subject: [PATCH] feat led lib --- lib/LedLib/include/LedLib.h | 30 +++++++++++++++ lib/LedLib/scr/LedLib.cpp | 77 +++++++++++++++++++++++++++++++++++++ 2 files changed, 107 insertions(+) create mode 100644 lib/LedLib/include/LedLib.h create mode 100644 lib/LedLib/scr/LedLib.cpp diff --git a/lib/LedLib/include/LedLib.h b/lib/LedLib/include/LedLib.h new file mode 100644 index 0000000..3d13b94 --- /dev/null +++ b/lib/LedLib/include/LedLib.h @@ -0,0 +1,30 @@ +#ifndef NEOLED_H +#define NEOLED_H 0 + +#include + +// Classe LedLib : Gestion de l'allumage des LEDs en fonction du Rotary +// Class LedLib : Manages LEDs colors according to the Rotary +class LedLib{ +public : + LedLib(int pixelCount, int pixelPin, int bright); + + // Fonction pour allumer correctement les LEDs en fonction du Rotary + // Function to manage LEDs colors according to the Rotary + void actLed(int nb); + + // Fonction qui renvoie le nombre de LEDs allumées + // Function that returns the number of LEDs lit + int getledNB(); + + void okBlink(); + +private : + // Le nombre de LEDs allumées + // Amount of LEDs lit + int ledNb; + + Adafruit_NeoPixel* strip; +}; + +#endif diff --git a/lib/LedLib/scr/LedLib.cpp b/lib/LedLib/scr/LedLib.cpp new file mode 100644 index 0000000..05185b6 --- /dev/null +++ b/lib/LedLib/scr/LedLib.cpp @@ -0,0 +1,77 @@ +#include "../include/LedLib.h" + +// Initialisation +// Initialization +LedLib::LedLib(int pixelCount, int pixelPin, int bright){ + this->ledNb = 0; + this->strip = new Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800); + + this->strip->begin(); + this->strip->show(); + this->strip->setBrightness(bright); +} + +// Fonction pour allumer correctement les LEDs en fonction du Rotary +// Function to manage LEDs colors according to the Rotary +void LedLib::actLed(int nb){ + this->ledNb = nb; + + // On éteint tout + // We shut everything up + this->strip->clear(); + + // Allumer 0 LED ? Inutile + // Useless to light up 0 LED + if (nb != 0) { + + // Boucle dans les LEDs + // Loop in LEDs + for (int i = 0; i < nb+1; i++) { + + // Une LED sur deux est blanche : heure entière, l'autre rouge pour 30m + // One LED out of two is white: whole hour, the other red for 30m + if (i%2 == 0) { + this->strip->setPixelColor(i-1, 255, 255, 255); + }else{ + this->strip->setPixelColor(i-1, 255, 0, 0); + } + } + } + + // Maintenant on allume + // Then light everything up + this->strip->show(); +} + +// Fonction qui renvoie le nombre de LEDs allumées +// Function that returns the number of LEDs lit +int LedLib::getledNB(){ + return this->ledNb; +} + +void LedLib::okBlink(){ + int tempR; + int tempV; + int tempB; + + for (int i = 0; i < 3*2; i++) { + if(i%2 == 0){ + tempR = 0; + tempV = 0; + tempB = 0; + + }else{ + tempR = 75; + tempV = 181; + tempB = 67; + } + + for (int j = 0; j < 24; j++) { + // On fait clignoter les LEDs pour confirmer + // We make the LEDs blink to confirm + this->strip->setPixelColor(j-1, tempR, tempV, tempB); + } + + this->strip->show(); + } +}