PROJETO DE SEMÁFORO PARA CRUZAMENTO DE DUAS VIAS EM ARDUÍNO
Por: Jose.Nascimento • 12/10/2018 • 827 Palavras (4 Páginas) • 485 Visualizações
...
digitalWrite(verdeC, LOW);
digitalWrite(vermelhoC, HIGH);
digitalWrite(verdeC, HIGH);
k=5000;
EsperaMan(k); //24,75seg. Desliga verdeA, verdeC. Liga amareloA, vermelhoC e verdeC.
if(man==1)
FuncM();
digitalWrite(amareloA, LOW);
digitalWrite(vermelhoA, HIGH);
k=2000;
EsperaMan(k); //26,75seg.
if(man==1)
FuncM();
digitalWrite(verdeC, LOW);
digitalWrite(vermelhoC, HIGH);
digitalWrite(verdeB, HIGH);
digitalWrite(vermelhoB, LOW); //liga verdeB e vermelhoC. Desliga vermelhoB e ver.
for(i=0;i
{
estbotao2 += digitalRead(botao2); // estbotao2 recebe valor HIGH ou LOW.
if (estbotao2 == HIGH)
{
k=2000;
EsperaMan(k);
if(man==1)
FuncM();
digitalWrite(verdeB, LOW);
digitalWrite(amareloB, HIGH);
k=5000;
EsperaMan(k);
if(man==1)
FuncM(); // liga amareloB por 2 seg. Desliga verdeB.
digitalWrite(amareloB, LOW);
digitalWrite(vermelhoB, HIGH);
k=2000;
EsperaMan(k);
if(man==1)
FuncM(); //
digitalWrite(vermelhoA, LOW);
digitalWrite(vermelhoC, LOW);
digitalWrite(verdeA, HIGH);
digitalWrite(vermelhoB, HIGH);
digitalWrite(verdeC, HIGH);
k=19750;
EsperaMan(k);
if(man==1)
FuncM(); // liga verdeA, vermelhoB e verdeC por 55 seg.
digitalWrite(verdeA, LOW);
digitalWrite(amareloA, HIGH);
digitalWrite(verdeC, LOW);
digitalWrite(vermelhoC, HIGH);
digitalWrite(verdeC, HIGH);
k=5000;
EsperaMan(k);
if(man==1)
FuncM();
digitalWrite(amareloA, LOW);
digitalWrite(vermelhoA, HIGH);
k=2000;
EsperaMan(k);
if(man==1)
FuncM();
digitalWrite(verdeC, LOW);
digitalWrite(vermelhoC, HIGH);
digitalWrite(verdeB, HIGH);
digitalWrite(vermelhoB, LOW);
estbotao2 = 0;
contbotao2 += 1; // contador recebe 1 para definir que botão já foi pressionado.
}
if(contbotao2 == 0)
{
k=50;
EsperaMan(k);
if(man==1)
FuncM();
}
}
if(contbotao2 > 0) // se botão 2 já for pressionado, ocorre um delay de 59250.
k=59250;
EsperaMan(k);
if(man==1)
FuncM(); //86 seg
digitalWrite(verdeB, LOW);
digitalWrite(amareloB, HIGH);
k=5000;
EsperaMan(k);
if(man==1)
FuncM(); //88seg liga amareloB por 2 seg. Desliga verdeB.
digitalWrite(amareloB, LOW);
digitalWrite(vermelhoB, HIGH);
k=2000;
EsperaMan(k);
if(man==1)
FuncM(); //90seg
digitalWrite(vermelhoA, LOW);
digitalWrite(vermelhoC, LOW);
}
void EsperaMan(int k)
{
for(int i=0; i
{
if(man==0)
{
Serial.println(man);
delay(50);
}
}
}
...