Я не могу переслать серво с помощью ввода с клавиатуры - PullRequest
0 голосов
/ 09 ноября 2018

Я использую Arduino UNO и у меня 5 серводвигателей MG995. Но когда я проверяю машину, используя 1 серводвигатель, она не работает. Мои связи не ошибаются. С портами все в порядке, но я не знаю, почему это не работает.

Мой код для одного серводвигателя.

    #include<Servo.h> // include server library
    Servo ser; // create servo object to control a servo
    int poser = 0; // initial position of server
    int val; // initial value of input

    void setup() {
        Serial.begin(9600); // Serial comm begin at 9600bps
        ser.attach(9);// server is connected at pin 9
    }

    void loop() {
        if (Serial.available()) { // if serial value is available
            val = Serial.read();// then read the serial value
            if (val == 'd') { //if value input is equals to d
                 poser += 1; //than position of servo motor increases by 1 ( anticlockwise)
                 ser.write(poser);// the servo will move according to position
                 delay(15);//delay for the servo to get to the position
            }

            if (val == 'a') { //if value input is equals to a
                 poser -= 1; //than position of servo motor decreases by 1 (clockwise)
                 ser.write(poser);// the servo will move according to position
                 delay(15);//delay for the servo to get to the position
            }
         }
     }

1 Ответ

0 голосов
/ 09 ноября 2018

В коде нет ничего очевидного, если вы нажмете кнопку d больше, чем задачка остается в диапазоне.

  • для проверки вашего оборудования, запустите один из примеров, например sweep .
  • Вы должны установить ограничения на poser, чтобы оно оставалось в диапазоне от 0 до 180
  • попробуйте также зажечь светодиод при получении «a» или «d», чтобы вы знали, что работает
...