Hallo
das timen geht nicht LED schaltet nur ein mit voller Leuchtkraft.
wenn ich den abschnitt extra im Sketch laufen lasse funktioniert super.
bitte um hilfe weil ich bin ratlos (und blutiger anfänger)
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 = 10;
int EG1 = 9;
int DG = 5;
int DG1 = 6;
int ST = 7;
int ST1 = 8;
int Frei = 3;
int Frei1 = 4;
//Zeitmanegment-----------------------------------------
int z = 2500; //=delay / Zeit bei Einschalten
int zz = 2500; //=delay / Zeit bei Ausschalten
//-----------------------------------------------------
IRrecv irrecv(RECV_PIN);
decode_results results;
//------------------------------------------------------
char programm = 'x';
//------------------------------------------------------
//int fb1 = 0; // 0 = Ein , 1= Aus
//Timen-------------------------------------------------
int fadeValue;
int lastCounter = 1;
int counter;
//------------------------------------------------------
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);
}
//------------------------------------------------------
void loop() {
infrarotWert();
if (programm == 'e') Ende();
if (programm == 'p') programmPlus();
if (programm == 'e') programmMinus();
if (programm == '0') programm0();
if (programm == '1') programm1();
if (programm == '2') programm2();
if (programm == '4') programm4();
if (programm == '5') programm5();
if (programm == '6') programm6();
if (programm == '8') programm8();
}
//------------------------------------------------------
void programm0() {
}
//------------------------------------------------------
void programm1() {
//alles Ein---------------------------------------------------------------
digitalWrite(EG, HIGH);
delay(z);
digitalWrite(EG1, HIGH);
delay(z);
digitalWrite(DG, HIGH);
delay(z);
digitalWrite(DG1, HIGH);
delay(z);
digitalWrite(DG, HIGH);
delay(z);
digitalWrite(ST, HIGH);
delay(z);
digitalWrite(ST1, HIGH);
delay(z);
}
//------------------------------------------------------
void programm2() {
{ for (int helligkeit = 1; helligkeit <= 25; helligkeit = helligkeit + 1)
analogWrite(EG, helligkeit);
delay(100);
}
{ for (int helligkeit = 1; helligkeit <= 25; helligkeit = helligkeit + 1)
analogWrite(EG1, helligkeit);
delay(100);
}
}
//------------------------------------------------------
void programm3() {
}
//------------------------------------------------------
void programm4() {
}
//------------------------------------------------------
void programm5() {
}
//------------------------------------------------------
void programm6() {
digitalWrite(DG, HIGH);
delay(200);
digitalWrite(EG, LOW);
delay(200);
}
//------------------------------------------------------
void programm8() {
if (millis() % 2000 == 0) {
digitalWrite(DG1, HIGH);
}
if (millis() % 2000 == 1000) {
digitalWrite(DG1, LOW);
}
}
//------------------------------------------------------
void Ende() {
//alles Aus---------------------------------------------------------------
digitalWrite(DG1, LOW);
delay(zz);
digitalWrite(DG, LOW);
delay(zz);
digitalWrite(EG1, LOW);
delay(zz);
digitalWrite(EG, LOW);
delay(zz);
digitalWrite(ST1, LOW);
delay(zz);
digitalWrite(ST, LOW);
delay(zz);
}
//------------------------------------------------------
void programmPlus() {
//alles hell Timen-----------------------------------------------------------
counter = lastCounter;
counter ++;
if (counter > 8) {
counter = 8;
}
if (counter < 2) {
counter = 1;
}
switch (counter) {
case 1:
fadeValue = 0;
break;
case 2:
fadeValue = 4;
break;
case 3:
fadeValue = 8;
break;
case 4:
fadeValue = 16;
break;
case 5:
fadeValue = 32;
break;
case 6:
fadeValue = 64;
break;
case 7:
fadeValue = 128;
break;
case 8:
fadeValue = 255;
break;
}
//###############################################################
analogWrite(EG, fadeValue); //set led with PWM value
//###############################################################
lastCounter = counter; //reset counter
}
//------------------------------------------------------
void programmMinus() {
//alles dunkel Timen-----------------------------------------------------------
counter = lastCounter;
counter --;
if (counter > 8) {
counter = 8;
}
if (counter < 2) {
counter = 1;
}
switch (counter) {
case 1:
fadeValue = 0;
break;
case 2:
fadeValue = 4;
break;
case 3:
fadeValue = 8;
break;
case 4:
fadeValue = 16;
break;
case 5:
fadeValue = 32;
break;
case 6:
fadeValue = 64;
break;
case 7:
fadeValue = 128;
break;
case 8:
fadeValue = 255;
break;
}
//###############################################################
analogWrite(EG, fadeValue); //set led with PWM value
//###############################################################
lastCounter = counter; //reset counter
}
//------------------------------------------------------
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';
Serial.print(" --> Programm: ");
Serial.println(programm);
// Receive the next value
irrecv.resume();
}
}