Приветствую, в общем проблема такая, необходимо подключить 3 сервопривода SG90 и 3 MG996R к модулю PCA9685, чтобы каждый из них отдельно управлялся потенциометром(потенциометры подключены к аналоговым портам ардуино уно), но когда подключаю более 4-х потенциометров ничего не работает.
C++:
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
#define MIN_PULSE_WIDTH 650
#define MAX_PULSE_WIDTH 2350
#define FREQUENCY 50
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
int controlA = A0;
int controlB = A1;
int controlC = A2;
int controlD = A3;
int controlE = A4; // Новый потенциометр E
int controlF = A5; // Новый потенциометр F
int motorA = 0;
int motorB = 4;
int motorC = 8;
int motorD = 12;
int motorE = 6; // Новый сервопривод E
int motorF = 10; // Новый сервопривод F
void setup()
{
pwm.begin();
pwm.setPWMFreq(FREQUENCY);
}
void moveMotor(int controlIn, int motorOut)
{
int pulse_wide, pulse_width, potVal;
potVal = analogRead(controlIn);
pulse_wide = map(potVal, 0, 1023, MIN_PULSE_WIDTH, MAX_PULSE_WIDTH);
pulse_width = int(float(pulse_wide) / 1000000 * FREQUENCY * 4096);
pwm.setPWM(motorOut, 0, pulse_width);
}
void loop() {
moveMotor(controlA, motorA);
moveMotor(controlB, motorB);
moveMotor(controlC, motorC);
moveMotor(controlD, motorD);
moveMotor(controlE, motorE); // Добавляем управление новым сервоприводом E
moveMotor(controlF, motorF); // Добавляем управление новым сервоприводом F
}
Изменено: