Это был разочаровывающий день обучения у Arduino Tuts.
Я работаю над настройкой серводвигателя.Я выяснил, почему я не мог заставить его получать данные, и теперь я получил его, считывая через последовательный порт и поворачиваясь к соответствующим степеням.Но теперь кажется, что каждый раз, когда он проходит через него, он пытается сбросить его значение до 0 градусов.Я не назначил переменную равной 0, и цикл while должен действовать как прерывание, пока он ожидает ввода пользователя.Поэтому я не понимаю, почему это происходит.
Я также пытался вернуть значение pos
, чтобы не изменять / сбрасывать значения во время каждого цикла, но продолжал получать ошибки компиляции.Мне сказали, что pos
возвращает void
.А потом я получил еще один, когда пытался объявить int pos
как метод внутри цикла и вложил остальную часть кода в метод int.
Также интересное примечание: когда вы запускаете окно последовательного портав IDE он будет вращать двигатель на небольшую величину, несмотря на то, что вход не подается.После того, как заданный вход введен, он пойдет до тех степеней, а затем будет сброшен, как описано ранее.
Код:
#include <Servo.h> //Including the Servo code library
int servoPin = 6;
int servoDelay = 25;
int pos;
Servo myPointer; // Create a Servo object called myPointer
void setup() {
Serial.begin(9600);
//pinMode (servoPin, OUTPUT);
myPointer.attach(servoPin);
Serial.println("Hello");
}
void loop() {
Serial.println ("Where would you like the servo to point?");
while (Serial.available()==0){
}
pos = Serial.parseInt();
Serial.println (pos);
myPointer.write(pos);
}
Сервопривод работает от источника питания 5 В на Arduinoи получает инструкции ОК.Он не сбрасывает позицию при запуске через void setup (), поэтому это должен быть цикл, вызывающий это.Я просто не знаю, почему или как это исправить.