#define SelectButton 9 // input op digital pin 9
#define StartButton 8 // input op digital pin 8
#define LED1 7 // output op digital pin 7
#define LED2 6 // output op digital pin 6
#define LED3 5 // output op digital pin 5
#define LED4 4 // output op digital pin 4
bool StartButton_State; // true or false
bool SelectButton_State; // true or false
byte SelectButton_Count = 0; // telt van tot 4 dan weer opnieuw
const unsigned long StartDelay = 7000; // startdelay is 10 sec
void setup() {
// put your setup code here, to run once:
Serial.begin(9600); // tbv debugging
pinMode (LED1, OUTPUT); // digital output
pinMode (LED2, OUTPUT); // digital output
pinMode (LED3, OUTPUT); // digital output
pinMode (LED4, OUTPUT); // digital output
pinMode (SelectButton, INPUT_PULLUP); // digital input
pinMode (StartButton, INPUT_PULLUP); // digital input
}
void loop() {
// put your main code here, to run repeatedly:
StartDelayTimer();
SelectButton_State = digitalRead(SelectButton); // read SelectButton
StartButton_State = digitalRead(StartButton); // read StartButton
Serial.print("SelectButtonState= "); // debugging
Serial.print(SelectButton_State); // debugging
Serial.print("\t"); // debugging
Serial.print("SelectButton_Count= ");
Serial.print(SelectButton_Count);
Serial.print("\t");
//Serial.print("StartButton= "); // debugging
//Serial.println(StartButton_State); // debugging
if (SelectButton_State == LOW) {
delay(250);
switch(SelectButton_Count + 1) {
case 0:
digitalWrite (LED1, LOW);
digitalWrite (LED2, LOW);
digitalWrite (LED3, LOW);
digitalWrite (LED4, LOW);
break;
case 1:
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (LED3, LOW);
digitalWrite (LED4, LOW);
break;
case 2:
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
digitalWrite (LED3, LOW);
digitalWrite (LED4, LOW);
break;
case 3:
digitalWrite (LED1, LOW);
digitalWrite (LED2, LOW);
digitalWrite (LED3, HIGH);
digitalWrite (LED4, LOW);
break;
case 4:
digitalWrite (LED1, LOW);
digitalWrite (LED2, LOW);
digitalWrite (LED3, LOW);
digitalWrite (LED4, HIGH);
break;
}
SelectButton_Count ++;
if(SelectButton_Count > 4) {
SelectButton_Count = 1;
}
}
if (StartButton_State == LOW) {
digitalWrite (LED1, LOW);
digitalWrite (LED2, LOW);
digitalWrite (LED3, LOW);
digitalWrite (LED4, LOW);
delay (250);
}
}
/*
Below are some Functions
*/
void StartDelayTimer() {
// Timer "StartDelay" to select output before start
unsigned long current_millis = millis();
unsigned long prev_millis = 0;
if (current_millis - prev_millis >= StartDelay) {
Startladen();
}
else {
Serial.print("StartDelayTime = ");
Serial.print(current_millis /1000);
Serial.println(" sec");
}
}
void Startladen() {
Serial.print(" dit is de laad cyclus ");
Serial.print("\t");
Serial.print("SelectButton= ");
Serial.print(SelectButton_Count);
Serial.print("\t");
Serial.println("times pressed");
Startladen();
}