Controlador de semáforo de 3 vias baseado em Arduino

Tempo de leitura: 3 minutes
Todos nós sabemos sobre o Arduino. É uma das placas de microcontrolador de código aberto mais populares, muito útil para projetos de bricolage. este Controlador de semáforo de 3 vias baseado em Arduino é um simples Projeto DIY Arduino o que é útil para entender o funcionamento dos semáforos que vemos ao nosso redor. Cobrimos uma versão mais simples dos semáforos neste circuito de semáforo.  Aqui demonstramos isso por 3 lados ou maneiras. Agora vamos entrar no projeto…

Componentes Necessários:

  1. 3*Luzes LED vermelhas
  2. 3*Luzes LED verdes
  3. 3*Luzes LED amarelas
  4. 3*Resistores de 220ohm
  5. Protoboard
  6. Conectores Macho x Macho
  7. Arduino Uno Com Cabo IDE

Explicação do circuito:

O diagrama do circuito para o projeto Arduino Traffic Light Controller é apresentado abaixo:
Arduino based 3-way Traffic light controller circuit
É bem simples e pode ser facilmente montado no tabuleiro de pão, conforme explicado nas etapas abaixo:
  1. Conecte os LEDs na ordem em vermelho, verde e amarelo na placa de ensaio.
  2. Coloque o terminal negativo dos LEDs em comum e conecte o resistor de 220ohm em série.
  3. Conecte os fios do conector adequadamente.
  4. Conecte a outra extremidade do fio ao Arduino Uno nos pinos consecutivos (2,3,4…10)
  5. Ligue a placa de ensaio usando o pino Arduino 5v e GND.
Arduino based Traffic light system
(fogo usada com led incolor)

Programa e explicação de trabalho:

O código para este projeto do controlador de semáforo Arduino é simples e pode ser facilmente entendido. Aqui, demonstramos semáforos para a estrada de três vias e o código brilha nos LEDs nos três lados de uma sequência específica, na qual os semáforos reais funcionam. Por exemplo, haverá dois sinais vermelhos em qualquer um dos dois lados e uma luz verde no lado restante. E a luz amarela também acenderá, por 1 segundo de cada vez, entre a transição do vermelho para o verde, significa que a primeira luz vermelha brilha por 5 segundos, a luz amarela brilha por 1 segundo e, finalmente, a luz verde acende.
No programa, primeiro declaramos os pinos (2,3…10) como saída em void setup () para 9 LEDs (três de cada lado, ou seja, frente, direita e esquerda).
void setup() {
  // configurar os pinos de saída
  pinMode(2,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(7,OUTPUT);
  pinMode(8,OUTPUT);
  pinMode(9,OUTPUT);
  pinMode(10,OUTPUT);
}
Em seguida, na função void loop() escrevemos o código para que os semáforos sejam ligados e desligados na sequência, como mencionado acima.
void loop() 
{
  digitalWrite(4,1);
  digitalWrite(5,1);
  digitalWrite(8,1);
  digitalWrite(2,0);
  digitalWrite(6,0);  //permite o primeiro conjunto de sinais
  digitalWrite(3,0);
  digitalWrite(7,0);
  digitalWrite(10,0);
  digitalWrite(9,0);
  delay(5000);
  .... ......
  ..... ......
Primeiro, o lado superior/frontal é aberto (verde), enquanto os outros dois lados (isto é, lado esquerdo e lado direito) permanecem fechados com o sinal vermelho, com um atraso de 5 segundos. Em seguida, a luz amarela é acesa no lado direito por 1 segundo, seguida pela luz verde, deixando os outros dois lados (isto é, o lado superior e o esquerdo são vermelhos) fechados com luz vermelha e atraso de 5 segundos. Em seguida, o amarelo do lado esquerdo brilha por 1 segundo, seguido pelo verde, deixando o lado direito e vermelho do lado direito com atraso de 5 segundos. Esse processo é executado em loop na função void loop() para processo contínuo. Aqui, podemos modificar os atrasos nos quais as luzes vermelha, amarela e verde permanecem acesas e apagadas.
O código completos do Arduino para este projeto de semáforo são fornecidos abaixo.
Código:
void setup() {
  // configurar os pinos de saída
  pinMode(2,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(7,OUTPUT);
  pinMode(8,OUTPUT);
  pinMode(9,OUTPUT);
  pinMode(10,OUTPUT);
}

void loop()
{
  digitalWrite(4,1);
  digitalWrite(5,1);
  digitalWrite(8,1);
  digitalWrite(2,0);
  digitalWrite(6,0);  //permite o primeiro conjunto de sinais
  digitalWrite(3,0);
  digitalWrite(7,0);
  digitalWrite(10,0);
  digitalWrite(9,0);
  delay(5000);
 
  digitalWrite(6,1);     //habilita o amarelo
  digitalWrite(5,0);
  delay(1000);
 
  digitalWrite(2,1);
  digitalWrite(8,1);
  digitalWrite(7,1);
  digitalWrite(3,0);    //habilita o segundo conjunto de sinais
  digitalWrite(6,0);
  digitalWrite(9,0);
  digitalWrite(5,0);
  digitalWrite(10,0);
  digitalWrite(4,0);
  delay(5000);
 
  digitalWrite(9,1);          //habilita amarelo
  digitalWrite(8,0);      
  delay(1000);
 
  digitalWrite(5,1);
  digitalWrite(2,1);
  digitalWrite(10,1);
  digitalWrite(6,0);
  digitalWrite(8,0);           //ativa o terceiro conjunto de sinais
  digitalWrite(4,0);
  digitalWrite(7,0);
  digitalWrite(3,0);
  digitalWrite(4,0);
  digitalWrite(9,0);
  delay(5000);
 
  digitalWrite(3,1);           //habilita amarelo
  digitalWrite(2,0);
  delay(1000);
}

Visits: 1 Visits: 1191525