KS0258
Nuevo
Escudo controlador de 16 servomotores para ARDUINO. Marca Keyestudio.
Este escudo o placa de expansión es diseñado por KEYESTUDIO con materiales y procesos de alta calidad e incorpora el PCA9685PW (CRM367 - TUD1645) como base. este escudo (Shield) de expansión es ideal para proyectos de robótica en los que se requiere gran cantidad de servomotores en movimiento simultáneamente y de una manera sincronizada, por ejemplo, robots humanoides, robots bípedos o cuadrúpedos, así como de tipo araña.
Cuando realizamos experimentos con robots, es necesario utilizar varios puertos PWM para controlar el servo motor, sin embargo, el Arduino UNO R3 común solo tiene 6 puertos PWM, por lo que no es suficiente. Esto le permite utilizar esta tarjeta de expansión, que se ensambla directamente en la placa Arduino UNO R3 y puede controlar hasta 16 servos. Utiliza la entrada I2C, solo ocupa A4 y A5 de la placa Arduino UNO R3. La placa de expansión contiene orificios de doble cara de PCB, que permiten adicionarle componentes a través del uso de soldadura para construir circuitos de prototipos más complejos.



/***************************************************
This is an example for our Adafruit 16-channel PWM & Servo driver
PWM test - this will drive 16 PWMs in a 'wave'
Pick one up today in the adafruit shop!
------> http://www.adafruit.com/products/815
These displays use I2C to communicate, 2 pins are required to
interface. For Arduino UNOs, thats SCL -> Analog 5, SDA -> Analog 4
Adafruit invests time and resources providing this open source code,
please support Adafruit and open-source hardware by purchasing
products from Adafruit!
Written by Limor Fried/Ladyada for Adafruit Industries.
BSD license, all text above must be included in any redistribution
****************************************************/
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
// called this way, it uses the default address 0x40
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
// you can also call it with a different address you want
//Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(0x41);
void setup() {
Serial.begin(9600);
Serial.println("16 channel PWM test!");
// if you want to really speed stuff up, you can go into 'fast 400khz I2C' mode
// some i2c devices dont like this so much so if you're sharing the bus, watch
// out for this!
pwm.begin();
pwm.setPWMFreq(1600); // This is the maximum PWM frequency
// save I2C bitrate
uint8_t twbrbackup = TWBR;
// must be changed after calling Wire.begin() (inside pwm.begin())
TWBR = 12; // upgrade to 400KHz!
}
void loop() {
// Drive each PWM in a 'wave'
for (uint16_t i=0; i<4096; i += 8) {
for (uint8_t pwmnum=0; pwmnum < 16; pwmnum++) {
pwm.setPWM(pwmnum, 0, (i + (4096/16)*pwmnum) % 4096 );
}
}
}
Una vez conectado podrá controlar de manera simultánea hasta 16 servomotores.
![]()
