TUTORIAL:
SEMÁFORO COM
DISPLAY DE 7
SEGMENTOS
@rodrigowsanches rodrigowsanches@[Link]
INTRODUÇÃO:
Este projeto simula um semáforo com um
display de 7 segmentos para exibir a contagem
regressiva antes da troca de sinais. Utiliza três
LEDs representando as cores do semáforo
(vermelho, amarelo e verde) e um Arduino para
controlar a sequência.
Lista de materiais :
1 Arduino Uno
1 Display de 7 Segmentos (Catodo Comum)
8 Resistores de 220Ω (para os segmentos do display)
3 LEDs (vermelho, amarelo e verde)
3 Resistores de 220Ω (para os LEDs)
Jumpers e Protoboard
@rodrigowsanches rodrigowsanches@[Link]
Esquema de ligação:
Conexão dos LEDs (Semáforo)
→
LED vermelho Pino 10 do Arduino
→
LED amarelo Pino 11 do Arduino
→
LED verde Pino 12 do Arduino
Cada LED deve ter um resistor de 220Ω ligado ao GND.
Conexão do Display de 7 Segmentos
a → Pino 2 do Arduino
b → Pino 3 do Arduino
c → Pino 4 do Arduino
d → Pino 5 do Arduino
e → Pino 6 do Arduino
f → Pino 7 do Arduino
g → Pino 8 do Arduino
DP (ponto decimal, não utilizado)
Cátodo Comum → GND do Arduino
@rodrigowsanches rodrigowsanches@[Link]
Código do Projeto:
#include <SevSeg.h>
SevSeg sevseg;
const int redLED = 10;
const int yellowLED = 11;
const int greenLED = 12;
void setup() {
byte numDigits = 1;
byte digitPins[] = {};
byte segmentPins[] = {2, 3, 4, 5, 6, 7, 8, 9};
[Link](COMMON_CATHODE, numDigits, digitPins, segmentPins);
[Link](90);
pinMode(redLED, OUTPUT);
pinMode(yellowLED, OUTPUT);
pinMode(greenLED, OUTPUT);
digitalWrite(redLED, HIGH);
}
void loop() {
contar(8, redLED, greenLED); // Contagem para o vermelho desligar e verde acender
contar(8, greenLED, yellowLED); // Contagem para o verde desligar e amarelo acender
delay(1000); // Amarelo fica aceso por 1 segundo
digitalWrite(yellowLED, LOW);
digitalWrite(redLED, HIGH); // Retorna ao vermelho
}
void contar(int inicio, int ledAtual, int proximoLED) {
digitalWrite(proximoLED, LOW);
digitalWrite(ledAtual, HIGH);
for (int i = inicio; i >= 0; i--) {
[Link](i);
[Link]();
delay(1000);
}
digitalWrite(ledAtual, LOW);
digitalWrite(proximoLED, HIGH);
}
@rodrigowsanches rodrigowsanches@[Link]
Como Funciona o Código:
O LED vermelho acende e o display conta de 8 até 0.
O LED verde acende, o vermelho apaga, e o display conta de 8 até 0.
O LED amarelo acende por 1 segundo.
O LED vermelho acende novamente e o ciclo reinicia.
Conclusão:
Este projeto é uma excelente introdução ao uso de displays
de 7 segmentos com Arduino, além de ensinar sobre controle
de LEDs e temporização. Pode ser expandido para incluir
sensores de trânsito ou botões para pedestres.
@rodrigowsanches rodrigowsanches@[Link]