Hirdetés

Új hozzászólás Aktív témák

  • Sanki

    addikt

    Sziasztok.
    Adott az alábbi kód, melynek lényege az lenne, hogyha a D0 pin-en nincs jel, akkor folyamatosan "25-ös" erősségen világít a led, ha pedig van jel, akkor fel kell erősödnie a fényerőnek "150-re", ha ez a jel megszűnik, akkor pedig visszahalványul "25-re". (Program indulásakor nem fix melyik eset van, hogy van e jel vagy nincs.)

    Na addig eljutottam, hogy a jel jelenlétének/hiányának az állapotára nő/csökken a fényerő, viszont ez folyamatosan történik és nem áll meg a végén, visszaugrik a kezdeti állapotra (és vagy 150-ről csökken 25-re folyamatosan ciklusban, vagy fordítva, növekszik a fényerő 25-ről 150-re folyamatosan).

    Szerintetek mi lehet a probléma?


    #include "FastLED.h" 
    #define NUM_LEDB1 3
    #define NUM_LEDB2 3
    #define LED_TYPE WS2812
    #define COLOR_ORDER GBR
    CRGB leds1[NUM_LEDB1];
    CRGB leds2[NUM_LEDB2];
    #define LEDB1 D2
    #define LEDB2 D8
    #define inPin D0  
    #define BRIGHTNESS25 25
    #define BRIGHTNESS150 150
     
    void setup() {
      pinMode(inPin, INPUT_PULLUP);
      pinMode(LEDB1, OUTPUT);
      pinMode(LEDB2, OUTPUT);
      FastLED.addLeds<LED_TYPE, LEDB1, COLOR_ORDER>(leds1, NUM_LEDB1).setCorrection(TypicalLEDStrip);
      FastLED.addLeds<LED_TYPE, LEDB2, COLOR_ORDER>(leds2, NUM_LEDB2).setCorrection(TypicalLEDStrip);  
    //  FastLED.setBrightness(25);
      for (int i = 0; i < NUM_LEDB1; i++ ) {
        leds1[i] = CRGB::White;
      }
      for (int i = 0; i < NUM_LEDB2; i++ ) {
        leds2[i] = CRGB::White;
      }  
    //  FastLED.clear();
    //  FastLED.show();
    }
    void loop() {
    if (digitalRead(inPin) == LOW) {  
      fadedown25();
    }
    if (digitalRead(inPin) == HIGH) {
      fadeup150();
      }
    }
    // ------------------------------------
    void fadeup150()
    {
      for (int j = BRIGHTNESS25; j < BRIGHTNESS150; j ++) {
       FastLED.setBrightness(j);
       FastLED.show();
       delay(10);   
    }
    }
    // ------------------------------------
    void fadedown25()
    {
      for (int j = BRIGHTNESS150; j >= BRIGHTNESS25; j --) { 
      FastLED.setBrightness(j);
      FastLED.show();
      delay(10);
      }
    }

Új hozzászólás Aktív témák