Zabawa z neo pixels

This commit is contained in:
sieja
2025-06-23 21:19:07 +02:00
parent 1ef8cff819
commit 925fd76239

View File

@@ -10,6 +10,9 @@
#define LED_PIN 5
#define LED_COUNT 9
const uint8_t ledMap[LED_COUNT] = {3, 0, 1, 8, 2, 5, 4, 7, 6};
//2DO:
//pomiary i dobor rezystorów dla ledów w zbiorniku
@@ -124,6 +127,45 @@ void IRAM_ATTR hygrostatButtonFcn() {
}
void rainbowCycle(uint8_t wait) {
uint16_t i, j;
for (j = 0; j < 256 * 3; j++) { // mniej cykli niż 5 — szybciej wraca
for (i = 0; i < LED_COUNT; i++) {
uint8_t physIndex = ledMap[i]; // mapowanie pozycji logicznej na fizyczną
pixels.setPixelColor(physIndex, Wheel((i * 256 / LED_COUNT + j) & 255));
}
pixels.show();
delay(wait);
}
}
uint32_t Wheel(byte pos) {
pos = 255 - pos;
uint8_t r, g, b;
if (pos < 85) {
r = 255 - pos * 3;
g = 0;
b = pos * 3;
} else if (pos < 170) {
pos -= 85;
r = 0;
g = pos * 3;
b = 255 - pos * 3;
} else {
pos -= 170;
r = pos * 3;
g = 255 - pos * 3;
b = 0;
}
// Ogranicz jasność do 30%
r = r * 30 / 100;
g = g * 30 / 100;
b = b * 30 / 100;
return pixels.Color(r, g, b);
}
void setup() {
Serial.begin(9600);
if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
@@ -234,8 +276,18 @@ void loop() {
// #################################################################
pixels.clear();
pixels.setPixelColor(ADR_NEOPXL_SPEED_2, pixels.Color(0, 50, 0));
pixels.setPixelColor(ADR_NEOPXL_SPEED_1, pixels.Color(50, 0, 0));
// pixels.setPixelColor(ADR_NEOPXL_SPEED_2, pixels.Color(0, 50, 0));
// pixels.setPixelColor(ADR_NEOPXL_SPEED_1, pixels.Color(50, 0, 0));
// pixels.setPixelColor(2, pixels.Color(50, 0, 0));
// pixels.setPixelColor(3, pixels.Color(50, 0, 0));
// pixels.setPixelColor(4, pixels.Color(50, 0, 0));
// pixels.setPixelColor(5, pixels.Color(50, 0, 0));
// pixels.setPixelColor(6, pixels.Color(50, 0, 0));
// pixels.setPixelColor(7, pixels.Color(50, 0, 0));
// pixels.setPixelColor(8, pixels.Color(50, 0, 0));
rainbowCycle(10); // im mniejsza liczba, tym szybsza animacja
// pixels.setPixelColor(ADR_NEOPXL_SPEED_1, pixels.Color(neoPixelRed*dimmVal*neoPixelSwitch*neoPixelSpeed_1, neoPixelGreen*dimmVal*neoPixelSwitch*neoPixelSpeed_1, neoPixelBlue*dimmVal*neoPixelSwitch*neoPixelSpeed_1));
@@ -249,8 +301,7 @@ void loop() {
// pixels.setPixelColor(ADR_NEOPXL_WATERLVL, pixels.Color(neoPixelRed*dimmVal*neoPixelSwitch*neoPixelWaterLvl, neoPixelGreen*dimmVal*neoPixelSwitch*neoPixelWaterLvl, neoPixelBlue*dimmVal*neoPixelSwitch*neoPixelWaterLvl));
// pixels.setPixelColor(ADR_NEOPXL_TANK, pixels.Color(neoPixelRed*dimmVal*neoPixelSwitch*neoPixelTank, neoPixelGreen*dimmVal*neoPixelSwitch*neoPixelTank, neoPixelBlue*dimmVal*neoPixelSwitch*neoPixelTank));
pixels.show();
// pixels.show();
if (digitalRead(BTN_RST) == HIGH) {