Semáforo com Botão de Pedestres usando Arduino

O primeiro projeto que fizemos era um simples pisca led didático. Nesta página vamos apresentar um semáforo com botão de pedestre usando uma nova programação feita pelo Arduíno IDE e a placa UNO. Você pode realizar o download gratuito do software de programação acessando aqui.

O código a ser montado é o abaixo, observe que a formatação do texto não está correta como no vídeo:

//Semáforo interativo
//Definindo as variáveis

int pedVermelho = 9; // LED Vermelho Pedestre no Pino 9

int pedVerde = 8; // LED Verde Pedestre no Pino 9

int botao = 2; // Botao no Pino 2

int carVermelho = 12; // LED Vermelho Carro no Pino 12

int carAmarelo = 11; // LED Amarelo Carro no Pino 11

int carVerde = 10; // LED Verde Carro no Pino 10

int cruzamento = 5000; // Tempo para que os pedestres atravessem

unsigned long changeTime; // Tempo desde que o botao foi pressionado

void setup (){ // Aqui são definidas os pinos referentes aos leds como saídas

pinMode(carVermelho, OUTPUT);

pinMode(carAmarelo, OUTPUT);

pinMode(carVerde, OUTPUT);

pinMode(pedVermelho, OUTPUT);

pinMode(pedVerde, OUTPUT);

pinMode(botao, INPUT);

//Acende a luz verde

digitalWrite(carVerde, HIGH);

digitalWrite(pedVermelho, HIGH);

}

void loop(){

int state = digitalRead(botao);

// Verifica se o botão foi pressionado e se passaram 5 seg desde a ultima

if (state ==HIGH && (millis() – changeTime) > 5000){
// Chama função para alterar luzes

changeLights();

}

}

void changeLights(){

digitalWrite(carVerde, LOW); // Apaga LED verde

digitalWrite(carAmarelo, HIGH); //Acende LED amarelo

delay(4000); //espera 2 segs

digitalWrite(carAmarelo, LOW); //Apaga LED amarelo

digitalWrite(carVermelho, HIGH); //Apaga LED vermelho

delay(1000); // Espera 1 seg por seguranca

digitalWrite(pedVermelho, LOW); // Apaga vermelho pedestres

digitalWrite(pedVerde, HIGH); // Acende verde pedestres

delay(cruzamento); // Espera por um intervalo de tempo predefinido

// Pisca o verde dos pedestre

for (int x=0; x<10; x++){

digitalWrite (pedVerde, HIGH);

delay(250);

digitalWrite (pedVerde, LOW);

delay(250);

}

// Acende vermelho pedestres

digitalWrite (pedVermelho, HIGH);

delay(500);

digitalWrite (carVermelho, LOW); // Apaga vermelho

delay(0);

digitalWrite (carVerde, HIGH); // Acende verde

// Registra o tempo desde a ultima alteracao no semáforo

changeTime = millis( );

}

Digite os códigos nesta mesma ordem e faça o upload para a placa usando o cabo USB e o IDE. Você verá em instantes que os leds TX e RX da placa vão piscar rapidamente e o programa será executado no led da placa de testes.

As linhas de código seguem comentadas, após os //, que são os caracteres usados para indicar que o que vem após é um comentário e não deve ser lido pelo compilador. A formatação do código pode ser vista no vídeo abaixo. Observe o funcionamento do projeto:

Uma vez alimentada, o projeto funciona assim: O semáforo de carros (composto na placa por 3 leds) uma vez verde, permanece em vermelho o semáforo de pedestres (composto por 2 leds). Quando pressionado o botão na placa, a passagem do pedestre se abre mediante atenção e fechamento no semáforo para carros. Após um tempo de travessia, o sistema volta ao seu estado inicial. As cores são reproduzidas como no sistema real. Observe o funcionamento prático e a formatação do código comentado acima:

(LEDS a esquerda representam semáfoto pedestre / LEDS na direita representam semáforo carros)

Categorias: Eletrônica

0 comentário

Deixe um comentário