Mit Ferbedienung 10 LED Ein Ausschalten

Hallo

was will Ich: mit FB 10 LED Standart Weiss ein.-ausschalten.
zb. Taste 1 :alle 10 LED schalten mit verzögerung hintereinender EIN
bei wiedeholtem betätigen der Taste1 : alle 10 LED schalten mit verzögerung hintereinender Aus

Taste 2 : 1 LED schalten EIN
bei wiedeholtem betätigen der Taste2 : 1 LED schalten AUS

Vorhandene Bauteile:
SainSmart Mega 2560 R3 Starter Kit C-SB-A-Kit
FB aus Kit
SainSmart MEGA2560 R3 wird nicht verwendet
gearbeitet wird mit Arduino UNO

mein Problem: muss x mal die taste betätigen bis sich was einschaltet.(nur bei beigefügten Sketch)
Kann bitte jemand den Sketch anschauen was ich falsch gemacht habe und ob das überhaupt so funktionieren kann.

Danke Herbert

//  Infrarot-Steuerung
//  #include <IRremote.h>  <--  IRremote.h im libraries folder
//  #include "IRremote.h"  <--  IRremote.h im sketch folder

#include "IRremote.h"
// Pin mit Makierung 3, 5, 6, 9, 10, 11,
int RECV_PIN = 13;
int EG = 11;
int EG1 = 10;
int DG = 9;
int DG1 = 6;
int ST = 5;
int ST1 = 3;
int FEU = 7;
int Frei1 = 4;
//Zeitmanegment-----------------------------------------
int ze = 2500; //=delay / Zeit bei alle Einschalten 2500
int za = 2500; //=delay / Zeit bei alle Ausschalten
int zd = 200; //=delay / Zeit zwischen Ein.- und Ausschalteten bei FBtastendruck
//-----------------------------------------------------

IRrecv irrecv(RECV_PIN);
decode_results results;

//------------------------------------------------------
char programm = 'x';
//------------------------------------------------------


void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver

  pinMode(EG, OUTPUT);
  pinMode(EG1, OUTPUT);
  pinMode(DG, OUTPUT);
  pinMode(DG1, OUTPUT);
  pinMode(ST, OUTPUT);
  pinMode(ST1, OUTPUT);
  pinMode(FEU, OUTPUT);
}

//------------------------------------------------------

void loop() {
  infrarotWert();
  if (programm == 'e') Ende();
  //  if (programm == 'p') programmPlus();
  //  if (programm == 'm') programmMinus();
  if (programm == '0') programm0();
  if (programm == '1') programm1();
  if (programm == '2') programm2();
  if (programm == '3') programm3();
  if (programm == '4') programm4();
  if (programm == '5') programm5();
  if (programm == '6') programm6();
  if (programm == '7') programm7();
//  if (programm == '8') programm8();
//  if (programm == '9') programm9();
  if (programm == 'f') programmFeuer();
}

//------------------------------------------------------

//alles ein ohne pause------------------------------------------------------
void programm0() {

  if (irrecv.decode(&results)) {
    Serial.println(results.value, DEC);
//    if (programm == '0')  {
    if (results.value == 16738455) {
      digitalWrite(EG, HIGH);
      digitalWrite(EG1, HIGH);
      digitalWrite(DG, HIGH);
      digitalWrite(DG1, HIGH);
      digitalWrite(DG, HIGH);
      digitalWrite(ST, HIGH);
      digitalWrite(ST1, HIGH);
      digitalWrite(FEU, HIGH);

      delay(zd);

    } else {

      digitalWrite(EG, LOW);
      digitalWrite(EG, LOW);
      digitalWrite(EG1, LOW);
      digitalWrite(DG, LOW);
      digitalWrite(DG1, LOW);
      digitalWrite(DG, LOW);
      digitalWrite(ST, LOW);
      digitalWrite(ST1, LOW);
      digitalWrite(FEU, LOW);
    }
    irrecv.resume();
  }
}
//Ende------------------------------------------------------

//alles Ein mit Pause - alles aus mit Pause---------------------------------------------------------------
void programm1() {

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

    if (results.value == 16724175) {
      digitalWrite(EG, HIGH);
      delay(ze);
      digitalWrite(EG1, HIGH);
      delay(ze);
      digitalWrite(DG, HIGH);
      delay(ze);
      digitalWrite(DG1, HIGH);
      delay(ze);
      digitalWrite(DG, HIGH);
      delay(ze);
      digitalWrite(ST, HIGH);
      delay(ze);
      digitalWrite(ST1, HIGH);
      delay(ze);
      digitalWrite(FEU, HIGH);

    } else {
      digitalWrite(EG, LOW);
      delay(za);
      digitalWrite(EG1, LOW);
      delay(za);
      digitalWrite(DG, LOW);
      delay(za);
      digitalWrite(DG1, LOW);
      delay(za);
      digitalWrite(DG, LOW);
      delay(za);
      digitalWrite(ST, LOW);
      delay(za);
      digitalWrite(ST1, LOW);
      delay(za);
      digitalWrite(FEU, LOW);
    }
    irrecv.resume();
  }
}
//Ende------------------------------------------------------

//alles Aus mit pause---------------------------------------------------------------
void Ende() {

  digitalWrite(DG1, LOW);
  delay(za);
  digitalWrite(DG, LOW);
  delay(za);
  digitalWrite(EG1, LOW);
  delay(za);
  digitalWrite(EG, LOW);
  delay(za);
  digitalWrite(ST1, LOW);
  delay(za);
  digitalWrite(ST, LOW);
  delay(ze);
  digitalWrite(FEU, LOW);
}
//Ende------------------------------------------------------

