Módulo PCA9685 controlador servomotores PWM 16 canales
$25,00
Controlador PCA9685 de 16 canales PWM. Ideal para servos, LEDs o motores. Interfaz I2C, frecuencia ajustable (24–1526 Hz). Compatible con Arduino/ESP32. ¡Controla hasta 16 servos con 2 cables!
2 disponibles
Descripción
El módulo PCA9685 es un controlador PWM avanzado fabricado por NXP, diseñado específicamente para gestionar múltiples servomotores, LEDs RGB o actuadores con señal PWM de forma sincronizada y precisa. Con 16 canales independientes, resolución de 12 bits (4096 pasos) y frecuencia ajustable entre 24 Hz y 1526 Hz, es la solución ideal para proyectos de robótica avanzada: brazos robóticos, robots humanoides, drones con control de cámara, sistemas de iluminación dinámica o cualquier aplicación donde necesites múltiples salidas PWM sin sobrecargar tu microcontrolador.
- 🧠 Chip principal: PCA9685 (NXP)
- 📡 Interfaz: I2C (dirección predeterminada:
0x40; ajustable con A0–A5 → hasta 62 dispositivos en el mismo bus) - 🔢 Resolución: 12 bits (0–4095 por canal)
- 📏 Canales: 16 salidas PWM (todas independientes)
- ⚙️ Frecuencia PWM: 24 Hz – 1526 Hz (recomendado: 50 Hz para servos estándar, 100–1000 Hz para LEDs)
- ⚡ Voltaje de lógica: 2.3V – 5.5V (compatible con 3.3V y 5V)
- ⚡ Alimentación de servos: Separada (V+ y GND en terminal verde — no usa VCC del I2C)
- 🔋 Consumo (lógica): ~20 mA
- 📦 Dimensiones: ~45mm x 20mm
- 🌐 Compatibilidad: Arduino, ESP32, Raspberry Pi, Micro:bit, etc.
|
Pin del PCA9685
|
Pin de Arduino
|
|---|---|
|
VCC (lógica)
|
5V
|
|
GND (lógica)
|
GND
|
|
SCL
|
A5
|
|
SDA
|
A4
|
|
V+ (servos)
|
Fuente externa (5V–6V para servos)
|
|
GND (servos)
|
GND común con Arduino
|
- Los servos no se alimentan desde el pin VCC del módulo — usan el terminal verde (V+ y GND separados) para evitar ruido y sobrecarga.
- Para servos estándar (SG90, MG90S, etc.), usa 50 Hz y rango de pulso: 1000–2000 µs (≈ 150–600 en escala 0–4095).
- El pin OE (Output Enable) está conectado a GND por defecto (salidas activas). Si lo conectas a VCC, desactiva todas las salidas.
Adafruit_PWMServoDriver (instalable desde el gestor de bibliotecas de Arduino IDE)#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
void setup() {
Serial.begin(9600);
pwm.begin();
pwm.setPWMFreq(50); // 50 Hz para servos
pwm.setOscillatorFrequency(25000000); // 25 MHz (valor típico)
}
void loop() {
// Mover servo de 0° a 180° (1000–2000 µs ≈ 150–600 en 4096)
for (int i = 150; i <= 600; i++) {
pwm.setPWM(0, 0, i); // canal 0, off=0, on=i
delay(10);
}
delay(1000);
for (int i = 600; i >= 150; i–) {
pwm.setPWM(0, 0, i);
delay(10);
}
delay(1000);
}
- Usa una fuente de alimentación separada y estable para los servos (ej. regulador 5V/2A) — nunca alimentes servos directamente desde el USB del Arduino.
- Para servos metálicos o de alto torque, asegúrate de que la fuente soporte la corriente pico (hasta 1A por servo en arranque).
- Si usas con ESP32, puedes conectar directamente a 3.3V (lógica) y usar GPIO22/21 para SCL/SDA.
- El PCA9685 incluye temporizador interno — no necesita reloj externo.
- Para luces LED RGB: configura frecuencia > 400 Hz para evitar parpadeo visible.
- Brazos robóticos de 6+ grados de libertad
- Robots humanoides con múltiples servos
- Sistemas de iluminación LED RGB sincronizados
- Control de cámaras en drones (pan/tilt)
- Proyectos de teatro o animatrónica DIY















Valoraciones
No hay valoraciones aún.