Módulo PCA9685 para Servos
search
  • Módulo PCA9685 para Servos

Módulo PCA9685 para Servos

$ 6.25+IVA ($ 7.19)
Resumen

Descuentos por volumen

Cant. Precio unitario Usted ahorra
3 $ 4,60 $ 4,95
Cant.
25

A partir de Precio unitario
3 $ 4,60+IVA ($ 5,29)

*Los descuentos por cantidad se aplican sobre el número total de unidades del producto (puede incluir una o más variantes).

*Ver las Formas de Pago disponibles.

*Entrega inmediata el mismo día (o en un plazo de 24 a 48 horas según el lugar de destino). Ver las Formas de Entrega y Costos de Envío.

Producto de Alta Calidad con Garantía de Total Satisfacción. 

La calidad es lo primero. Satisfacción garantizada.

El módulo PCA9685 es un controlador de 16 canales PWM que se puede usar para controlar hasta 16 servomotores con una sola placa Arduino. En este artículo, vamos a ver qué es el módulo PCA9685, cómo se conecta a Arduino y cómo se programa para mover los servos.

¿Qué es el módulo PCA9685?

El módulo PCA9685 es un circuito integrado que se comunica con Arduino mediante el protocolo I2C y que genera señales PWM (modulación por ancho de pulsos) en 16 salidas independientes. Estas señales PWM se pueden usar para controlar la posición de los servomotores, que son motores que giran un ángulo determinado según la duración del pulso que reciben.

El módulo PCA9685 tiene varias ventajas para controlar servos con Arduino:

- Permite controlar hasta 16 servos con solo dos pines de Arduino (los pines SDA y SCL del bus I2C).

- Libera los pines PWM de Arduino para otras funciones.

- Tiene una resolución de 12 bits, lo que significa que puede generar 4096 niveles de PWM, lo que permite un control más preciso de los servos.

- Tiene un oscilador interno de 25 MHz, lo que evita tener que usar un cristal externo.

- Tiene un registro de preescala que permite ajustar la frecuencia de las señales PWM entre 24 Hz y 1526 Hz, lo que permite adaptarse a las especificaciones de los diferentes servos.

- Tiene un pin OE (output enable) que permite deshabilitar todas las salidas PWM con una sola señal, lo que puede ser útil para ahorrar energía o evitar interferencias.

¿Cómo se conecta el módulo PCA9685 a Arduino?

Para conectar el módulo PCA9685 a Arduino, solo hay que seguir estos pasos:

- Conectar el pin VCC del módulo al pin 5V de Arduino.

- Conectar el pin GND del módulo al pin GND de Arduino.

- Conectar el pin SDA del módulo al pin A4 de Arduino (o al pin correspondiente al bus I2C en otros modelos de Arduino).

- Conectar el pin SCL del módulo al pin A5 de Arduino (o al pin correspondiente al bus I2C en otros modelos de Arduino).

- Conectar el pin OE del módulo a tierra si no se va a usar, o a un pin digital de Arduino si se quiere controlar la habilitación de las salidas PWM.

- Conectar los servos a las salidas PWM del módulo, teniendo en cuenta que el cable rojo es el positivo, el cable negro es el negativo y el cable blanco o amarillo es la señal. El positivo y el negativo de los servos se pueden conectar al mismo VCC y GND del módulo, o a una fuente de alimentación externa si se requiere más corriente.

¿Cómo se programa el módulo PCA9685 para mover los servos?

Para programar el módulo PCA9685 para mover los servos con Arduino, hay que seguir estos pasos:

- Instalar la librería Adafruit_PWMServoDriver, que se puede descargar desde este enlace: https://github.com/adafruit/Adafruit-PWM-Servo-Driver-Library

- Incluir la librería en el código con la instrucción #include <Adafruit_PWMServoDriver.h>

- Crear un objeto de la clase Adafruit_PWMServoDriver con la dirección I2C del módulo, que por defecto es 0x40, pero que se puede cambiar mediante los pines A0-A5 del módulo. Por ejemplo: Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(0x40);

- Inicializar el objeto con la instrucción pwm.begin(), que establece la comunicación I2C y configura el oscilador interno del módulo.

- Establecer la frecuencia de las señales PWM con la instrucción pwm.setPWMFreq(frecuencia), donde frecuencia es un valor entre 24 y 1526. Por ejemplo: pwm.setPWMFreq(50); para una frecuencia de 50 Hz, que es la más común para los servos.

- Mover los servos con la instrucción pwm.setPWM(canal, on, off), donde canal es un valor entre 0 y 15 que indica la salida PWM a la que está conectado el servo, on es un valor entre 0 y 4095 que indica el momento en el que se activa el pulso, y off es un valor entre 0 y 4095 que indica el momento en el que se desactiva el pulso. Por ejemplo: pwm.setPWM(0, 0, 150); para mover el servo del canal 0 a un ángulo de unos 45 grados.

A continuación se muestra un ejemplo de código que mueve dos servos conectados a los canales 0 y 1 del módulo PCA9685 con Arduino:

#include <Adafruit_PWMServoDriver.h>

// Crea un objeto de la clase Adafruit_PWMServoDriver con la dirección I2C del módulo
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(0x40);

// Define los valores de on y off para los ángulos de los servos
#define SERVOMIN 150 // Valor mínimo para un ángulo de 0 grados
#define SERVOMAX 600 // Valor máximo para un ángulo de 180 grados

void setup() {
// Inicializa el objeto pwm
pwm.begin();

// Establece la frecuencia de las señales PWM a 50 Hz
pwm.setPWMFreq(50);
}

void loop() {
// Mueve el servo del canal 0 a un ángulo de 90 grados
pwm.setPWM(0, 0, (SERVOMIN + SERVOMAX) / 2);

// Mueve el servo del canal 1 a un ángulo de 45 grados
pwm.setPWM(1, 0, (SERVOMIN + (SERVOMIN + SERVOMAX) / 2) / 2);

// Espera un segundo
delay(1000);

// Mueve el servo del canal 0 a un ángulo de 180 grados
pwm.setPWM(0, 0, SERVOMAX);

// Mueve el servo del canal 1 a un ángulo de 135 grados
pwm.setPWM(1, 0, ((SERVOMIN + SERVOMAX) / 2 + SERVOMAX) / 2);

// Espera un segundo
delay(1000);
}

584-D4 EC
25 Artículos