Potenciómetro controla servomotor en Arduino

Clase 35 de 38Curso Fundamentos de Desarrollo de Hardware con Arduino

Resumen

Controla un servomotor con un potenciómetro en Arduino de forma estable y precisa. Aquí verás cómo optimizar la lectura analógica a 3.3 V con analogRead, ajustar el rango con map y evitar caídas de amperaje moviendo el potenciómetro a 3.3 V. Además, entenderás por qué una fuente externa es clave para eliminar el temblor del servo.

¿Cómo cablear potenciómetro y servo para no perder corriente?

Conecta el servomotor como antes y alimenta el potenciómetro desde la línea de 3.3 V. Esto libera la línea de 5 V, ya que el regulador del Arduino entrega alrededor de medio a un ampere máximo y el servo consume una parte importante. Al poner potenciómetro y servo en la misma línea de 5 V, el servo se vuelve menos fluido.

  • Potenciómetro a 3.3 V para no “comerse” el amperaje del 5 V.
  • Lectura analógica en A0 para el potenciómetro.
  • Servo alimentado y conectado como en el prototipo previo.
  • Mantén GNDs comunes para referencia estable.

¿Qué cambios de código hacen que el potenciómetro mueva el servo?

Se declaran variables para el pin del potenciómetro y su lectura, se elimina el ciclo for previo y se usa analogRead. Como la lectura proviene de 3.3 V, el valor analógico no llega a 1023; por eso se ajusta el mapeo con map para convertir el rango de lectura a un ángulo de 0 a 180 grados en el servo.

  • Variables: potPin en A0, potValue en 0, y ángulo en 0.
  • Lectura: usar analogRead sobre potPin.
  • Mapeo: de 0–700 a 0–180 para compensar 3.3 V.
  • Escritura: sustituir writeValue por la variable ángulo.
int potPin = A0; int potValue = 0; int angulo = 0; // En el *loop*: potValue = analogRead(potPin); // Lectura del potenciómetro (3.3 V) angulo = map(potValue, 0, 700, 0, 180); // Ajuste de rango por 3.3 V servo.write(angulo); // Servo previamente configurado

¿Cómo ajustar el rango del ADC a 3.3 V?

Hay dos caminos: cambiar la referencia del ADC o asumir que la lectura máxima no será 1023. Aquí se opta por lo segundo: se define un tope aproximado de 700 para el mapeo. Así, el movimiento del potenciómetro recorre de forma natural los 0–180 grados del servo.

¿Cómo probar el sketch rápidamente?

  • Cargar el sketch y esperar a que termine de “uploadear”.
  • Girar el potenciómetro y observar la respuesta del servo.
  • Confirmar que el rango cubre el movimiento esperado.

¿Por qué el servo tiembla y cuál es la solución?

Si el servo “tiembla” al quedarse quieto, es por falta de corriente disponible: el Arduino no alcanza a alimentar establemente el servo cuando comparte línea con otros elementos y su regulador es limitado. El síntoma es un movimiento errático, como si el servo “tuviera frío”.

  • Causa: consumo elevado del servo frente al regulador del Arduino (≈0.5–1 A máx.).
  • Efecto: caídas de tensión y jitter en reposo.
  • Solución: usar fuente externa para el servo y mantener tierras comunes.

¿Quieres que el próximo proyecto con sensor PIR y buzzer te salga a la primera? Cuéntame tus dudas y qué te gustaría probar a continuación.