/**************************************************************
*************** Timer mit + 1 Sekunde auf Anzeige *************
*********** bei Taster startet wieder bei 0 ******************
**************************************************************/
#include <TM1637TinyDisplay.h>
#define CLK1 9
#define DIO1 10
#define CLK2 11
#define DIO2 12
TM1637TinyDisplay display1 = TM1637TinyDisplay(CLK1, DIO1);
TM1637TinyDisplay display2 = TM1637TinyDisplay(CLK2, DIO2);
unsigned long sekunde =0;
unsigned long blink =0;
unsigned long taster1millis=0;
bool blinki =true;
bool taster0 = false;
bool taster1read= false;
bool taster1=false;
bool taster1on=false;
bool pause1=true;
// Variablen für die Auswahl der Anzahl der Wiederholungen
int up=0;
int Zycup=0;
int Zyc1=10;
int Zyc2=20;
int Zyc3=30;
int Zyc4=400;
int wieder[]={0, Zyc1, Zyc2, Zyc3, Zyc4}; // Anzahl der wiederholungen beim hoch-tasten
int wieder0read;
unsigned long sec=0;
void setup() {
// Display löschen und Helligkeit einstellen
display1.clear();
display1.setBrightness(4); // set the brightness to 5 (0:dimmest, 7:brightest)
display2.setBrightness(4);
// Zuordnung der PINS
pinMode(6, INPUT_PULLUP);
pinMode(7, OUTPUT);
pinMode(5, INPUT_PULLUP);
pinMode(13, OUTPUT);
sekunde=wieder0read;
}
void loop() {
/****
if (millis() - blink > 500){
blinki=!blinki;
blink=millis();
}
******/
//Auslesen der Taster
taster0=digitalRead(6); //reset
taster1read=digitalRead(5); // up
Taster1();
Taster0();
display2.showNumberDec(wieder0read);
Counter();
Pause();
}
// Taster 1
void Taster1(){
if(taster1==true){
taster1millis=millis();
}
if(taster1read==false&&taster1on==false&&millis()-taster1millis>20){
taster1on=true;
}
wieder0read = wieder[up];
if(taster1on==true&&taster1read==true){
digitalWrite(13,true);
if (up<4){
up=up+1;
}else{up=0;}
taster1on=false;
}
if (taster1on==false){
digitalWrite(13,false);
}
}
// Taster0
void Taster0(){
if (taster0==false){
digitalWrite(7,true);
sekunde=wieder0read;
pause1=false;
}else{digitalWrite(7,false);}
}
void Counter(){
if(millis()-sec > 1000 && pause1==false){
sekunde = sekunde -1;
sec=millis();
}
}
void Pause(){
if(pause1==false){
display1.showNumberDec(sekunde);
}else{display1.showString("done");}
if(sekunde<=0){
pause1=true;
}
}