neopixel button

Nedaří se vám s projektem a nenašli jste vhodné místo, kde se zeptat? Napište sem.
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Odpovědět
Sniper
Příspěvky: 3
Registrován: 29 říj 2019, 14:06
Reputation: 0

neopixel button

Příspěvek od Sniper » 17 lis 2019, 21:10

Ahojte. Som nováčik s arduino a potreboval by som pomôcť s projektom.. Potreboval by som dostať 2 tlačitka do projektu tak aby som tlačítkom1 spustil case1 a tlačítkom2 case 2..

Tu je projekt ale zatial funguje s jedným tlačítkom..

Kód: Vybrat vše

#include <Adafruit_NeoPixel.h>

#define BUTTON_PIN   2   
#define PIXEL_PIN    9   
#define PIXEL_COUNT 34 
int brightness = 255;  

Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800);

bool oldState = HIGH;
int showType = 0;

void setup() {
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  strip.begin();
  strip.setBrightness(brightness);
  strip.show();
}

void loop() {
  bool newState = digitalRead(BUTTON_PIN);
  if (newState == LOW && oldState == HIGH) {
    delay(20);
    newState = digitalRead(BUTTON_PIN);
    if (newState == LOW) {
      showType++;
      if (showType > 2)
        showType=0;
      startShow(showType);
    }
  }
  oldState = newState;
}

void startShow(int i) {
  switch(i){
    case 0: colorWipe(strip.Color(0, 0, 0), 40);
            break;
    case 1: colorWipe(strip.Color(225, 255, 255), 40);
            break;
    case 2: colorWipe(strip.Color(255, 0, 0), 40);
            break;

  }
}
void colorWipe(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i<(strip.numPixels()/2); i++) {
    strip.setPixelColor((strip.numPixels()/2-1)-i, c);
    strip.setPixelColor((((strip.numPixels()/2)+i)), c);
    strip.show();
    delay(wait);
  } 
}

kiRRow
Příspěvky: 173
Registrován: 07 kvě 2019, 07:03
Reputation: 2
Bydliště: Opava

Re: neopixel button

Příspěvek od kiRRow » 18 lis 2019, 02:20

No nejprve program rozšíříš o ošetření druhého tlačítka. Potom budeš po stisku jednoho volat startShow(1); a po stisku druhého startShow(2);. Vypnutí provedeš zavoláním startShow(0);

Sniper
Příspěvky: 3
Registrován: 29 říj 2019, 14:06
Reputation: 0

Re: neopixel button

Příspěvek od Sniper » 18 lis 2019, 13:35

dakujem a mohol by si mi poslat jak by mal vypadat ten kod cely?

gilhad
Příspěvky: 395
Registrován: 07 bře 2018, 11:22
Reputation: 5

Re: neopixel button

Příspěvek od gilhad » 18 lis 2019, 15:16


Sniper
Příspěvky: 3
Registrován: 29 říj 2019, 14:06
Reputation: 0

Re: neopixel button

Příspěvek od Sniper » 20 lis 2019, 20:25

tak nic teda.. dakujem za pomoc :|

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host