Hallo, ich hoffe mir kann jemand helfen. Bin gerade am aufbauen einer Rolladenschaltung, diese funktioniert soweit auch.
Momentan schaltet der LDR den Rollladen bei einer bestimmten Helligkeit hoch und bei der entsprechende Dunkelheit wieder runter.
Da ich ausschließen möchte das der Rolladen fährt, wenn z.B Autoscheinwerfer oder der Bewegungsmelder die Lampen am Haus kurz schaltet etc. habe ich mir überlegt das dieser nur schalten darf, wenn der Wert für eine bestimmte Zeit über oder unterschritten wird.
Aktueller Code:
//Photoresistor********
if ((photosensorValue > 800) && (remember1 == 1)){
remember1=0;//
T1_T2_val=0;//Ruhe position von den Rolladen
T1_T2_val --; //rolladen hochfahren
previousMillis1=millis();
}
//*************
if ((photosensorValue < 50) && (remember1 == 0)){
remember1=1;//variabel verhindert das der Rolladen erst wieder schalten darf, wenn es vorher dunkel war.(toggeln)
T1_T2_val=0;
T1_T2_val ++;//rolladen runterfahren
previousMillis2=millis();}
//Haupttaster***
if(HT1_state !=HT1_oldState){
if(HT1_state == HIGH){
if(T1_T2_val > -1){
T1_T2_val --;}}}
HT1_oldState=HT1_state;
if(HT2_state !=HT2_oldState){
if(HT2_state == HIGH){
if(T1_T2_val < 1){
T1_T2_val ++;}}}
HT2_oldState=HT2_state;
//**Rolladenküche
if(T1_state !=T1_oldState){
if(T1_state == HIGH){
if(T1_T2_val > -1){
T1_T2_val --;}}}
T1_oldState=T1_state;
if (T1_T2_val == -1){
digitalWrite(R1,HIGH);
if (currentMillis-previousMillis1 > rollMoveTime){
previousMillis1=currentMillis;
T1_T2_val ++;
T1_oldState=0;
HT1_oldState=0;}}
else{digitalWrite(R1,LOW);
previousMillis1=0; }
//****************************
if(T2_state !=T2_oldState){
if(T2_state == HIGH){
if(T1_T2_val < 1){
T1_T2_val ++;}}}
T2_oldState=T2_state;
if (T1_T2_val == 1){
digitalWrite(R2,HIGH);
if (currentMillis-previousMillis2 > rollMoveTime){
previousMillis2=currentMillis;
T1_T2_val --;
T2_oldState=0;
HT2_oldState=0;}}
else{digitalWrite(R2,LOW);
previousMillis2=0; }}
probiert habe ich u.a. folgendes:
if (photosensorValue > 800){
rememberValue1=1;}
else{rememberValue1=0;}
if (rememberValue1==1 && remember == 1){
if (currentMillis-previousMillisPhoto>3000){
previousMillisPhoto=currentMillis1;
T1_T2_val=0;
T1_T2_val --;
remember1=0;
else{previousMillisPhoto=0;}
if ( photosensorValue<120){
rememberValue2=1;}
else{remeberValue2=0;}
if (rememberValue2==1 && remember == 0){
if (currentMillis-previousMillisPhoto>3000){
reviousMillisPhoto=currentMillis2;
T1_T2_val=0;
T1_T2_val ++;
remember1=1;
else{previousMillisPhoto=0;}
leider geht dieses aber auch nicht und nun bin ich an den Punkt gekommen wo ich leider nicht mehr weiter komme.
LG