hola buenos días, estoy tratando de conectar un controlador de servomotores pca9685 y no consigo que funcione. el caso es que nose si es tema de programación o que estoy haciendo mal las conexiones entre pca y arduino.
tengo conectado el pca9685 a una fuente de alimentación externa de 5v a 10amperios, igual demasiado pero es que un amigo me lo ha dejado asi no tenia que comprar.
tengo conectado 5 servomotores en los canales 0, 1, 2, 3 y 4(canales de la pca9685). Las conexiones de los motores a la tarjeta están bien.
la conexión pca / arduino las tengo asi...
pca gnd a gnd arduino
pca oe a gnd arduino
pca scl a 21scl arduino
pca sda a 20sda arduino
pca vcc a 5v arduino
pca v+ no conectado
pongo la conexiones por si acaso pero estoy seguro que el problema viene de la programación.
os pongo la programación para que podáis ver donde puede estar el fallo
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
Adafruit_PWMServoDriver servos1 = Adafruit_PWMServoDriver(0x40);
unsigned int pos0=204;
unsigned int pos180=409;
int tiempo =500;
void setup() {
servos1.begin();
servos1.setPWMFreq(50);
//pwm.setPWMFreq(1600);
}
void setServo(uint8_t n_servo, int angulo) {
int duty;
duty=map(angulo,0,180,pos0, pos180);
servos1.setPWM(n_servo, 0, duty);
}
void loop() {
setServo(0,0);
delay(tiempo);
setServo(1,0);
delay(tiempo);
setServo(2,0);
delay(tiempo);
setServo(3,0);
delay(tiempo);
setServo(4,0);
delay(tiempo);
setServo(0,60);
delay(tiempo);
setServo(1,60);
delay(tiempo);
setServo(2,60);
delay(tiempo);
setServo(3,60);
delay(tiempo);
setServo(4,60);
delay(tiempo);
}