Ребят, помогите, купил сервы постоянного вращения на колеса робота, разумеется крутить их надо то в одну сторону, то вдругую, так вот, в примере эта серва крутится в одну сторону, а как сделать так, чтобы она крутилось в нужную сторону и определенное время??? #include <Servo.h> Servo myservo; // создаём объект servo void setup() { myservo.attach(9); // серву на 9 ногу myservo.write(90); // и повернуть в среднее положение } void loop() { //тупим в вечной петле }
Задача несколько не понятна. По сервам хорошее описание есть тут, сам не подскажу, после перерыва в общении с ардуиной. http://wiki.amperka.ru/робототехника:сервоприводы Код (Text): Servo myservo; // создаём объект servo void setup() Надо писать Код (Text): Servo myservo; // создаём объект servo void setup() Но возможно просто ошиблись при вставке. Если по нажатию, то в void loop() Проверяем нажата ли кнопка и выполняем определенное действие. Сохраняя в перемененную состояние сервы, если надо знать последнее состояние. В определенное время тут не понятно, через какое-то время после какого-то действия: Тогда сохраняем текущее значение времени программы и прибавляем, то через которое должно сработать действие. Мне видеться как то так. Более подробнее опишите задачу
Не внимательно прочел, с этими вообще не имел дело. С обычными работал, уже достал их из коробки и сам начал читать статью вспоминать и писать код, давно это было. Извините, по ним ничего подсказать не могу.
ну допустим: едет наш робот вперед, сервы крутятся в первом положении, затем обнаруживаем какой либо предмет, и нам нужно отъехать немного назад. Вот как раз и как теперь крутить сервопривод в противоположное направление?
Очень интересный выбор. Интересно почему выбраны они а не моторы? Цитата из вики, так как не общался с такими и нет под рукой. Определяем, Servo.write(180) мы едем вперед или назад. Если 180 это вперед, полный газ, 90 остановка, то наз меньше 90, то указав 0 будет полный назад.
Примерно так, это не код, а пример. Код (Text): #include <Servo.h> Servo myservo; // создаём объект servo void setup() { myservo.attach(9); // серву на 9 ногу myservo.write(90); // и повернуть в среднее положение } unsigned long backGoMillis = 0; // Флаг, а так же переменная, если больше 0, то значит мы едем назад void loop() { //тупим в вечной петле if (Что-то, что заставило ехать робота) { myservo.write(180); // вперед, полный газ } if (Сработал датчик) { myservo.write(90); // остановка backGoMillis = millis(); // сохраняем когда поехали назад myservo.write(0); // полный назад } // backGoMillis больше 0, как флаг и через 0,5с. движение назад останавливается if (backGoMillis > 0 && ((millis() - backGoMillis) >500)) { myservo.write(90); // остановка backGoMillis = 0; // обнуляем флаг } }