Witam.Na początku chciałbym powiedzieć że jestem początkujący w arduino jak i również w bibliotece FastLed.h.Mam zmienną switchonoff2 którego można po dotknięciu przełaczyć on/off działający na ttp223.Na początku miałem taki plan: jeśli switchonoff2== HIGH to skaluj jasność z 255 do zera i jeśli LOW to odwrotnie.To mi się udało zrobić.Później chciałem podpiąć pod if switchonoff2 ==HIGH zmienną onoff=1; i adekwantnie do LOW na odwrót.Napisałem if który by to sprawdzał i w tym if umieściłem troche zaporzyczony kod od innego projektu.(troche przerobiłem).Problem tkwi w tym że jak włączam switchonoff2 to drugi pasek się uruchamia tylko problem w tym,że ten kod powoduje jakieś komplikacje i dioda odświerza się tak jakby chciała a nie mogła.Automatycznie jak włącze diode to i druga odświerza sie tak z oporem jakby z delayem sporym.Nawet jak usunołem delay (10); problem nie znikną.Nagrałem film żeby to zilustrować:https://youtu.be/VYqGFTo82N4
Plus kod:
Plus kod:
Kod:
#include "FastLED.h"
#define NUM_LEDS 2 // liczba led 1 paska
CRGB leds[NUM_LEDS]; //tablica 1 paska
#define PIN 7 // data ws2812b 1 paska
#define COLOR_ORDER GRB
int i = 255;
int j = 255;
int switchonnoff1 = 3; //switch włącz/wyłącz 1
int switchonnoff2 = 4; //switch włącz/wyłącz 2
//Animacja 2 paska led{
#define NUM_LEDSs 56
CRGBArray<NUM_LEDSs> ledss; //tablica 2 paska
uint8_t hue[NUM_LEDSs];
#define PINa 6 //data2 paska
int onoff = 0;
//}Animacja 2 paska led
void setup()
{
FastLED.addLeds<WS2812B, PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
//Animacja 2 paska led{
FastLED.addLeds<NEOPIXEL, PINa>(ledss, NUM_LEDSs);
for (int i = 0; i < NUM_LEDSs; i++) {
hue[i] = 255 / NUM_LEDSs * i;
}
//}Animacja 2 paska led
}
void loop()
{
leds[1].setRGB(255, 0, 255);
leds[1].fadeLightBy(j);
leds[0].setRGB(255, 255, 0);
leds[0].fadeLightBy(i);
if (digitalRead(switchonnoff1) == LOW) {
if (i < 255) {
i = i + 3;
}
}
if (digitalRead(switchonnoff1) == HIGH) {
if (i > 0) {
i = i - 3;
}
}
if (digitalRead(switchonnoff2) == LOW) {
onoff = 0;
if (j < 255) {
j = j + 3;
}
}
if (digitalRead(switchonnoff2) == HIGH) {
onoff = 1;
if (j > 0) {
j = j - 3;
}
}
FastLED.show();
//Animacja 2 paska led{
if (onoff == 1) {
for (int i = 0; i < NUM_LEDSs; i++) {
ledss[i] = CHSV(hue[i]++, 255, 255);
FastLED.show();
}
//}Animacja 2 paska led
}
}