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°).
#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
Postar um comentário