Zabawa z neo pixels
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user