16-kanavainen PWM-servokäyttölaite servomoottorien ohjaamiseen IIC:n kautta.
SKU: OT2057-C46 Tuotenumero: AA217 EAN: 4247196800434 Sijainti: C04.06
Vaihtoehto
4-kanavainen L293D-moottoriohjainmoduuli
€ 2,40
Katso tämä vaihtoehto
Näin kytket 16-kanavainen 12-bittinen PWM-servonohjain I2C:n Arduino UNOon tai ESP32:een, mukana esimerkkisketsi, jonka voit ladata heti.
Tämä esimerkki kommunikoi PCA9685 16-kanavaisen 12-bit PWM-ohjaimen kanssa I2C:n yli. Arduino alustaa levyn 50 Hz:iin ja pyyhkäisee PWM-signaalia Channel 0:lla edestakaisin, joten se sopii erinomaisesti tavallisten servojen testaamiseen tai LEDien himmennykseen. Avaa Serial Monitor nopeudella 115200 baud nähdäksesi nykyiset pulssiarvot.
/*
* ==================================================================
* 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);
}
Tarvittavat kirjastot: Adafruit PWM Servo Driver Library 3.0.3
Wiring diagram and example code generated by Codey.online — https://www.codey.online
Tämä projekti ohjaa servomoottoria PCA9685 16-kanavaisen 12-bittisen PWM-ohjaimen avulla I2C-väylän kautta. Koska PCA9685 ja servot toimivat 5V:lla, 4-kanavainen kaksisuuntainen logic level shifter suojaa ESP32:n 3.3V I2C-nastoja (GPIO 21 ja GPIO 22). Sketch alustaa PCA9685:n ja liikuttaa servoa Channel 0:ssa jatkuvasti edestakaisin.
/*
* ==================================================================
* 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);
}
Tarvittavat kirjastot: Adafruit PWM Servo Driver Library 3.0.3
Wiring diagram and example code generated by Codey.online — https://www.codey.online
Afmetingen
Length: 6,9cm
Width: 2,5cm
Height: 1,5cm

| Leveys | 2,5 cm |
|---|---|
| Pituus | 6,9 cm |
| Tyyppi | 16-kanavainen |
| Korkeus | 1,5 cm |
| Malli | PCA9685 |
| Viestintäliitäntä | IIC |
Ainoastaan liitäntäohjeet puuttuvat.
Etkö ole tyytyväinen? Sinulla on 30 päivää aikaa vastaanotosta palauttaa tuote.
Kaikki palautuksista
16-kanavainen 12-bittinen PWM-servonohjain I2C