Controlando um Semáforo e Servo Motor com Arduino: Um Projeto Prático para Iniciantes
Paulo Bolsanello·09 Nov 2024·4 min de leitura
A robótica e a eletrônica são áreas fascinantes que combinam criatividade e lógica para construir soluções incríveis. Hoje, vamos explorar um projeto simples e educativo com Arduino, que é perfeito para ensinar adolescentes sobre conceitos básicos de programação, automação e controle.
Neste projeto, vamos simular um sistema de semáforo com três LEDs (vermelho, amarelo e verde) e um servo motor que controlará uma cancela, abrindo-a apenas quando o LED verde estiver aceso. Este é um ótimo exercício para quem está começando a explorar o mundo da programação e eletrônica.
Materiais Necessários
Para construir este projeto, você precisará de:
1 Arduino Uno ou similar;
3 LEDs (vermelho, amarelo e verde);
3 resistores de 220 ohms;
1 Servo motor (modelo SG90 ou similar);
Jumpers para conexão;
Protoboard.
Montagem do Circuito
Conexão dos LEDs:
Conecte os LEDs aos pinos digitais 2, 3 e 4 do Arduino.
Use resistores de 220 ohms em série com cada LED para limitar a corrente.
Conexão do Servo Motor:
Conecte o fio de sinal do servo motor ao pino digital 6.
O fio de alimentação (vermelho) vai ao 5V, e o fio de terra (preto) ao GND do Arduino.
Protoboard:
Monte tudo na protoboard para facilitar as conexões e organizar os componentes.
Diagrama esquemático:
Código para o Arduino
Aqui está o código que você pode carregar no Arduino para controlar o sistema:
#include <Servo.h> // Inclui a biblioteca Servo para controlar o servo motor
// Declaração do servo motor
Servo cancela;
// Pinos para os LEDs
const int ledVerde = 2;
const int ledAmarelo = 3;
const int ledVermelho = 4;
// Variáveis para o estado da cancela
const int posAberta = 90; // Posição da cancela aberta
const int posFechada = 0; // Posição da cancela fechada
void setup() {
// Configuração dos pinos dos LEDs como saída
pinMode(ledVerde, OUTPUT);
pinMode(ledAmarelo, OUTPUT);
pinMode(ledVermelho, OUTPUT);
// Configuração do servo motor
cancela.attach(6); // Associa o servo motor ao pino digital 6
cancela.write(posFechada); // Define a posição inicial da cancela como fechada
}
void loop() {
// Simulação de sequência de semáforo
digitalWrite(ledVermelho, HIGH); // Acende o LED vermelho
digitalWrite(ledAmarelo, LOW);
digitalWrite(ledVerde, LOW);
cancela.write(posFechada); // Mantém a cancela fechada
delay(3000); // Aguarda 3 segundos
digitalWrite(ledAmarelo, HIGH); // Acende o LED amarelo
digitalWrite(ledVermelho, LOW);
digitalWrite(ledVerde, LOW);
delay(1000); // Aguarda 1 segundo
digitalWrite(ledVerde, HIGH); // Acende o LED verde
digitalWrite(ledAmarelo, LOW);
digitalWrite(ledVermelho, LOW);
cancela.write(posAberta); // Abre a cancela
delay(3000); // Aguarda 3 segundos
// Volta para a posição inicial (vermelho)
digitalWrite(ledVermelho, HIGH); // Acende o LED vermelho
digitalWrite(ledAmarelo, LOW);
digitalWrite(ledVerde, LOW);
cancela.write(posFechada); // Fecha a cancela
delay(3000); // Aguarda 3 segundos
}
Como Funciona
LEDs e Semáforo:
O código simula o funcionamento de um semáforo: vermelho -> amarelo -> verde.
Quando o LED verde está aceso, ele indica que a passagem está liberada.
Servo Motor e Cancela:
O servo motor simula a cancela, movendo-a para abrir ou fechar conforme a luz verde ou vermelha do semáforo.
Sequência:
Vermelho: Cancela fechada.
Amarelo: Indicação de atenção.
Verde: Cancela aberta.
Dicas para a Aula de Robótica
Explique os conceitos: Antes de montar o projeto, explique como os LEDs, resistores e servo motor funcionam.
Incentive a experimentação: Peça aos alunos para modificar o código, como alterar os tempos de espera ou adicionar um buzzer para sinalização sonora.
Divida em equipes: Incentive o trabalho em grupo para montagem e programação.
Este projeto simples é uma ótima introdução ao mundo da robótica e da programação com Arduino. Ele ensina conceitos básicos de controle de hardware e lógica de programação, além de ser divertido e envolvente. Com um pouco de prática, os alunos poderão expandir o sistema para incluir novos recursos, como sensores ou controle remoto.
Vamos lá a mais um estudo de caso. Na tela abaixo temos um crud simples cujo frontend foi feito com Vanilla JavaScript e assim surgiu-se a necessidade de que ao clicar no botão atualiza o evento ONCLICK do botão…
Ao trabalhar com migrations no Laravel, uma tarefa comum é definir valores padrão para colunas em tabelas de banco de dados. Uma situação específica é definir o ano atual como valor padrão para uma coluna. Este tutorial…
Avançados, Banco de dados, Iniciantes, Intermediários, Laravel, php, Postgres