Controlando 3 Servo Motores com Potenciômetros no Arduino: Um Projeto Escolar Prático

 

Controlando 3 Servo Motores com Potenciômetros no Arduino: Um Projeto Escolar Prático

Introdução

O Arduino é uma plataforma versátil e acessível, ideal para projetos educacionais que envolvem automação e robótica. Neste artigo, vamos explorar como controlar três servos motores utilizando três potenciômetros, conectados às portas analógicas A0, A1 e A2 e às portas digitais 8, 9 e 10. Esse projeto é perfeito para aulas de robótica, física e tecnologia, pois demonstra conceitos de eletrônica, programação e movimento mecânico.


Materiais Necessários

  • Arduino Uno (ou similar)

  • 3 Servo Motores (ex: SG90)

  • 3 Potenciômetros (10kΩ)

  • Jumpers (macho-macho e macho-fêmea)

  • Protoboard

  • Fonte de alimentação (bateria ou USB)


Montagem do Circuito

Conexões dos Potenciômetros

  • Potenciômetro 1: Conecte o terminal central ao pino A0 do Arduino, e os outros dois terminais a +5V e GND.

  • Potenciômetro 2: Terminal central no pino A1, demais terminais em +5V e GND.

  • Potenciômetro 3: Terminal central no pino A2, demais terminais em +5V e GND.

Conexões dos Servos

  • Servo 1: Fio de sinal no pino digital 8 do Arduino, alimentação em +5V e GND.

  • Servo 2: Fio de sinal no pino digital 9, alimentação em +5V e GND.

  • Servo 3: Fio de sinal no pino digital 10, alimentação em +5V e GND.




Programação no Arduino IDE

O código abaixo lê os valores dos potenciômetros e os converte em ângulos para os servos motores (0° a 180°).

cpp
Copy
Download
#include <Servo.h>

// Definindo os servos
Servo servo1, servo2, servo3;

// Pinos dos potenciômetros
const int pot1 = A0;
const int pot2 = A1;
const int pot3 = A2;

// Pinos dos servos
const int servoPin1 = 8;
const int servoPin2 = 9;
const int servoPin3 = 10;

void setup() {
  // Inicializando os servos
  servo1.attach(servoPin1);
  servo2.attach(servoPin2);
  servo3.attach(servoPin3);
  
  Serial.begin(9600); // Opcional: monitorar valores no Serial Monitor
}

void loop() {
  // Lendo os valores dos potenciômetros (0-1023)
  int val1 = analogRead(pot1);
  int val2 = analogRead(pot2);
  int val3 = analogRead(pot3);
  
  // Mapeando para ângulos (0-180)
  int angle1 = map(val1, 0, 1023, 0, 180);
  int angle2 = map(val2, 0, 1023, 0, 180);
  int angle3 = map(val3, 0, 1023, 0, 180);
  
  // Movendo os servos
  servo1.write(angle1);
  servo2.write(angle2);
  servo3.write(angle3);
  
  // Opcional: imprimir valores no Serial Monitor
  Serial.print("Servo 1: ");
  Serial.print(angle1);
  Serial.print(" | Servo 2: ");
  Serial.print(angle2);
  Serial.print(" | Servo 3: ");
  Serial.println(angle3);
  
  delay(15); // Pequeno atraso para suavizar o movimento
}

Aplicações em Projetos Escolares

Este projeto pode ser adaptado para diversas disciplinas e finalidades educacionais:

1. Robótica Básica

  • Braço Robótico Controlado Manualmente: Os alunos podem construir um braço robótico simples com palitos ou peças de impressão 3D, controlando cada junta com um potenciômetro.

2. Demonstrações de Física

  • Estudo de Movimento e Torque: Mostrar como pequenas alterações no potenciômetro afetam o movimento angular do servo, relacionando com conceitos de torque e velocidade.

3. Interdisciplinaridade (Arte e Tecnologia)

  • Esculturas Dinâmicas: Criar estruturas artísticas que se movem conforme os potenciômetros são ajustados, integrando arte e engenharia.

4. Projetos de Feira de Ciências

  • Simulador de Direção: Usar dois servos para movimentar um carrinho em um eixo X e Y, controlando-o com potenciômetros.

  • Controle de Câmera: Criar um sistema de pan-tilt para uma câmera ou sensor.


Conclusão

Este projeto é uma excelente introdução à automação com Arduino, permitindo que os alunos entendam na prática como sensores analógicos (potenciômetros) podem controlar atuadores (servos). Além disso, é altamente customizável, podendo ser expandido com mais servos, sensores ou até mesmo integração com outras plataformas, como Raspberry Pi.

Comentários

Postagens mais visitadas