It has been a while since the last I coded but from my experience and looking at other topics on this forum, thecode should work. However, the functions aren't looping and I can't seem to figure out why. For example, with f2, the lights have to keep blinking until another function gets called by pressing a button. What is the reason why the functions don't loop?
I know there might be better ways to code this. But this was the easiest way to do it, with what I could remember :).
Thank you in advance for helping me!
int i = 0;
int switch1 = 0;
int switch2 = 0;
int switch3 = 0;
int teller1 = 0;
int teller2 = 0;
int teller3 = 0;
void setup() {
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
}
void f1() {
digitalWrite(5, LOW);
digitalWrite(6, LOW);
delay(1000);
}
void f2() {
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
delay(500);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
delay(500);
}
void f3() {
for (i=0; i<=4; i++) {
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
delay(500);
digitalWrite(6, LOW);
delay(500);
}
}
void f4() {
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
delay(500);
digitalWrite(6, LOW);
delay(500);
}
void f5() {
for (i=0; i<=4; i++) {
digitalWrite(6, LOW);
digitalWrite(5, HIGH);
delay(500);
digitalWrite(5, LOW);
delay(500);
}
}
void f6() {
digitalWrite(6, LOW);
digitalWrite(5, HIGH);
delay(500);
digitalWrite(5, LOW);
delay(500);
}
void loop() {
switch1 = digitalRead(2);
switch2 = digitalRead(3);
switch3 = digitalRead(4);
if (switch1 == HIGH) {
teller1++;
if (teller1 == 1) {
f1();
}
if (teller1 == 2) {
f2();
}
if (teller1 >= 3) {
teller1 = 0;
}
}
if (switch2 == HIGH) {
teller2++;
if (teller2 == 1) {
f3();
}
if (teller2 == 2) {
f4();
}
if (teller2 >= 3) {
teller2 = 0;
}
}
if (switch3 == HIGH) {
teller3++;
if (teller3 == 1) {
f5();
}
if (teller3 == 2) {
f6();
}
if (teller3 >= 3) {
teller3 = 0;
}
}
}

