#define vm1 2
#define am1 3
#define vd1 4
#define vm2 5
#define am2 6
#define vd2 7
#define vm1p 13
#define vd1p 12
#define vm2p 11
#define am2p 10
#define vd2p 9
#define bt 8
unsigned long tempo1;
unsigned long tempo2;
int contador = 1;
int contador_2 = 1;
int p_acionado = 0;
int tempo_espera_1 = 0;
int tempo_espera_2 = 0;
void setup() {
Serial.begin(115200);
pinMode(vm1, OUTPUT);
pinMode(am1, OUTPUT);
pinMode(vd1, OUTPUT);
pinMode(vm2, OUTPUT);
pinMode(am2, OUTPUT);
pinMode(vd2, OUTPUT);
pinMode(vm1p, OUTPUT);
pinMode(vd1p, OUTPUT);
pinMode(vm2p, OUTPUT);
pinMode(am2p, OUTPUT);
pinMode(vd2p, OUTPUT);
pinMode(bt, INPUT_PULLUP);
digitalWrite(vm1p, HIGH);
digitalWrite(vd2p, HIGH);
tempo1 = millis();
}
void loop() {
if(digitalRead(bt) == LOW){
p_acionado = 1;
}
if(millis() >= (tempo1 + tempo_espera_1)){
trocar();
tempo1 = millis();
}
if(p_acionado == 1){
if(millis() >= (tempo2 + tempo_espera_2)){
trocar_p();
tempo2 = millis();
}
}
}
void trocar(){
//Serial.println(contador);
if (contador == 1){
digitalWrite(am1, LOW);
digitalWrite(vm2, LOW);
digitalWrite(vm1, HIGH);
digitalWrite(vd2, HIGH);
tempo_espera_1 = 3000;
}
if (contador == 2){
digitalWrite(vd2, LOW);
digitalWrite(am2, HIGH);
tempo_espera_1 = 1000;
}
if (contador == 3){
digitalWrite(am2, LOW);
digitalWrite(vm1, LOW);
digitalWrite(vd1, HIGH);
digitalWrite(vm2, HIGH);
tempo_espera_1 = 3000;
}
if (contador == 4){
digitalWrite(vd1, LOW);
digitalWrite(am1, HIGH);
tempo_espera_1 = 1000;
}
if (contador == 5){
digitalWrite(vm2, LOW);
digitalWrite(am1, LOW);
tempo_espera_1 = 3000;
}
contador++;
if (contador >= 5){
contador = 1;
}
}
void trocar_p(){
//Serial.println(contador_2);
if (contador_2 == 1){
digitalWrite(vd2p, LOW);
digitalWrite(am2p, HIGH);
tempo_espera_2 = 2000;
}
if (contador_2 == 2){
digitalWrite(am2p, LOW);
digitalWrite(vm2p, HIGH);
digitalWrite(vm1p, LOW);
digitalWrite(vd1p, HIGH);
tempo_espera_2 = 3000;
}
if (contador_2 == 3){
digitalWrite(vd1p, LOW);
tempo_espera_2 = 500;
}
if (contador_2 == 4){
digitalWrite(vd1p, HIGH);
tempo_espera_2 = 1000;
}
if (contador_2 == 5){
digitalWrite(vd1p, LOW);
digitalWrite(vm1p, HIGH);
digitalWrite(vm2p, LOW);
digitalWrite(vd2p, HIGH);
tempo_espera_2 = 3000;
}
contador_2++;
if (contador_2 >= 6){
contador_2 = 1;
p_acionado = 0 ;
}
}
/*
digitalWrite(vm1, HIGH);
digitalWrite(vd2, HIGH);
delay(2000);
delay(2000);
delay(2000);
delay(2000);
*/