Introdução
Já quis construir um semáforo, mas não tinha os componentes à mão? Com o Velxio, você pode simular um semáforo completo baseado em Arduino diretamente no seu navegador. Este projeto usa três LEDs (vermelho, amarelo e verde) conectados a um Arduino Uno para imitar a sequência clássica de um semáforo: vermelho → amarelo → verde → amarelo → vermelho. É um projeto perfeito para iniciantes aprenderem sobre saídas digitais, temporização e lógica sequencial.
Montagem do Circuito
Vamos dar uma olhada no circuito. O diagrama abaixo mostra a fiação completa:

Componentes
- Arduino Uno – o cérebro da operação.
- LED Vermelho – conectado ao pino digital 13.
- LED Amarelo – conectado ao pino digital 12.
- LED Verde – conectado ao pino digital 11.
- Resistores – cada LED precisa de um resistor limitador de corrente (tipicamente 220Ω) em série com seu ânodo. No Velxio, os LEDs integrados já possuem resistores internos, então você não precisa adicioná-los manualmente.
Detalhes da Fiação
Cada LED tem dois terminais: ânodo (perna mais longa, marcada como pino “A”) e cátodo (perna mais curta, marcada como pino “C”). A fiação é simples:
- LED Vermelho: Ânodo para o pino 13 do Arduino via um fio vermelho (
#ff0000). Cátodo para o GND do Arduino via um fio preto. - LED Amarelo: Ânodo para o pino 12 do Arduino via um fio amarelo (
#ffaa00). Cátodo para o GND. - LED Verde: Ânodo para o pino 11 do Arduino via um fio verde (
#00ff00). Cátodo para o GND.
Todos os três LEDs compartilham a mesma conexão GND no Arduino. Esta é uma configuração de terra comum.
Explicação do Código
Agora vamos examinar o código que faz as luzes mudarem. Abra o editor de código no Velxio:

// Traffic Light Simulator
// Red -> Yellow -> Green -> Yellow -> Red
const int RED_PIN = 13;
const int YELLOW_PIN = 12;
const int GREEN_PIN = 11;
void setup() {
pinMode(RED_PIN, OUTPUT);
pinMode(YELLOW_PIN, OUTPUT);
pinMode(GREEN_PIN, OUTPUT);
}
void loop() {
// Red light
digitalWrite(RED_PIN, HIGH);
delay(3000);
digitalWrite(RED_PIN, LOW);
// Yellow light
digitalWrite(YELLOW_PIN, HIGH);
delay(1000);
digitalWrite(YELLOW_PIN, LOW);
// Green light
digitalWrite(GREEN_PIN, HIGH);
delay(3000);
digitalWrite(GREEN_PIN, LOW);
// Yellow light again
digitalWrite(YELLOW_PIN, HIGH);
delay(1000);
digitalWrite(YELLOW_PIN, LOW);
}
Como Funciona
- Definição dos Pinos: Definimos constantes para os três pinos:
RED_PIN = 13,YELLOW_PIN = 12,GREEN_PIN = 11. Eles correspondem à fiação. - Setup: Em
setup(), configuramos todos os três pinos comoOUTPUTusandopinMode(). Isso instrui o Arduino a enviar tensão através desses pinos. - Loop: A função
loop()é executada indefinidamente. Ela segue esta sequência:- Acende o LED vermelho (
HIGH), espera 3 segundos, apaga (LOW). - Acende o LED amarelo, espera 1 segundo, apaga.
- Acende o LED verde, espera 3 segundos, apaga.
- Acende o LED amarelo novamente, espera 1 segundo, apaga.
- Então o loop se repete a partir da luz vermelha.
- Acende o LED vermelho (
Isso cria o padrão familiar de um semáforo.
Conceitos-Chave para Estudantes
- Saídas Digitais:
digitalWrite(pin, HIGH)define um pino para 5V (ligado),LOWdefine para 0V (desligado). - Temporização com
delay():delay(milissegundos)pausa o programa. Cuidado: enquantodelay()está em execução, o Arduino não pode fazer mais nada. - Lógica Sequencial: A ordem das operações é importante. O código é executado linha por linha, então as luzes mudam em uma sequência previsível.
- Terra Comum: Todos os LEDs compartilham a mesma conexão de terra. Isso é típico em circuitos digitais.
Problemas Comuns e Dicas de Depuração
- Números de Pinos Errados: Verifique se os números dos pinos no código correspondem à fiação. Se o LED vermelho está no pino 13, mas você escreveu
12, ele não acenderá. - Orientação do LED: LEDs são polarizados. O ânodo (perna longa) deve ser conectado ao pino do Arduino, e o cátodo (perna curta) ao GND. No Velxio, o componente LED está orientado corretamente por padrão.
- Resistores Ausentes: Na vida real, sempre use um resistor limitador de corrente (220Ω–1kΩ) em série com cada LED para evitar danos. Os LEDs integrados do Velxio incluem resistores, mas se você usar componentes personalizados, adicione-os.
delay()Bloqueante: Se você quiser adicionar botões ou sensores depois,delay()congelará o programa. Considere usarmillis()para temporização não bloqueante.
Extensões Sugeridas
Depois que o semáforo básico estiver funcionando, tente estas melhorias:
- Adicione um Botão de Pedestre: Use um botão de pressão para solicitar um sinal de travessia. Quando pressionado, o semáforo muda para vermelho, então um LED branco (travessia de pedestres) acende.
- Use
millis()em vez dedelay(): Reescreva o código para usarmillis()para temporização. Isso permite que o Arduino verifique pressionamentos de botão enquanto espera. - Adicione um Buzzer: Conecte um buzzer piezoelétrico a um pino e faça-o emitir um bipe quando a luz verde estiver prestes a ficar amarela.
- Simule uma Faixa de Pedestres: Adicione mais dois LEDs (vermelho e verde) para uma travessia de pedestres e coordene-os com os semáforos.
Experimente Você Mesmo
Pronto para construir seu próprio semáforo? Abra o exemplo no Velxio e comece a experimentar:
Abrir Exemplo de Semáforo no Velxio
Você pode editar o código, alterar a temporização ou adicionar mais LEDs. O simulador é executado inteiramente no seu navegador — sem downloads, sem hardware. Use a barra de ferramentas para compilar e executar seu código:


Se precisar adicionar novos componentes, abra o seletor de componentes:

E se quiser usar bibliotecas, o Gerenciador de Bibliotecas está a apenas um clique de distância:

Boas simulações!