Semáforo com Arduino

Publicado em: 16/01/2025

Como referenciar este texto: Semáforo com Arduino’. Rodrigo Terra. Publicado em: 16/01/2025. Link da postagem: https://www.makerzine.com.br/educacao/semaforo-com-arduino/.

Conteúdos que você verá nesta postagem

Construir um semáforo utilizando Arduino e LEDs é uma maneira prática e criativa de explorar conceitos fundamentais de eletrônica, programação e automação. Este projeto, ideal para estudantes e entusiastas de tecnologia, simula o funcionamento de um semáforo real, alternando entre os sinais de trânsito para carros e pedestres.

A proposta combina aprendizado teórico e aplicação prática, permitindo compreender o uso de pinos digitais, temporizadores e lógica de controle. Além disso, o projeto pode ser facilmente expandido para incluir sensores e botões, tornando-o ainda mais interativo e próximo de um sistema utilizado nas cidades.

Nesta postagem, você aprenderá como configurar os LEDs, escrever o código necessário e entender os princípios por trás do funcionamento do semáforo, incentivando a experimentação e a personalização do projeto. Uma atividade ideal para makers que desejam unir educação e criatividade!

Lógica

				
					Configuração Inicial (setup)

    Configure os pinos 3, 5, 6, 9 e 10 como saídas.
    Inicialize todos os LEDs:
        Ligue os LEDs brevemente (1 segundo acesos e 1 segundo apagados) para realizar um teste inicial.

Ciclo Principal (loop)

    Semáforo para carros: luz verde
        Ligue o LED verde do semáforo de carros (pino 3).
        Desligue o LED vermelho do semáforo de pedestres (pino 10).
        Mantenha o estado por 5 segundos.

    Transição para o semáforo de carros: luz amarela piscando
        Desligue o LED verde do semáforo de carros.
        Ligue e desligue o LED amarelo do semáforo de carros (pino 5) 6 vezes, com 500 ms entre cada piscada.

    Semáforo para pedestres: luz verde
        Ligue o LED vermelho do semáforo de carros (pino 6).
        Ligue o LED verde do semáforo de pedestres (pino 9).
        Mantenha o estado por 5 segundos.

    Aviso para pedestres: luz verde piscando
        Desligue o LED verde do semáforo de pedestres (pino 9).
        Ligue e desligue o LED verde do semáforo de pedestres 6 vezes, com 500 ms entre cada piscada.

    Retorno ao estado inicial
        Desligue o LED vermelho do semáforo de carros.
        Ligue o LED vermelho do semáforo de pedestres.
        Ligue o LED verde do semáforo de carros.

    Repita o ciclo.
				
			

Código escrito

				
					// C++ code
//
void setup()
{
  pinMode(3, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);

  analogWrite(3, 1);
  analogWrite(5, 1);
  analogWrite(6, 1);
  analogWrite(9, 1);
  analogWrite(10, 1);
  delay(1000); // Wait for 1000 millisecond(s)
  analogWrite(3, 0);
  analogWrite(5, 0);
  analogWrite(6, 0);
  analogWrite(9, 0);
  analogWrite(10, 0);
  delay(1000); // Wait for 1000 millisecond(s)
}

void loop()
{
  analogWrite(3, 1);
  analogWrite(5, 0);
  analogWrite(6, 0);
  analogWrite(9, 0);
  analogWrite(10, 1);
  delay(5000); // Wait for 5000 millisecond(s)
  analogWrite(3, 0);
  analogWrite(5, 1);
  delay(500); // Wait for 500 millisecond(s)
  analogWrite(5, 0);
  delay(500); // Wait for 500 millisecond(s)
  analogWrite(5, 1);
  delay(500); // Wait for 500 millisecond(s)
  analogWrite(5, 0);
  delay(500); // Wait for 500 millisecond(s)
  analogWrite(5, 1);
  delay(500); // Wait for 500 millisecond(s)
  analogWrite(5, 0);
  delay(500); // Wait for 500 millisecond(s)
  analogWrite(5, 1);
  delay(500); // Wait for 500 millisecond(s)
  analogWrite(5, 0);
  delay(500); // Wait for 500 millisecond(s)
  analogWrite(5, 1);
  delay(500); // Wait for 500 millisecond(s)
  analogWrite(10, 0);
  analogWrite(6, 1);
  delay(5000); // Wait for 5000 millisecond(s)
  analogWrite(9, 1);
  analogWrite(6, 0);
  delay(3000); // Wait for 3000 millisecond(s)
  analogWrite(9, 0);
  analogWrite(10, 1);
  analogWrite(5, 0);
  analogWrite(3, 1);
}
				
			

Código blocos

Inicial

Setup

Circuito montado

Pinagem utilizada

Semáforo de Pedestres

  1. Pino 3 (Digital PWM):

    • Conectado ao LED verde do semáforo de pedestres.
    • Indica que os pedestres podem atravessar a faixa de pedestres.
  2. Pino 5 (Digital PWM):

    • Conectado ao LED vermelho do semáforo de pedestres.
    • Indica que os pedestres devem aguardar.

 

Semáforo de Carros

  1. Pino 6 (Digital PWM):

    • Conectado ao LED verde do semáforo de carros.
    • Indica que os veículos podem seguir.
  2. Pino 9 (Digital PWM):

    • Conectado ao LED amarelo do semáforo de carros.
    • Indica a transição de estado, alertando os motoristas para reduzir a velocidade.
  3. Pino 10 (Digital PWM):

    • Conectado ao LED vermelho do semáforo de carros.
    • Indica que os veículos devem parar.

Simulador TinkerCad

Se você acha que este conteúdo pode ser útil para alguém, compartilhe!

Ao divulgar os textos do MakerZine, você contribui para que todo o material continue acessível e gratuito para todas as pessoas.