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 , 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:

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

  2. Potenciômetro

    • Conecte um terminal externo ao 5V e o outro ao GND.

    • O terminal central (cursor) ao pino A0 (entrada analógica).

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

cpp
Copy
Download
#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:

  1. 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°.

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

  3. Condições e Lógica de Programação

    • O uso de if-else demonstra como tomar decisões com base em intervalos angulares.

  4. 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

Postagens mais visitadas