Semáfaro com sinal sonoro
MONTAGEM
Código do arduino
// Declarando as variáveis
int botao=8;
int carrovermelho=13;
int carroamarelo=12;
int carroverde=11;
int pedestrevermelho=7;
int pedestreverde=6;
int som=10;
int start=0; //Botão começa com zero para dizer que está desligado
void setup(){
//Informações dos pino utilizado no arduino
// Iremos informar se é dado de saída (OUTPUT) ou entrada (INPUT)
pinMode(botao, INPUT);
pinMode(carrovermelho, OUTPUT);
pinMode(carroamarelo, OUTPUT);
pinMode(carroverde, OUTPUT);
pinMode(pedestrevermelho, OUTPUT);
pinMode(pedestreverde, OUTPUT);
pinMode(som, OUTPUT);
}
void loop(){
digitalWrite(carroverde, HIGH); // Inicia com led verde do carro acesso
digitalWrite(pedestrevermelho, HIGH); // Inicia com led vermelho do pedestre acesso
start = digitalRead(botao); //Lendo a porta do botão
if (start == HIGH) { // Se o botão estiver ligado ...
digitalWrite(carroverde, LOW); // Desligue verde
digitalWrite(carroamarelo, HIGH); //Acenda o amarelo
delay(1000); // por 1 segundo
digitalWrite(carroamarelo, LOW); //depois apaga
digitalWrite(carrovermelho, HIGH); //Liga o vermelho
delay(2000); //Tempo de 2 segundos para acender o do pedestre
// Iremos fazer um FOR até 10, cada rodada vai demorar 1 segundo, no total de 10 segundos
for(int y=0; y<10; y++){
digitalWrite(pedestrevermelho, LOW);
digitalWrite(pedestreverde, HIGH);
tone (som, 440, 10000); // Sinal sonoro
delay(1000);
}
// Iremos fazer um FOR até 5, cada rodada vai demorar 1 segundo, no total de 5 segundos
for(int x=0; x<5; x++){
digitalWrite(pedestreverde,LOW);
tone(som, 440, 500);
digitalWrite(pedestrevermelho, HIGH);
delay(500);
digitalWrite(pedestrevermelho,LOW);
delay(500);
}
digitalWrite(pedestrevermelho, HIGH);
delay(3000); // Tempo entre o desligamento do sinal do pedestre para o ligamento do sinal dos carros
digitalWrite(carrovermelho, LOW);
digitalWrite(carroverde, HIGH);
delay(15000); // Tempo que o botão vai ficar inativo até que outro pedestre acione
}
}
Comentários
Postar um comentário