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ů
16.2.2017 v 17:53
#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);
}
}