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

Formas de Paginação de Dados no Laravel

Formas de Paginação de Dados no Laravel

No desenvolvimento de aplicações web, a paginação de dados é um recurso fundamental quando se trabalha com grandes volumes de... Leia mais

Entendendo as Diferenças Entre Programação Orientada a Objetos e Funcional: Java vs. Elixir

Entendendo as Diferenças Entre Programação Orientada a Objetos e Funcional: Java vs. Elixir

A escolha entre programação orientada a objetos (OOP) e programação funcional (FP) é mais do que uma preferência de estilo;... Leia mais

Construir array de texto a partir de um array.

Construir array de texto a partir de um array.

No dia de hoje(17/08/2022) me deparei com o seguinte problema onde recebiamos um array javascript contendo textos e cujas chaves... Leia mais

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