Erledigt : Schaltung für Fernbedienung

Hallo ich habe noch einmal eine Frage zu der IR Fernbedienung. Also ich habe keine Probleme normale LED`s an und aus zuschalten. Doch jetzt habe ich versucht ein stück Strip von den WS2812B Strips zu schalten, so das ich mit jeder taste einen Pixel an schalte und mit der 0 Taste alle aus. Könnte einmal evll jemand über das Programm schauen ob ich da einen Fehler habe :slight_smile: ich finde nichts, also die einzel LED geht mit digitalWrite an und aus zu schalten nur an den Strip tut sich nicht.

#include <FastSPI_LED2.h>
#include <IRremote.h>
#define NUM_LEDS 5
#define DATA_PIN A5

CRGB leds[NUM_LEDS];

int RECV_PIN = 11; //define input pin on Arduino
int ledpin = 13;
IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()

{

Serial.begin(9600);

FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);
for (int i=0;i < NUM_LEDS; i++) {leds[i] = CHSV(255,0,0);}

irrecv.enableIRIn(); // Start the receiver
pinMode(ledpin,OUTPUT);
}

void loop() {

if (irrecv.decode(&results)) {
  
Serial.println(results.value,HEX);

if (results.value == 0xFF6897) //Taste 1
{
  digitalWrite(ledpin,HIGH);
leds[0] = CHSV(100,255,60);
}

if (results.value == 0xFF9867) //Taste 2
{
leds[1] = CHSV(100,255,60);
}
if (results.value == 0xFFB04F) //Taste 3
{
leds[2] = CHSV(100,255,60);
}
if (results.value == 0xFF30Cf) //Taste 4
{
leds[3] = CHSV(100,255,60);
}
if (results.value == 0xFF18F7) //Taste 5
{
leds[4] = CHSV(100,255,60);
}
/*
if (results.value == 0xFF7A85) //Taste 6
if (results.value == 0xFF10EF) //Taste 7
if (results.value == 0xFF38C7) //Taste 8
if (results.value == 0xFF5AA5) //Taste 9
*/
if (results.value == 0xFF4AB5) //Taste 0 für Aus
{
  
 digitalWrite(ledpin,LOW);
for (int i=0;i < NUM_LEDS; i++) {leds[i] = CHSV(0,0,0);}
}


irrecv.resume(); // Receive the next value

}

}

Soweit alles richtig, du hast nur eine entscheidene Zeile am Ende des Codes vergessen :wink: Entweder du schaust dir mal deine Ws2812 Sketche an, oder aber du fügst in deinem jetztigen Sketch einfach

FastLED.show()

ein :wink:

Kenne die Lib nicht, aber was ist das?

if (irrecv.decode(&results))

Ist die If Abfrage nur erfüllt, wenn eine Taste gedrückt wurde/wird? Wenn ja, mach am Ende der geschweiten Klammen eine Zeile drüber das FastLED.show(). Das muss nicht in jedem Loop Vorgang erneuert werden, wenn Werte nach dem Tastendruck bestehen bleiben sollen.

Lach, jetzt wo du es schreibst, fällt es mir wie Schuppen aus den Haaren. Danke, ich habe scon gedacht ich spinne

Super jetzt klappt alles .