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

Guia de Deploy de Aplicação Laravel com Nginx em uma VPS com Ubuntu e HTTPS em um VPS

Guia de Deploy de Aplicação Laravel com Nginx em uma VPS com Ubuntu e HTTPS em um VPS

Neste post, você aprenderá a fazer o deploy de uma aplicação Laravel em uma VPS rodando Ubuntu com o servidor... Leia mais

Como ignorar permissões do Linux em repositórios GIT.

Como ignorar permissões do Linux em repositórios GIT.

Recentemente me deparei com um problema curioso que ocorre no GIT principalmente enquanto escrevemos código em modo root e depois... Leia mais

A função WITH RECURSIVE no PostgreSQL

A função WITH RECURSIVE no PostgreSQL

A função WITH RECURSIVE no PostgreSQL é uma ferramenta poderosa para a execução de consultas recursivas em bancos de dados.... Leia mais

De jQuery para Alpine.js: Um Guia Prático com Laravel e Componentes Reutilizáveis

De jQuery para Alpine.js: Um Guia Prático com Laravel e Componentes Reutilizáveis

Se você vem do jQuery e quer modernizar seus projetos com Alpine.js, esse tutorial é pra você. Vamos mostrar como... Leia mais