//EG Ein/Aus------------------------------------------------------
void programm2() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, DEC);

    if (results.value == 16718055) {
      digitalWrite(EG, HIGH);

      delay(zd);

    } else {
      digitalWrite(EG, LOW);
    }
    irrecv.resume();
  }
}
//Ende------------------------------------------------------

//EG1 Ein/Aus------------------------------------------------------
void programm3() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, DEC);

    if (results.value == 16743045) {
      digitalWrite(EG1, HIGH);

      delay(zd);

    } else {
      digitalWrite(EG1, LOW);
    }
    irrecv.resume();
  }
}
//Ende------------------------------------------------------

//DG Ein/Aus------------------------------------------------------
void programm4() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, DEC);

    if (results.value == 16716015) {
      digitalWrite(DG, HIGH);

      delay(zd);

    } else {
      digitalWrite(DG, LOW);
    }
    irrecv.resume();
  }
}
//Ende------------------------------------------------------

//DG1 Ein/Aus------------------------------------------------------
void programm5() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, DEC);

    if (results.value == 16726215) {
      digitalWrite(DG1, HIGH);

      delay(zd);

    } else {
      digitalWrite(DG1, LOW);
    }
    irrecv.resume();
  }
}
//Ende------------------------------------------------------

//ST Ein/Aus------------------------------------------------------
void programm6() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, DEC);

    if (results.value == 16734885) {
      digitalWrite(ST, HIGH);

      delay(zd);

    } else {
      digitalWrite(ST, LOW);
    }
    irrecv.resume();
  }
}
//Ende------------------------------------------------------

//ST1 EIN/Aus------------------------------------------------------
void programm7() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, DEC);

    if (results.value == 16728765) {
      digitalWrite(ST1, HIGH);

      delay(zd);

    } else {
      digitalWrite(ST1, LOW);
    }
    irrecv.resume();
  }
}
//Ende------------------------------------------------------

//FREI------------------------------------------------------
//void programm8() {
//
//}
//Ende------------------------------------------------------

//FREI------------------------------------------------------
//void programm9() {
//
//}
//Ende------------------------------------------------------

//Feuer Ein/Aus------------------------------------------------------
void programmFeuer() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, DEC);

    if (results.value == 16750695) {
      digitalWrite(FEU, HIGH);

      delay(zd);

    } else {
      digitalWrite(FEU, LOW);
    }
    irrecv.resume();
  }
}
//Ende------------------------------------------------------


//------------------------------------------------------
void infrarotWert() {
  if (irrecv.decode(&results)) {
    Serial.print("Code: ");
    Serial.print(results.value, DEC);
    if (results.value == 4294967295) programm = programm; else programm = '?';
    if (results.value == 16753245) programm = 'e';
    if (results.value == 16748655) programm = 'p';
    if (results.value == 16754775) programm = 'm';
    if (results.value == 16738455) programm = '0';
    if (results.value == 16724175) programm = '1';
    if (results.value == 16718055) programm = '2';
    if (results.value == 16743045) programm = '3';
    if (results.value == 16716015) programm = '4';
    if (results.value == 16726215) programm = '5';
    if (results.value == 16734885) programm = '6';
    if (results.value == 16728765) programm = '7';
    if (results.value == 16730805) programm = '8';
    if (results.value == 16732845) programm = '9';
    if (results.value == 16750695) programm = 'f';

    Serial.print(" --> Programm: ");
    Serial.println(programm);
    //  Receive the next value
    irrecv.resume();
  }
}

Kapitano:
mein Problem: muss x mal die taste betätigen bis sich was einschaltet.(nur bei beigefügten Sketch)
Kann bitte jemand den Sketch anschauen was ich falsch gemacht habe und ob das überhaupt so funktionieren kann.

Nein, das kann so nicht funktionieren.

Du musst die Zeile zum Auslesen der IR-Befehle in die Loop setzen.
Wie sollen denn sonst deine Funktionen angesprungen werden?

Beispielcode:

void Loop() {

  if (irrecv.decode(&results)) {
    Serial.println(results.value, DEC);
    if (results.value == 16738455) {

// hier springst du in die entsprechende Funktion
   }
    if (results.value == 16724175) {

// hier springst du in die entsprechende Funktion
   }
}

HotSystems:
Nein, das kann so nicht funktionieren.

Du musst die Zeile zum Auslesen der IR-Befehle in die Loop setzen.
Wie sollen denn sonst deine Funktionen angesprungen werden?

Beispielcode:

void Loop() {

if (irrecv.decode(&results)) {
    Serial.println(results.value, DEC);
    if (results.value == 16738455) {

// hier springst du in die entsprechende Funktion
  }
    if (results.value == 16724175) {

// hier springst du in die entsprechende Funktion
  }
}

Danke für deine Hilfe (ist wie wenn man jemand einkaufen schickt ohne einkaufsliste de weis auch nicht was er im laden soll. jetzt ist ist mir meine anfrage peinlich weil wenn ich vorher mein
hirn eingeschaltet hätte müsste man den fehler sehen)

aber nochmals herzlichen dank für deine Bemühung
Herbert

Kapitano:
Danke für deine Hilfe

Gerne,
hatte noch vergessen, diese Zeilen (IR-Auslesen) benötigst du nur einmal in der Loop.