PauloRB.dev

Desenvolvedor de Software

Controlando um Semáforo e Servo Motor com Arduino: Um Projeto Prático para Iniciantes | PauloRB.dev Controlando um Semáforo e Servo Motor com Arduino: Um Projeto Prático para Iniciantes – PauloRB.dev
Controlando um Semáforo e Servo Motor com Arduino: Um Projeto Prático para Iniciantes

Controlando um Semáforo e Servo Motor com Arduino: Um Projeto Prático para Iniciantes

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

  1. 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.
  2. 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.
  3. 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

  1. 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.
  2. 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.
  3. 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.

Mais Posts

Converter Date Time String para data no formato YYYY-MM-DD

Converter Date Time String para data no formato YYYY-MM-DD

No post de hoje, vamos abordar uma necessidade comum em programação: como obter uma data no formato ANO-MÊS-DIA (YYYY-MM-DD) a... Leia mais

Instalação e Configuração do OpenSSH no Ubuntu

Instalação e Configuração do OpenSSH no Ubuntu

Este tutorial rápido e objetivo vai te mostrar como instalar e configurar o OpenSSH no Ubuntu, além de incluir algumas... Leia mais

Script para automatizar instalações de ferramentas em ambiente LINUX

Script para automatizar instalações de ferramentas em ambiente LINUX

Para agilizar as instalações das minhas ferramentas de desenvolvimento quando for necessário resolvi montar o seguinte script: Basta colocar o... Leia mais

Como Usar a Porta 443 para Conexões SSH com o Bitbucket e Contornar Restrições de Rede

Como Usar a Porta 443 para Conexões SSH com o Bitbucket e Contornar Restrições de Rede

Se você já se deparou com a frustrante mensagem de erro “ssh: connect to host bitbucket.org port 22: Network is... Leia mais