Aprendendo sobre Ângulos com Arduino: Projeto Prático com Servo Motor e LEDs
Aprendendo sobre Ângulos com Arduino: Projeto Prático com Servo Motor e LEDs
Introdução
Aprender sobre ângulos pode ser muito mais interessante quando unimos teoria e prática. Neste artigo, vamos explorar um projeto com Arduino que ajuda a entender os conceitos de ângulos de forma interativa. O projeto consiste em controlar um servo motor usando um potenciômetro e acender LEDs diferentes conforme a posição angular do servo.
Quando o servo estiver em 0°, um LED verde acenderá; em 45°, um LED vermelho; em 90°, um LED amarelo; em 135°, um LED azul; e em 180°, um LED branco. Dessa forma, além de aprender sobre eletrônica e programação, você reforçará seu conhecimento sobre medidas angulares.
Materiais Necessários
Para realizar este projeto, você precisará dos seguintes componentes:
1 Arduino (Uno, Nano ou similar)
1 Servo Motor (SG90 ou equivalente)
1 Potenciômetro (10kΩ)
5 LEDs (verde, vermelho, amarelo, azul e branco)
5 Resistores (220Ω)
Protoboard e jumpers
Montagem do Circuito
Siga os passos abaixo para montar o circuito:
Servo Motor
Conecte o fio vermelho do servo ao 5V do Arduino.
Conecte o fio marrom/pret ao GND.
Conecte o fio amarelo/laranja ao pino PWM ~9.
Potenciômetro
Conecte um terminal externo ao 5V e o outro ao GND.
O terminal central (cursor) ao pino A0 (entrada analógica).
LEDs
Conecte o ânodo (+) de cada LED (perna longa) a um resistor de 220Ω.
Conecte os resistores aos pinos digitais:
LED Verde → 2
LED Vermelho → 3
LED Amarelo → 4
LED Azul → 5
LED Branco → 6
Conecte os cátodos (-) (pernas curtas) ao GND.
Programação no Arduino IDE
O código abaixo lê o valor do potenciômetro, converte para um ângulo (0° a 180°), move o servo e acende o LED correspondente.
#include <Servo.h> Servo meuServo; const int potPin = A0; const int ledVerde = 2; const int ledVermelho = 3; const int ledAmarelo = 4; const int ledAzul = 5; const int ledBranco = 6; void setup() { meuServo.attach(9); pinMode(ledVerde, OUTPUT); pinMode(ledVermelho, OUTPUT); pinMode(ledAmarelo, OUTPUT); pinMode(ledAzul, OUTPUT); pinMode(ledBranco, OUTPUT); Serial.begin(9600); } void loop() { int valorPot = analogRead(potPin); // Lê o valor do potenciômetro (0-1023) int angulo = map(valorPot, 0, 1023, 0, 180); // Converte para ângulo (0°-180°) meuServo.write(angulo); // Move o servo // Desliga todos os LEDs antes de acender o correto digitalWrite(ledVerde, LOW); digitalWrite(ledVermelho, LOW); digitalWrite(ledAmarelo, LOW); digitalWrite(ledAzul, LOW); digitalWrite(ledBranco, LOW); // Acende o LED conforme o ângulo if (angulo < 22) { // Margem de erro para 0° digitalWrite(ledVerde, HIGH); } else if (angulo >= 22 && angulo < 67) { // ~45° digitalWrite(ledVermelho, HIGH); } else if (angulo >= 67 && angulo < 112) { // ~90° digitalWrite(ledAmarelo, HIGH); } else if (angulo >= 112 && angulo < 157) { // ~135° digitalWrite(ledAzul, HIGH); } else { // ~180° digitalWrite(ledBranco, HIGH); } Serial.print("Ângulo: "); Serial.print(angulo); Serial.println("°"); delay(15); // Pequeno atraso para estabilidade }
Aprendendo sobre Ângulos com o Projeto
Este projeto permite visualizar e compreender conceitos importantes:
Medidas Angulares
O servo motor gira em um intervalo de 0° a 180°, permitindo a visualização de diferentes ângulos.
Os LEDs ajudam a identificar posições-chave como 45°, 90° e 135°.
Relação entre Potenciômetro e Ângulo
O potenciômetro converte um movimento físico (rotação) em um sinal elétrico, que é mapeado para um ângulo.
Condições e Lógica de Programação
O uso de
if-else
demonstra como tomar decisões com base em intervalos angulares.
Aplicações Práticas
Esse conceito pode ser usado em robótica, automação e sistemas de controle.
Conclusão
Com este projeto simples, é possível aprender de forma prática e divertida sobre ângulos, programação e eletrônica. O Arduino oferece uma plataforma acessível para experimentos educativos, tornando o aprendizado mais interativo e eficiente.
Comentários
Postar um comentário