Cómo hacer funcionar un servomotor con arduino

Para controlar un servomotor de rotación continua, necesitamos conectar el motor a la placa del microcontrolador de acuerdo con las instrucciones del manual del motor. Servomotor: EMAX ES08MA II

Las tres conexiones que debemos realizar son: VCC (Cable naranja) GND (Cable negro) Señal (Cable amarillo) Para controlar el motor, conectaremos el conocido cable como «señal » al puerto 9 del Arduino UNO. Por ejemplo, usamos un Sensor Shield para Arduino UNO. El sensor Shield es una placa auxiliar que se coloca en el Arduino y nos permite realizar conexiones con los sensores, interruptores y en nuestro caso con los motores de una forma más sencilla.

Arduino Servomotor

En una entrada anterior ya habíamos detallado el funcionamiento de un Servomotor utilizando un microcontrolador PIC en este caso, en la entrada aquí veremos un resumen rápido del Servo, pero si quieres puedes visitar la entrada del servomotor con PIC.

Un servomotor es un motor a controlar, es decir, este dispositivo mecánico tiene un controlador interno que posiciona con precisión el rotor del motor en un ángulo especificado por el Señal de entrada desde el control.

Accesorios:

SG90

El servo es el tamaño «pequeño» estándar dentro del proyecto de electrónica . Es un servo pequeño, ligero y barato con engranajes de plástico. Muchos dispositivos, como torretas y piezas de robots, están diseñados para montar servos de este tamaño.

  • Par: 1,4 kg cm
  • Velocidad: 0,1 seg / 60º (4,8V) y 0,08 seg / 60º (6V)
  • 22,7mm

  • Peso: 9g
  • Precio: 1,20€

Bocetos Servo Básico)

; // crea el objeto servo en mi caso lo llamo my_servo int servoPin=9; // Establecer pin void Servo connect() { my_servo.attach(servoPin); // conecta el servo al número de pin utilizado } void loop() { my_servo.write(0); // mueve el retardo del servo 0º(1000); mi_servo.escribir(90); // mueve el retardo del servo 90º(500); mi_servo.write(135); // mueve el retardo del servo 135º(500); mi_servo.write(180); // mueve el retardo del servo 180º(1500); # include int servoPin = 9; servo miservo; ángulo entero = 0; // posicionar el servo en la configuración de pasos vacíos() { miservo.attach(servoPin); } void loop() { // escanear de 0 a 180 grados para (ángulo = 0; ángulo 0; ángulo–) { miservo.write(ángulo); retraso (15); } }

Servomotor controlado por potenciómetro

Ahora vamos a hacer otro ejemplo, moveremos el servo moviendo un potenciómetro de 10k. Conectaremos el potenciómetro así: un pin lateral a GND y el otro a 5V y el pin central a pin analógico. Veamos el diagrama de conexión y el boceto:

# include int potPin = 0; pin servo int = 9; servofreno cervical; void set() { servo.adjuntar(servoPin); } void loop() { int read = analogRead(potPin); ángulo int = mapa (leer, 0, 1023, 0, 180); servo.write(ángulo); }

En la función loop(), empezamos leyendo el valor del pin analógico A0, que es donde hemos conectado el potenciómetro.

Esto nos da un valor entre 0 y 1023. Pero tenemos que reducirlo, porque el servo solo puede girar 180 grados. Una forma de hacer esto es usar la función map() de Arduino que reasigna un número de un rango a otro. Entonces, debajo de la línea, cambie la lectura para reflejar el ángulo entre 0 y 180 grados.

Finalmente, usamos el comando write() que le dice al servo que actualice su posición en el ángulo elegido por el potenciómetro.

Ahora hagamos otro ejemplo, moveremos el servo moviendo un potenciómetro de 10k. Conectaremos el potenciómetro así: un pin lateral a GND y el otro a 5V y el pin central a pin analógico. Veamos el diagrama de conexión y el croquis:

Jorge Renteiro
Últimas entradas de Jorge Renteiro (ver todo)
0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *