Pedido antes de las 14:00 en día laborable = enviado el mismo día 30 días de desistimiento 1 año de garantía
← Volver al resumen

Esquema de conexión y ejemplo de código

Así conectas el Driver PWM Servo I2C de 16 canales y 12 bits a un Arduino UNO o ESP32, con un sketch de ejemplo que puedes subir directamente.

Demo del controlador PWM para servos PCA9685 de 16 canales

Este ejemplo se comunica con el controlador PWM de 12 bits PCA9685 de 16 canales mediante I2C. El Arduino inicializa la placa a 50 Hz y barre la señal PWM en Channel 0 de un lado a otro, perfecto para probar servos estándar o el desvanecimiento de LED. Abre el Serial Monitor a 115200 baud para ver los valores de pulso actuales.

Esquema de conexión: Driver PWM Servo I2C de 16 canales y 12 bits en un Arduino UNO
Esquema de conexión · Haz clic para ampliar
Tabla de conexión: Driver PWM Servo I2C de 16 canales y 12 bits en un Arduino UNO
Tabla de conexión · Haz clic para ampliar
PCA9685_16_Channel_PWM_Servo_Driver_Demo.ino · compilado y probado
/*
 * ==================================================================
 *  Generated by Codey.online  —  https://www.codey.online
 * ==================================================================
 *  Project   : PCA9685 16-Channel PWM Servo Driver Demo
 *  Board     : Arduino UNO (arduino:avr:uno)
 *  Parts     : 16 Channel 12-Bit PWM Servo Driver I2C
 *  Libraries : Adafruit PWM Servo Driver Library 3.0.3
 *
 *  Codey Online is an AI-powered browser IDE for Arduino and ESP32.
 *  Describe your project and Codey writes the code, draws the wiring
 *  diagram and uploads it to your board, straight from the browser.
 *  This code is free to use, modify and share, without warranty.
 * ==================================================================
 */

#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>

Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();

// Pulse length bounds for standard 50Hz servos
const uint16_t SERVOMIN = 150; // ~0.75 ms pulse (0 degrees)
const uint16_t SERVOMAX = 600; // ~2.25 ms pulse (180 degrees)

void setup() {
  Serial.begin(115200);
  Serial.println(F("PCA9685 16-Channel Servo Driver Demo"));

  pwm.begin();
  pwm.setOscillatorFrequency(27000000);
  pwm.setPWMFreq(50); // 50 Hz PWM for hobby servos
  delay(10);
}

void loop() {
  Serial.println(F("Moving to 0 degrees..."));
  for (uint16_t pulse = SERVOMIN; pulse < SERVOMAX; pulse += 5) {
    pwm.setPWM(0, 0, pulse);
    delay(20);
  }

  delay(500);

  Serial.println(F("Moving to 180 degrees..."));
  for (uint16_t pulse = SERVOMAX; pulse > SERVOMIN; pulse -= 5) {
    pwm.setPWM(0, 0, pulse);
    delay(20);
  }

  delay(500);
}

Bibliotecas necesarias: Adafruit PWM Servo Driver Library 3.0.3

Wiring diagram and example code generated by Codey.online — https://www.codey.online

Demo del controlador PWM para servo PCA9685 de 16 canales

Este proyecto controla un servomotor usando el controlador PWM de 12 bits y 16 canales PCA9685 por I2C. Como el PCA9685 y los servos funcionan a 5V, un convertidor de nivel lógico bidireccional de 4 canales protege los pines I2C de 3.3V del ESP32 (GPIO 21 y GPIO 22). El sketch inicializa el PCA9685 y hace barrer continuamente el servo en Channel 0 de un lado a otro.

