Сервопривод MG995 постоянного вращения

Тема в разделе "Arduino & Shields", создана пользователем Felix102, 16 авг 2019.

  1. Felix102

    Felix102 Нерд

    Здравствуйте.

    Имею серву постоянного вращения mg995

    При команде повернуться на 90 градусов - сербо начинает крутится постоянно и не останавливается пока не получит команду servo.write(0). Как управлять этой сервой чтобы она поворачивалась столько сколько я ей скомандую?

    Код (C++):
    #include <Servo.h>
    #include <OneButton.h>
    Servo servo;  // Создаем объект

    OneButton goB(10, true);
    OneButton stopB(9, true);

    void goM(){
      servo.write(90);
    }

    void stopM(){
      servo.write(0);
    }

    void setup() {
      servo.attach(2,800,2200);
      goB.attachClick(goM);
      stopB.attachClick(stopM);
    }

    void loop() {

      stopB.tick();
      goB.tick();

    }
     
  2. b707

    b707 Гуру

    Felix102 - вы слишком намудрили в коде. Подозреваю, что ваш класс OneButton непрерывно шлет команду серве.
    Почему бы для начала не выкинуть из кода все лишнее - все эти баттоны и клики - и не поставить в Сетап просто две команды - servo.write(90) и servo.write(0) - проверить, как они будут работать?
     
  3. Felix102

    Felix102 Нерд

    Так пробую и все равно без остановки крутится.

    Код (C++):
    #include <Servo.h>

    Servo servo;

    void setup() {
      servo.attach(2);
      servo.write(0);
      delay(3000);
      servo.write(1);
    }

    void loop() {

    }
     
     
    Последнее редактирование: 17 авг 2019