Approved Reseller
Approved Reseller
En este pequeño tutorial veremos cómo conectar un servomotor MG995 o SG5010 de posición con rango de 180 grados a una tarjeta Arduino, también encontrarás un código de programación para tus primeras pruebas.
Los servomotores son dispositivos electromecánicos que tienen la capacidad de controlar la posición angular de su eje, su funcionamiento consiste en recibir la información del ángulo deseado a través del ancho de pulso de una señal PWM para llevar al eje a dicha posición, por lo regular constan de un motor de corriente directa, un tren de engranes reductores y una tarjeta de control, todo contenido en una caja de plástico.
Este ejemplo está pensado para los servos MG995 y SG5010 pero es posible que funcione para muchos modelos más y para implementar la señal de control utilizaremos la biblioteca . Cabe mencionar que este servomotor NO se puede alimentar directamente del Pin 5V en nuestra tarjeta Arduino Uno ya que demanda demasiada corriente, recomendamos siempre utilizar una fuente externa.
Cargamos el código y observamos como podemos controlar la posición angular del eje del motor con el potenciómetro.
//* Controlling a servo position using a potentiometer (variable resistor) by Michal Rinott modified on 8 Nov 2013 by Scott Fitzgerald http://www.arduino.cc/en/Tutorial/Knob */ #include Servo myservo; // Creamos un objeto de clase "Servo" llamado "myservo" para controlar nuestro servomotor int potpin = 0; // Pin analógico al cual conectamos la señal de nuestro potenciómetro int val; // variable que contendrá el valor leido en el pin del potenciómetro y posteriormente el valor que escribiremos al servomotor void setup() { myservo.attach(9); // Adjuntamos el objetoque creamos al pin 9, recuerda que solo puedes utilizar pines PWM } void loop() { val = analogRead(potpin); // leemos el valor del potenciómetro (valor entre 0 y 1023) val = map(val, 0, 1023, 0, 180); // escalamos el valor para usarlo con el servo (valor entre 0 y 180) myservo.write(val); // establecemos la posición deseada del servo delay(15); // esperamos a que el servo llegue a dicha posición }
Referencias:
https://www.arduino.cc/reference/en/libraries/servo/
Para seguir leyendo…