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.
Quando trabalhamos com bancos de dados, muitas vezes precisamos gerar números sequenciais para nossos resultados. Isso pode ser útil para diversas finalidades, como paginação, relatórios ou simplesmente para identificar…
Artigo, Avançados, Banco de dados, Iniciantes, Intermediários, Postgres
Trabalhar com intervalos de datas é uma necessidade comum em aplicações web, especialmente em sistemas que lidam com eventos, agendamentos ou relatórios. Neste artigo, vamos explorar como usar o operador BETWEEN entre…