PCA9685 Driver para Servomotor de 16 Canales de 12 Bits I2C IIC

[PCA9685] PCA9685 Driver para Servomotor de 16 Canales de 12 Bits I2C IIC

https://electrofranko.com/web/image/product.template/954/image_1920?unique=c4c5e93

S/ 19.50 19.5 PEN S/ 19.50

S/ 19.50

Not Available For Sale

Esta combinación no existe.

Términos y condiciones
Envío: 2-3 días laborales


Referencia Interna: PCA9685

Módulo Driver PWM de 16 Canales y 12 Bits PCA9685

Placa controladora de servos y LEDs basada en el circuito integrado PCA9685 con interfaz I2C. Permite gobernar hasta 16 salidas independientes usando solo dos pines del microcontrolador.

El Módulo PCA9685 es un controlador PWM de 16 canales y 12 bits controlado mediante el bus de comunicación I2C. Diseñado originalmente para control de brillo en LEDs, se ha convertido en el estándar de la industria para gobernar múltiples servomotores (en brazos robóticos, caminantes hexápodos y sistemas gimbal) utilizando únicamente dos pines de E/S de tu microcontrolador (SDA y SCL). Incorpora un reloj interno que genera las señales PWM de forma autónoma sin saturar al procesador principal.

Especificaciones Técnicas

Parámetro EléctricoRango / Valor Oficial
Voltaje Lógico (VCC)2.3 V a 5.5 V DC
Voltaje de Alimentación de Potencia (V+)Hasta 6 V DC máximo para servos y cargas
Canales de Salida PWM16 canales independientes
Resolución del PWM12 bits (4096 niveles de ajuste por ciclo)
Frecuencia de Salida Ajustable40 Hz a 1000 Hz (configurable)
Interfaz de ComunicaciónBus I2C (Dirección base 0x40 por defecto)
Parámetro Físico / EstructuraRango / Valor Oficial
Capacidad de EncadenamientoHasta 62 placas en el mismo bus I2C mediante jumpers A0-A5
Protecciones IntegradasResistencias de pull-up en líneas I2C y protección de polaridad en V+
Pines de InterfazGND, VCC, SDA, SCL, V+, OE (Output Enable)
Dimensiones de la PlacaAproximadamente 62 mm x 25 mm
Terminales de PotenciaBorneras de tornillo de alta seguridad para la entrada V+
CompatibilidadArduino Uno, Mega, ESP32, Raspberry Pi y sistemas embebidos

Ventajas Clave del Driver PCA9685

Ahorro Masivo de Pines: Controla hasta 16 servomotores o canales de iluminación LED utilizando únicamente 2 pines de tu microcontrolador (SDA y SCL).

Reloj Interno Independiente: El chip genera las pulsaciones PWM por hardware sin requerir ciclos constantes de procesamiento del Arduino, evitando que los servos tiemblen o sufran tirones.

Escalabilidad Extrema: Dispone de pines de configuración de dirección (A0 a A5), permitiendo conectar múltiples módulos en cascada para controlar decenas o cientos de servos simultáneamente.

El módulo separa claramente la alimentación lógica del microcontrolador de la fuente de alimentación de alta corriente destinada a los motores y servos.

Galería Dinámica de Conexiones de Hardware

Esquema 1: Conexión de control lógico al microcontrolador
Esquema 3: Conexión de la fuente externa en la bornera de potencia
Esquema 2: Conexión de los conectores de los servomotores
Esquema 4: Configuración de direcciones mediante pads de soldadura
Guía Esencial de Conexión y Montaje de Hardware: Conecte **VCC** a 5V/3.3V y **GND** a la tierra común del Arduino. Enlace **SDA** y **SCL** a los pines I2C correspondientes de su placa. Para alimentar los servos, conecte una fuente de alimentación externa adecuada (típicamente 5V a 6V) a los bornes de tornillo **V+ y GND**. Nunca alimente múltiples servos directamente desde el pin de 5V del Arduino.
🎓 Control de Servos con la Librería Adafruit PWMServoDriver

Para controlar el módulo PCA9685 de forma sencilla en Arduino IDE, se utiliza la librería optimizada Adafruit_PWMServoDriver:

  • Frecuencia PWM: Se ajusta a 50Hz para garantizar un funcionamiento fluido y estable de los servomotores estándar.
  • Ancho de Pulso: Mediante setPWM() se configuran los valores mínimos y máximos de pulsos para posicionar el eje del servo con precisión de 12 bits.
// Código de Ejemplo: Control de Servomotor con Módulo PCA9685 y Arduino // IMPORTANTE: Requiere instalar la librería "Adafruit PWM Servo Driver Library". #include <Wire.h> #include <Adafruit_PWMServoDriver.h> Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(); // Definimos los valores de pulso mínimo y máximo para calibrar el servomotor (SG90 / MG996R) #define SERVOMIN 150 // Pulso mínimo (aproximadamente 0 grados) #define SERVOMAX 600 // Pulso máximo (aproximadamente 180 grados) const int servoNum = 0; // Canal PWM conectado al servo (Canal 0) void setup() { Serial.begin(115200); pwm.begin(); pwm.setPWMFreq(50); // Frecuencia estándar de 50Hz para servomotores Serial.println("--- Módulo PCA9685 Inicializado ---"); } void loop() { // Mover el servo a la posición de 0 grados Serial.println("Movando servo a 0°"); pwm.setPWM(servoNum, 0, SERVOMIN); delay(1000); // Mover el servo a la posición de 90 grados Serial.println("Movando servo a 90°"); pwm.setPWM(servoNum, 0, 375); // Posición intermedia delay(1000); // Mover el servo a la posición de 180 grados Serial.println("Movando servo a 180°"); pwm.setPWM(servoNum, 0, SERVOMAX); delay(1000); }
1. ¿Por qué mis servomotores vibran, hacen ruido o se reinicia el Arduino al usarlos?
Este problema ocurre casi siempre porque estás intentando alimentar los servomotores directamente desde el pin de 5V del Arduino, el cual no tiene la capacidad de corriente necesaria. Debes conectar una fuente de alimentación externa independiente (como una fuente de 5V o un portapilas) directamente a los bornes **V+ y GND** de la bornera del PCA9685, asegurándote de compartir la tierra (GND) con el Arduino.
2. ¿Cómo puedo conectar y controlar más de un módulo PCA9685 al mismo tiempo?
El chip PCA9685 permite configurar su dirección I2C mediante la soldadura de los pequeños puentes (jumpers) etiquetados como **A0 a A5** en la placa. Modificando estos puentes en binario, puedes asignar direcciones únicas a cada tarjeta, permitiendo encadenar hasta 62 módulos en un solo bus I2C.
3. ¿Qué función cumple el pin OE (Output Enable) ubicado en la placa?
El pin OE es un pin de habilitación de salidas de forma general. Si se mantiene conectado a Tierra (GND) o libre (gracias a su resistencia interna pull-down), todas las salidas PWM operan con normalidad. Si le aplicas un nivel lógico HIGH (5V), se desactivan de inmediato todas las salidas PWM del módulo.
4. ¿Puedo utilizar este módulo para controlar motores DC comunes o luces LED?
Sí, para LEDs y tiras LED de 12V/5V (utilizando un transistor o mosfet adicional para potencia), pero no directamente para motores DC. El PCA9685 solo emite señales de control lógicas PWM de baja corriente, no entrega la potencia necesaria para mover un motor DC por sí mismo.