Introdução
A Franzininho C0 é uma placa de desenvolvimento compacta e versátil, que conta com 16 GPIOs permitindo diversas aplicações em projetos. Neste tutorial, vamos explorar como utilizar esses GPIOs como saídas para criar um controlador de semáforo.
Neste projeto, você aprenderá a manipular LEDs para simular um semáforo.
Circuito
Vamos começar com a montagem do circuito na protoboard.
Material e Montagem da placa
- Franzininho C0
- Leds: vermelho, verde e amarelo
- Protoboard
- 3 resistores de 1 kΩ
- Jumpers
Pinout da Franzininho C0
Para definir os pinos utilizados, precisamos consultar o pinout da placa:
Acesse a documentação completa em:
https://docs.franzininho.com.br/docs/franzininho-c0/franzininho-c0-board
Montagem do Circuito
Com a protoboard em mãos e a placa Franzininho C0 já inserida nela, siga as instruções abaixo para conectar os LEDs:
- Pegue o LED verde (por exemplo) e insira-o na protoboard de forma que um terminal fique à direita da divisão central e o outro à esquerda.
- O terminal menor do LED, chamado de cátodo, será conectado ao Terra.
- O terminal mais longo do LED, chamado de ânodo, será conectado ao resistor.
- Conecte o resistor ao jumper, em seguida conecte o jumper ao pino A5 da placa.
Para se orientar quanto aos pinos da Franzininho C0, basta visualizar o pinout da placa acima.
Siga os mesmos passos e conecte o LED amarelo ao pino A6 e o LED vermelho ao pino A7. A montagem da placa ficará conforme mostrado na Figura 1:
Nota: É importante tomar cuidado com a polaridade do LED. O terminal mais longo (ânodo) deve ser conectado ao lado positivo da alimentação (pino da placa), e o terminal mais curto (cátodo) ao lado negativo (terra ou GND):
Código
Para simular um semáforo utilizando a Franzininho C0, utilizaremos o código abaixo:
//mapeamento de pinos
#define ledG A5 // Pino do LED verde
#define ledY A6 // Pino do LED amarelo
#define ledR A7 // Pino do LED vermelho
void setup() {
// Configura o pino do LED como saída
pinMode(ledG, OUTPUT);
pinMode(ledY, OUTPUT);
pinMode(ledR, OUTPUT);
}
void loop() {
digitalWrite(ledR, HIGH);
delay(3000);
digitalWrite(ledR, LOW);
digitalWrite(ledG, HIGH);
delay(3000);
digitalWrite(ledG, LOW);
digitalWrite(ledY, HIGH);
delay(2000);
digitalWrite(ledY, LOW);
}Obs2.: Antes da IDE iniciar o carregamento do programa, a Franzininho C0 deve executar o bootloader, caso contrário ocorrerá um erro.
Explicação do Código
Antes do setup(), são criadas algumas variáveis globais. Usando #define, os pinos A5, A6 e A7 são definidos como ‘ledG’, ‘ledY’ e ‘ledR’, correspondendo aos LEDs verde, amarelo e vermelho, respectivamente.
//mapeamento de pinos
#define ledG A5 // Pino do LED verde
#define ledY A6 // Pino do LED amarelo
#define ledR A7 // Pino do LED vermelhoNo setup(), configuramos os pinos conectados aos LEDs como saídas.
void setup() {
// Configura o pino do LED como saída
pinMode(ledG, OUTPUT);
pinMode(ledY, OUTPUT);
pinMode(ledR, OUTPUT);
}No loop(), começamos definindo o LED vermelho como aceso e mantendo esse estado por 3 segundos. Após esse período, o LED vermelho é apagado e o verde é aceso, permanecendo aceso também por 3 segundos. No fim desse tempo, o LED verde apaga e o LED amarelo acende, ficando aceso por 2 segundos, já que a luz amarela do semáforo permanece acesa por menos tempo.
void loop() {
digitalWrite(ledR, HIGH);
delay(3000);
digitalWrite(ledR, LOW);
digitalWrite(ledG, HIGH);
delay(3000);
digitalWrite(ledG, LOW);
digitalWrite(ledY, HIGH);
delay(2000);
digitalWrite(ledY, LOW);
}Ao executar o código, conforme demonstrado no vídeo, podemos observar que o projeto simula com sucesso o funcionamento de um semáforo.
Conclusão
Neste tutorial, exploramos as capacidades da Franzininho C0, utilizando alguns dos seus 16 GPIOs para criar um controlador de semáforo funcional. Aprendemos a definir e controlar LEDs para simular as luzes de trânsito verde, amarelo e vermelho.
Este projeto possibilitou uma aplicação prática de como os GPIOs podem ser usados em aplicações do mundo real.
Desafio
Neste desafio, você irá incluir um botão que ao ser pressionado, o sinal para veículos muda para vermelho após 2 segundos, permitindo que os pedestres atravessem.






