Introducción
Elementos utilizados
– Arduino UNO y cable (USB del PC al puerto de Arduino)
– Servomotor 180° no continuo
– Cables Macho Macho
Conexión de Servomotor a Arduino
Señal PWM de Arduino para el Servomotor
La modulación por ancho o de pulso (en inglés Pulse Width Modulation PWM) es un tipo de señal de voltaje utilizada para enviar información o para modificar la cantidad de energía que se envía a una carga.
La Señal PWM determina la posición del servo motor, y esta posición se determina por el promedio entre el estado alto (5V) y bajo (0V) de la señal PWM.
A continuación, se muestran los pines PWM en Arduino Uno:
Estos pueden identificarse con «~» al costado izquierdo
- Pin 3 (~3)
- Pin 5 (~5)
- Pin 6 (~6)
- Pin 9 (~9)
- Pin 10 (~10)
- Pin 11 (~11)
analogWrite(pin, valor)
se utiliza para generar una señal PWM en un pin específico, donde pin
es el número del pin PWM y valor
es un valor entre 0 y 255 que determina el ciclo de trabajo de la señal PWM. El valor entre 0 y 255 es la representación binaria de 8 bits ya que Arduino UNO utiliza un convertidor analógico a digital de 10 bits para proporcionar una resolución de 1024 valores distintos (2^10). Sin embargo, para funciones como analogWrite
, se utilizan solo 8 bits.
Conexionado de Servomotor a Arduino
– Pin «Power» de Servomotor (Rojo) a 5V de Arduino
– Pin «Ground» de Servomotor (Café) a GND de Arduino
– Pin «Signal» del Servomotor (Naranja) a Pin 9 de Arduino
Código:
A partir del siguiente código se podrá comprobar el funcionamiento del circuito:
Código, explicación por partes:
#include <Servo.h>
- Esta línea incluye la biblioteca
Servo
, que proporciona funciones para controlar servomotores en placas Arduino.
int ServoPin = 9;
int ServoPos = 0;
– Aquí se declaran dos variables:
ServoPin
: Representa el número del pin al que está conectado el servomotor. En este caso, se ha asignado el 9.ServoPos
: Almacena la posición actual del servomotor. Inicialmente, se establece en 0.
Servo XServo;
- Se crea un objeto
XServo
de la claseServo
para interactuar con el servomotor.
void setup() {
XServo.attach(ServoPin);
}
- La función
setup()
se ejecuta una vez al inicio del programa. Aquí, se adjunta el objetoXServo
al pin especificado (ServoPin
), estableciendo la conexión entre el programa y el servo motor.
void loop() {
XServo.write(ServoPos);
delay(100);
}
– La función loop()
se ejecuta continuamente después de setup()
. En este bucle:
XServo.write(ServoPos)
: Establece la posición del servo motor según el valor almacenado enServoPos
.delay(100)
: Introduce un retardo de 100 milisegundos.
En el siguiente video se mostrará el circuito y Servomotor en funcionamiento:
Conclusión:
En conclusión, el tutorial detalla de manera clara y accesible el uso de Arduino para controlar un Servomotor de 180° mediante modulación por ancho de pulso (PWM). La explicación de conexiones físicas y el código simple con la biblioteca Servo hacen que sea una guía práctica para la implementación exitosa de proyectos de control de servomotores con Arduino.