Hirdetés

Keresés

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

  • Sanki

    addikt

    válasz weiss #16847 üzenetére

    Upsz, akkor ezen példa alapján kiegészítettem: State Change Detection (Edge Detection) for pushbuttons

    Most menet közben jó, még a starton kell csiszolni, ha "HIGH" D0-val kapcsol be, akkor ugyanolyan fadedown-nal megy le a 25-ös értékre.
    Ha LOW, akkor viszont fix 150-en kapcsol be.

    #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
    int brightState = 0;
    int lastbrightState = 0;
     
    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.clear();
      for (int i = 0; i < NUM_LEDB1; i++ ) {
        leds1[i] = CRGB::White; }
      for (int i = 0; i < NUM_LEDB2; i++ ) {
        leds2[i] = CRGB::White; }  
      if (digitalRead(inPin) == HIGH) {  
      FastLED.setBrightness(25);
      FastLED.show(); }
      else {  
      FastLED.setBrightness(150);
      FastLED.show(); }
    }
    void loop() {
      brightState = digitalRead(inPin);
      if (brightState != lastbrightState) {
        if (brightState == HIGH) {  
         fadedown25();
          }
      else {
         fadeup150();
          }
     }
    lastbrightState = brightState;
    }
    // ------------------------------------
    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