Controlar servomotor con Arduino. Varios ejemplos

En este proyecto, controlaremos el movimiento de un servomotor usando diferentes métodos con Arduino.

Un servomotor es un dispositivo parecido a un motor DC que contiene engranajes para regular su velocidad y ángulo de giro. Podemos controlar su ángulo de giro, que va de 0 a 180 grados. Además un servo es capaz de mantenerse estable en cualquier ángulo dentro de su rango. El voltaje ideal de funcionamiento de un servo está entre 5 y 7V.


Se va a utilizar el servomotor Tower Pro SG90 cuyas especificaciones se encuentran aquí: http://akizukidenshi.com/download/ds/towerpro/SG90.pdf

Materiales
  • 1 servomotor TowerPro SG90
  • 1 potenciómetro de cualquier valor
  • 2 resistencias de 10k
  • 2 pulsadores
  • Cables
  • Protoboard o breadboard
  • Arduino

El servo posee un circuito de control interno, que se encarga de posicionar el dispositivo en el ángulo que nosotros le ordenemos. Esto se logra mediante una señal PWM con un ancho de pulso de 20 ms (50Hz):
  • Si la señal PWM tiene un ancho de pulso entre 0.5 - 1 ms el ángulo corresponde a 0°
  • Si la señal PWM tiene un ancho de pulso de 1.5 ms el servo está en neutro (90 grados)
  • Si la señal PWM tiene un ancho de pulso entre 1.6 - 2 ms el ángulo corresponde a 180°



En cuanto a las conexiones, basta con conectar el servo directamente al Arduino, no es necesario agregar ninguna resistencia u otro componente. El cable rojo va a VCC (5V), el cable marrón o negro a GND y finalmente el cable naranja o amarillo va a cualquier pin PWM.

En este proyecto aprenderemos a controlar el ángulo de un servo utilizando 3 métodos. El primero es hacerlo de forma automática en donde solamente se necesitan el Arduino y el servo, sin la necesidad de añadir algún componente externo. El programa escribe ángulos que van desde 0 hasta 180 grados y luego desde 180 hasta 0 grados de manera repetitiva.



El código para este ejemplo se puede descargar aquí: https://drive.google.com/open?id=0Bxr9tDhyoU1ZWEJsdnNpSkw5Qlk



El segundo método es a través de un potenciómetro. Dependiendo hacia dónde se gira el potenciómetro, el servo girará en esa misma dirección. Como el potenciómetro es una resistencia variable, se puede utilizar para escribir ángulos en el servomotor.


El código para este ejemplo se puede descargar aquí: https://drive.google.com/open?id=0Bxr9tDhyoU1ZWEhqSjBmSzM0T2M



El tercer método es con el uso de pulsadores. En este caso se utilizan dos pulsadores, uno para aumentar el ángulo y otro para disminuir el ángulo cada vez que se presione alguno de ellos.


El código para este ejemplo se puede descargar aquí: https://drive.google.com/open?id=0Bxr9tDhyoU1ZZ0kwY2FhVDR6Zkk


Comentarios

  1. Reverendo pendejo, tus esquemáticos están mal, el servo no va al pin 7 va al pin 6

    ResponderBorrar
  2. Hola, en el último ejemplo cómo puedo hacer para que al accionar el botón gire 90° y al soltarlo vuelva a 0°?

    ResponderBorrar
  3. no andes subiendo mamadas XD dedicate a otra cosa hijo.

    ResponderBorrar
  4. me parece un buen aporte!! sigue adelante....

    ResponderBorrar
  5. Buenos dias quisiera que por medio de una pulsacion el servo gire 180 grados y regrese en 3 segundos se puede lograr con arduino

    ResponderBorrar
  6. es un aporte estupendo, pero no consigo que el circuito con potenciometro me funcione, tiene que ser de una medida en concreto el potenciometro?

    ResponderBorrar

Publicar un comentario