Première version du code du minuteur et schéma d'implantation.
This commit is contained in:
115
minuteur/ledRGB.h
Normal file
115
minuteur/ledRGB.h
Normal file
@@ -0,0 +1,115 @@
|
||||
/*-------------------------------------------------------------------
|
||||
Project: InsoL@b
|
||||
Author : user@B0 mail@nowhere.void
|
||||
File : led_RGB.h 2026-04-23
|
||||
This work is copyrighted under CERN Open Hardware Licence Version 2.
|
||||
----------------------------------------------------------------------
|
||||
Aqua #00FFFF 0% 100% 100% 180° 100% 50% 100% 100% 11 (high cyan); cyan
|
||||
Teal #008080 0% 50% 50% 180° 100% 25% 100% 50% 03 (low cyan)
|
||||
Blue #0000FF 0% 0% 100% 240° 100% 50% 100% 100% 09 (high blue)
|
||||
Navy #000080 0% 0% 50% 240° 100% 25% 100% 50% 01 (low blue)
|
||||
Fuchsia #FF00FF 100% 0% 100% 300° 100% 50% 100% 100% 13 (high magenta); magenta
|
||||
Purple #800080 50% 0% 50% 300° 100% 25% 100% 50% 05 (low magenta)
|
||||
---------------------------------------------------------------------*/
|
||||
#ifndef _INSOLAB_LEDRGB_H_
|
||||
#define _INSOLAB_LEDRGB_H_
|
||||
#include <SPI.h>
|
||||
#include <Adafruit_NeoPixel.h>
|
||||
#define PIN 16 // RGB LED (WS2812) clone of Waveshare rp2040-zero.
|
||||
#define NUMPIXELS 1
|
||||
Adafruit_NeoPixel pixels(
|
||||
NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
|
||||
enum {NONE, RED, YELLOW, ORANGE, GREEN, BLUE, PINK, FUCHS, BLANK};
|
||||
int ledColor = NONE;
|
||||
int ledMax=2;
|
||||
|
||||
void ledInit() {
|
||||
pixels.begin();
|
||||
pixels.setPixelColor(0, pixels.Color(0, 0, 0));
|
||||
pixels.show();
|
||||
delay(100);
|
||||
}
|
||||
void ledRGB(int rgb) {
|
||||
switch (rgb) {
|
||||
case RED: pixels.setPixelColor(0, pixels.Color(ledMax, 0, 0));
|
||||
break;
|
||||
case YELLOW: pixels.setPixelColor(0, pixels.Color(ledMax, ledMax, 0));
|
||||
break;
|
||||
case ORANGE: pixels.setPixelColor(0, pixels.Color(ledMax, 1, 0));
|
||||
break;
|
||||
case GREEN: pixels.setPixelColor(0, pixels.Color(0, ledMax, 0));
|
||||
break;
|
||||
case BLUE: pixels.setPixelColor(0, pixels.Color(0, ledMax, ledMax)); // AQUA
|
||||
break;
|
||||
case PINK: pixels.setPixelColor(0, pixels.Color(1,0,3)); // (1,0,2));
|
||||
break; // pink color (255, 192, 203) deep pink (255, 20, 147)
|
||||
case FUCHS: pixels.setPixelColor(0, pixels.Color(ledMax,0,ledMax)); // FUCHSIA
|
||||
break;
|
||||
case BLANK: pixels.setPixelColor(0, pixels.Color(1, 1, 1));
|
||||
break;
|
||||
case NONE: pixels.setPixelColor(0, pixels.Color(0, 0, 0));
|
||||
break;
|
||||
}
|
||||
pixels.show(); delay(100);
|
||||
}
|
||||
void ledScale(int rgb, int first, int aim, int inc, int period) {
|
||||
int i = first;
|
||||
do {
|
||||
i = i + inc;
|
||||
switch (rgb) {
|
||||
case RED:
|
||||
pixels.setPixelColor(0, pixels.Color(i, 0, 0));
|
||||
break;
|
||||
case GREEN:
|
||||
pixels.setPixelColor(0, pixels.Color(0, i, 0));
|
||||
break;
|
||||
case BLUE:
|
||||
pixels.setPixelColor(0, pixels.Color(0, 0, i));
|
||||
break;
|
||||
case BLANK:
|
||||
pixels.setPixelColor(0, pixels.Color(i, i, i));
|
||||
break;
|
||||
}
|
||||
pixels.show(); delay(period);
|
||||
} while (i != aim );
|
||||
}
|
||||
|
||||
|
||||
uint16_t hue = 0; uint8_t sat = 0, val = 0;
|
||||
int32_t couleur = 0;
|
||||
|
||||
void ledTest() {
|
||||
int period=12;
|
||||
switch (ledColor) {
|
||||
case NONE:
|
||||
for (val = 10; val < 50; val += 10) {
|
||||
for (sat = 10; sat < 50; sat += 10) {
|
||||
couleur = pixels.ColorHSV(765, sat, val);
|
||||
pixels.setPixelColor(0, couleur);
|
||||
pixels.show();
|
||||
delay(6);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case RED:
|
||||
ledScale(RED, 1, 200, 1, period);
|
||||
ledScale(RED, 200, 1, -1, period);
|
||||
break;
|
||||
case GREEN:
|
||||
ledScale(GREEN, 1, 200, 1, period);
|
||||
ledScale(GREEN, 200, 1, -1, period);
|
||||
break;
|
||||
case BLUE:
|
||||
ledScale(BLUE, 1, 200, 1, period);
|
||||
ledScale(BLUE, 200, 1, -1, period);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
ledColor++;
|
||||
if (ledColor == 4) {
|
||||
ledColor = NONE;
|
||||
}
|
||||
delay(1000);
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user