#include <TM1637TinyDisplay.h>
#define CLK1 3
#define DIO1 4
TM1637TinyDisplay display1 = TM1637TinyDisplay(CLK1, DIO1);
unsigned long timer0millis;
unsigned long button1millis;
unsigned long timer1wait0millis;
long minmax[]={5000,180000};
long firstwait[]={120000,360000};
long timer1= 0;
int first=0;
int led1=9;
int button1=12;
int button2=11;
int driver1=5;
int tt =0;
int zeit=1000; // Sekundeneinstellung 1000= 1 Sekunde
long verlauf[]={};
long zyclus = 0;
bool button1read=false;
bool button2read=false;
bool button1on=false;
bool button2on=false;
bool button1switch=false;
bool button2switch=false;
void setup() {
Serial.begin(9600);
pinMode(led1, OUTPUT);
pinMode(button1, INPUT_PULLUP);
pinMode(button2, INPUT_PULLUP);
pinMode(driver1, OUTPUT);
display1.setBrightness(7);
}
void loop() {
// Serial.println((String)timer1+" "+(String)tt+" "+(String)analogRead(driver1)+" "+(String)millis()+" Button: "+(String)button1read+" But1 On: "+(String)button1on+" But1 SW: "+(String)button1switch+" But2 SW: "+(String)button2switch+" But-mill: "+(String)button1millis);
button1read=!digitalRead(button1);
button2read=!digitalRead(button2);
randomSeed(analogRead(A0));
if(button1switch==true){
if (first==0){
randomSeed(analogRead(A0));
timer1=(random(firstwait[0],firstwait[1])/1000);
timer0millis=millis();
pwmSet();
first=1;
Serial.println("Pause First: "+(String)timer1);
}
if (timer1==0){
first=2;
timer0millis=millis();
timer1=(random(minmax[0],minmax[1])/1000);
tt=(random(100,255));
ledswitch(led1);
ledswitch(driver1);
pwmSet();
verlauf[zyclus]=timer1;
zyclus = zyclus+1;
Serial.println("Zyclus: "+(String)zyclus+" Sekunden: "+(String)timer1+" LED1: "+ (String)digitalRead(led1)+" tt: "+(String)tt);
}
if(millis()-timer0millis>=zeit){
timer1=timer1-1;
timer0millis=millis();
}
if (first==1){
display1.showString(" run");
}else{display1.showNumberDec(timer1);}
} else {display1.showString("----");}
button();
;
}
void button(){
if (button1read==false&&button2read==false){
button1millis =millis();
}
if(button1read==true && button1on==false && millis()-button1millis> 20){
button1on=true;
}
if(button1read==false && button1on==true){
button1switch = !button1switch;
button1on=false;
}
if(button1read==true && button1on==true && millis()-button1millis> 3000){
digitalWrite(led1,LOW);
button1switch=false;
button1on=false;
timer1=0;
first=0;
zyclus=0;
}
//**************** Button 2 *******************
if(button2read==true && digitalRead(led1)==HIGH){
button2switch=!button2switch;
digitalWrite(led1,LOW);
}
if(button2read==true && button2on==false && millis()-button1millis> 20){
button2on=true;
}
if(button2read==false && button2on==true){
button2switch = !button2switch;
button2on=false;
}
if(button2switch==true&&button1switch==false){
tt=255;
ledswitch(led1);
ledswitch (driver1);
button2switch=false;
}
}
void ledswitch(int led){
if(digitalRead(led)==HIGH){
digitalWrite(led,LOW);
}else {digitalWrite(led,HIGH);
if (led== driver1){ analogWrite(driver1,1);}
}
}
void pwmSet(){
randomSeed(analogRead(A0));
tt=random(150,255);
}