Boas pessoal,
Como iram perceber trata-se de uma pergunta de quem começou hoje a mexer no arduino, no entanto entre muitas duvidas e algumas horas devolta desta questão recorro agora aos vosso serviços.
Fiz o codigo do basico semáforo, no entanto queria eviar a repetição do comando delay, para fazer piscar o LED verde dos pedestres quando o vermenho fecha.
como é que o poderei fazer?
....
digitalWrite (pinVerde, LOW);
digitalWrite (pinAmarelo, LOW);
digitalWrite (pinVermelho, HIGH);
digitalWrite (pinPedestreVermelho, LOW);
digitalWrite (pinPedestreVerde, HIGH);
delay (15000);
digitalWrite (pinPedestreVerde, HIGH);
delay (500);
digitalWrite (pinPedestreVerde, LOW);
delay (500);
digitalWrite (pinPedestreVerde, HIGH);
delay (500);
digitalWrite (pinPedestreVerde, LOW);
delay (500);
digitalWrite (pinPedestreVerde, HIGH);
delay (500);
digitalWrite (pinPedestreVerde, LOW);
delay (500);
digitalWrite (pinPedestreVerde, HIGH);
delay (500);
digitalWrite (pinPedestreVerde, LOW);
delay (500);
digitalWrite (pinPedestreVerde, HIGH);
delay (500);
digitalWrite (pinPedestreVerde, LOW);
delay (500);
digitalWrite (pinVerde, HIGH);
digitalWrite (pinAmarelo, LOW);
digitalWrite (pinVermelho, LOW);
digitalWrite (pinPedestreVermelho, HIGH);
digitalWrite (pinPedestreVerde, LOW);
delay (15000);
Obrigado
Tags:
Oi Sr. A, boa tarde.
No lugar da função delay() use a função millis(), para dar "delay", sem para o processamento.
Rui
Boa Tarde, Rui
Obrigado pela informação vou estudar o millis() uma vez que também acho que é solução para poder utilizar a variavel if e else uma vez que pelo que percebi não "congela" o programa como o delay.
Muito obrigado.
https://www.arduino.cc/en/Reference/For
for(int i=0; i<10; i++)
{
digitalWrite (pinPedestreVerde, !analogRead(pinPedestreVerde));
delay (500);
}
Boa Tarde, João
Obrigado pela informação do for() pois foi uma boa solução para o que pretendia, no entanto alterei um pouco o código para :
for (int i=1; i<=6; i=i+1)
{
digitalWrite (pinPedestreVerde, HIGH);
delay (500);
digitalWrite (pinPedestreVerde, LOW);
delay (500);
}
pois o que me forneceu não funcionou, no entanto deu para perceber +- a mecânica do for()
Um abraço
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por