Скетч PCA9685 2 сервомашинки работают синхронно от одного потенциометра

/*
Данный код плавно управляет одной сервой
при помощи потенциометра (на пине А0).
Используется драйвер PCA9685
Откройте порт по последовательному соединению для наблюдения за положением серво
Документация: https://alexgyver.ru/servosmooth/
*/

#include <ServoDriverSmooth.h>
ServoDriverSmooth servo4;
ServoDriverSmooth servo8;
//ServoDriverSmooth servo(0x40); // с указанием адреса драйвера
//ServoDriverSmooth servo(0x40, 270); // с указанием адреса и макс. угла

uint32_t myTimer;

void setup()

{
Serial.begin(9600);
servo4.attach(4, 150, 550);  //серво подключена к 4 PCA9685
servo8.attach(8, 150, 550);  //серво подключена к 8 PCA9685
// 150 и 600 - длины импульсов, при которых
// серво поворачивается максимально в одну и другую сторону, зависят от самой серво
// и обычно даже указываются продавцом. Мы их тут указываем для того, чтобы
// метод setTargetDeg() корректно отрабатывал диапазон поворота сервы
// для драйвера диапазон в районе 150-600! Не как у обычной серво

servo4.setSpeed(120); // ограничить скорость
servo4.setAccel(0.1); // установить ускорение (разгон и торможение)
servo8.setSpeed(120); // ограничить скорость
servo8.setAccel(0.1); // установить ускорение (разгон и торможение)
}

void loop()

{
// желаемая позиция задаётся методом setTarget (импульс) или setTargetDeg (угол), далее
// при вызове tick() производится автоматическое движение сервы
// с заданным ускорением и ограничением скорости

boolean state4 = servo4.tick(); // здесь происходит движение серво по встроенному таймеру!
boolean state8 = servo8.tick(); // здесь происходит движение серво по встроенному таймеру!

if (millis() - myTimer >= 40)

{
myTimer = millis();
int newPos = map(analogRead(0), 0, 1023, 0, 180); // берём с потенцометра значение 0-180
servo4.setTargetDeg(newPos); // и отправляем на серво
servo8.setTargetDeg(newPos);
Serial.println(String(newPos) + " " + String(servo4.getCurrentDeg())/* + " " + String(state)*/);
// state показывает сотояние сервы (0 - движется, 1 - приехали и отключились)
}

}

You have no rights to post comments