CONTROL DE SERVOS CON ARDUINO

En esta entrada vamos a aprender a controlar un servo motor



Resultado de imagen de servomotor

con este tipo de motores podremos acceder a la posición deseada y mantenernos en ella.

Los servos que vamos a utilizar nos permiten un recorrido de 180º.

Tenemos tres cables uno se conecta a GND otro a alimentación y otro a una señal  PWM de la placa arduino
Resultado de imagen de cables servomotor










La conexión nos quedará:






Qué es una señal PWM?

PWM son siglas en inglés que significan Pulse Width Modulation (Modulación de ancho de pulso).
La modulación de ancho de pulso está formada por una señal de onda cuadrada que no siempre tiene la misma relación entre el tiempo que esta en alto y el tiempo que está en bajo.

Resultado de imagen de imagen ciclo pwm


Para controlar los servos podemos utilizar una libreria de arduino, servo.h. En esta libreria ya están implementadas las funciones que necesitaremos para utilizar el motor.

definiremos un objeto de tipo servo
Servo servoMotor;  // la hemos llamado servoMotor

Debemos indicar en que pin digital PWM conectamos el servo, por ejemplo en 3, utilizamos el método attach  definido en la librería 

servoMotor.attach(3);


A continuación pasamos a  implemetar nuestro programa de prueba, podemos indicar al servo la posición que debe moverse, mediante el método

 servoMotor.write(0);  // mueve el motor a la posición 0º

Con todos estos datos construiremos un programa que mueva el motor de 0 la secuencia 0º, 90º 180º,
espera al menos un segundo cuando alcances una posición.

Para finalizar vamos a unir el sensor de distancia y el servo, nuestro objetivo es mover el servo desde 0º a 180º cuando nuestro sensor capte una distancia entre 5 y 50cm, la función map de arduino nos facilita el trabajo realizando los cálculos.
        map(value, fromLow, fromHigh, toLow, toHigh)

 En nuestro caso,.debemos recalcular el valor de la distancia medida en el valor de un ángulo entre 0 y 180

medida= map(medida, 5,50,0,180);