Esquema de conexión: Driver PWM Servo I2C de 16 canales y 12 bits en un ESP32 DevKit V1
Esquema de conexión · Haz clic para ampliar
Tabla de conexión: Driver PWM Servo I2C de 16 canales y 12 bits en un ESP32 DevKit V1
Tabla de conexión · Haz clic para ampliar
PCA9685_16_Channel_PWM_Servo_Driver_Demo.ino · compilado y probado
/*
 * ==================================================================
 *  Generated by Codey.online  —  https://www.codey.online
 * ==================================================================
 *  Project   : PCA9685 16-Channel PWM Servo Driver Demo
 *  Board     : ESP32 DEVKIT V1 (esp32:esp32:esp32doit-devkit-v1)
 *  Parts     : 16 Channel 12-Bit PWM Servo Driver I2C
 *  Libraries : Adafruit PWM Servo Driver Library 3.0.3
 *
 *  Codey Online is an AI-powered browser IDE for Arduino and ESP32.
 *  Describe your project and Codey writes the code, draws the wiring
 *  diagram and uploads it to your board, straight from the browser.
 *  This code is free to use, modify and share, without warranty.
 * ==================================================================
 */

#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>

// Default I2C address is 0x40
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(0x40);

// 12-bit pulse lengths (out of 4096) for standard 50Hz servos
#define SERVOMIN  150 // Minimum pulse length (~0.75 ms / 0 degrees)
#define SERVOMAX  600 // Maximum pulse length (~2.25 ms / 180 degrees)
#define SERVO_FREQ 50 // Standard analog servo frequency (50 Hz)

const uint8_t servoChannel = 0;

void setup() {
  Serial.begin(115200);
  Serial.println("PCA9685 Servo Driver Demo");

  // Initialize I2C on ESP32 pins (SDA=GPIO 21, SCL=GPIO 22)
  Wire.begin(21, 22);

  pwm.begin();
  pwm.setOscillatorFrequency(27000000);
  pwm.setPWMFreq(SERVO_FREQ);

  delay(10);
  Serial.println("Ready! Sweeping servo on Channel 0...");
}

void loop() {
  // Sweep from 0 to 180 degrees
  for (uint16_t pulselen = SERVOMIN; pulselen <= SERVOMAX; pulselen += 5) {
    pwm.setPWM(servoChannel, 0, pulselen);
    delay(15);
  }
  delay(500);

  // Sweep back from 180 to 0 degrees
  for (uint16_t pulselen = SERVOMAX; pulselen >= SERVOMIN; pulselen -= 5) {
    pwm.setPWM(servoChannel, 0, pulselen);
    delay(15);
  }
  delay(500);
}

Bibliotecas necesarias: Adafruit PWM Servo Driver Library 3.0.3

Wiring diagram and example code generated by Codey.online — https://www.codey.online

Vistos recientemente

Acoplamiento para rueda 30 mm / 4 mm

Acoplamiento para rueda 30 mm / 4 mm

€ 2,00
Acoplamiento para rueda 18 mm / 4 mm

Acoplamiento para rueda 18 mm / 4 mm

€ 2,10
Carcasa para pantalla OLED de 0.96 pulgadas

Carcasa para pantalla OLED de 0.96 pulgadas

€ 3,49
Ver
Mini breadboard ultra pequeño Amarillo - XF-25

Mini breadboard ultra pequeño Amarillo - XF-25

€ 0,80
Sensor de acoplamiento óptico reflectante RPR220 optoelectrónico

Sensor de acoplamiento óptico reflectante RPR220 optoelectrónico

€ 1,25
Transceptor LoRa RFM95 SX1276 868Mhz

Transceptor LoRa RFM95 SX1276 868Mhz

€ 14,05
Receptor Infrarrojo TSOP38238

Receptor Infrarrojo TSOP38238

€ 2,00
CP2102 USB a TTL Serial UART Bridge 3.3v-5v con pin DTR

CP2102 USB a TTL Serial UART Bridge 3.3v-5v con pin DTR

€ 3,30
Sensor de humedad del suelo con regulador de voltaje

Sensor de humedad del suelo con regulador de voltaje

€ 4,00
Convertidor de alimentación para breadboard a 3.3v y 5v

Convertidor de alimentación para breadboard a 3.3v y 5v

€ 2,00
Módulo Step-Up regulable 3-34V a 4-35V LM2577 estabilizado

Módulo Step-Up regulable 3-34V a 4-35V LM2577 estabilizado

€ 4,15
Ver
Kit de inicio Arduino con Codey ChatGPT AI Nederlands

Kit de inicio Arduino con Codey ChatGPT AI Nederlands

€ 54,85
Ver