Подскажите в чем может быть причина. Имеется два сервопривода S3003 установленных на поворотной платформе. Один привод (нижний) вращает платформу по горизонтали Второй привод (верхний) поворачивает камеру по вертикали Поворот серв осуществляется потенциометрами Питание серв отдельно от блока питания 12В через понижающий модуль питания до 5В Проблема заключается в том, что горизонтальная серва становится в нужное положение и стоит, но гудит, а вертикальная, став в нужное положение начинает судорожно дрожать, т.е дергается в разные стороны. Мне нужно, чтобы сервы стали в нужное положение и были зафиксированы. Код (C++): #include <Servo.h> Servo myservo; Servo myservo1; int potpin = 0; // analog pin 0 pot int potpin1 = 1; // analog pin 1 pot int val; int val1; void setup() { Serial.begin(9600); myservo.attach(9); myservo1.attach(10); } void loop() { val = analogRead(potpin); val = map(val, 0, 1023, 0, 180); myservo.write(val); // выводим ротор сервы в положение в соответствии с полученным масштабированным значением //delay(15); // ждем, пока серва обеспечит заданное положение val1 = analogRead(potpin1); val1 = map(val1, 0, 1023, 0, 180); myservo1.write(val1); // выводим ротор сервы в положение в соответствии с полу// servo için 15 milisaniye bakınız detay için datashite bknz. delay(15); // ждем, пока серва обеспечит заданное положение Serial.print(val); Serial.print("\t"); Serial.print(val1); Serial.println("\t"); } Подскажите, как убрать этот дребезг
Код (C++): #include <Servo.h> Servo servoUp; Servo servoDown; const byte potUpPin = A0; // потенциометр подключен к пину A0 const byte potDownPin = A1; // потенциометр подключен к пину A1 const byte servoUpPin = 9; const byte servoDownPin = 10; unsigned int valueUp; unsigned int valueDown; void setup() { Serial.begin(9600); } void loop() { static unsigned int lastValueUp = 0; static unsigned int lastValueDown = 0; valueUp = analogRead(potUpPin); valueUp = map(valueUp, 0, 1023, 0, 180); if (valueUp != lastValueUp) { servoUp.attach(servoUpPin); servoUp.write(valueUp); // выводим ротор сервы в положение в соответствии с полученным масштабированным значением delay(15); // ждем, пока серва обеспечит заданное положение lastValueUp = valueUp; servoUp.detach(); } valueDown = analogRead(potDownPin); valueDown = map(valueDown, 0, 1023, 0, 180); if (valueDown != lastValueDown) { servoDown.attach(servoDownPin); servoDown.write(valueDown); // выводим ротор сервы в положение в соответствии с полу delay(15); // ждем, пока серва обеспечит заданное положение lastValueDown = valueDown; servoDown.detach(); } Serial.print(valueUp); Serial.print("\t"); Serial.print(valueDown); Serial.println("\t"); }