Close

Odpověď na: adresovatelný led pásek, změna efektů

Úvodní stránka Fórum Vaše projekty Arduino adresovatelný led pásek, změna efektů Odpověď na: adresovatelný led pásek, změna efektů

#10508
Vojtěch Vosáhlo
Účastník

Zkuste něco takového jako zjednodušený kód. Mělo by to blikat s prvním pixelem pokud zmáčknete CH- nebo pošlete 1. Pokud přijde něco jiného, smyčka by se měla přerušit.

#include <Adafruit_NeoPixel.h>
#include"IRremote2.h"

#define pinIN 4
#define PIN   6
// Parametr 1 = počet pixelů (LED diod) na pásek
// Parametr 2 = číslo PINu Arduina
// Parametr 3 = pixel type flags, add together as needed:
// NEO_KHZ800  800 KHz kmitočet pro pásky s WS2812 LED diodami)
// NEO_GRB  Pixely jsou zasílány ve formátu GRB 
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(36, 6, NEO_GRB + NEO_KHZ800);
IRrecv dalkoveOvl(pinIN);
decode_results vysledek;
char pozice;

void setup() {
  pixels.begin();
  Serial.begin(9600);
  pixels.show();
  int delayval = 300;
  delay(250);
  dalkoveOvl.enableIRIn();
}

void loop()
{
  if (dalkoveOvl.decode(&vysledek)) 
  {
    detekceKlaves();
    dalkoveOvl.resume();
  } 
  if (Serial.available() > 0)
  {
  pozice = Serial.read();
    if(pozice == 1) blikejLed();
  }
}

void detekceKlaves() {
  if(vysledek.value == 0xFFA25D) {

      Serial.println("Stisknuto CH-");
      blikejLed();

  // pauza pro přehlednější výpis
  delay(500);
}

void blikejLed(){
 dalkoveOvl.resume();

  while(!(Serial.available() || dalkoveOvl.decode(&vysledek))){

    pixels.setPixelColor(1, pixels.Color(255,255,255));
    pixels.show();
    delay(1000);
    pixels.setPixelColor(1, pixels.Color(0,0,0));
    pixels.show();
    delay(1000);

  }
 
}