Купил вот такой привод http://amperka.ru/collection/servo/product/servo-fs5113r К примеру вставляю вот такой код: PHP: #include <Servo.h> Servo myservo; // создаём объект для контроля сервы void setup() { myservo.attach(9); // серва подключена к 9-му пину } void loop() { myservo.write(0); delay(350); myservo.write(90); // остановить вращение. delay(15000); myservo.write(180); delay(350); myservo.write(90); // остановить вращение. delay(3000); myservo.write(0); delay(350); myservo.write(90); //остановить вращение. delay(1000); myservo.write(180); delay(350); myservo.write(90); // остановить вращение. delay(3000); } почему выполняется только первые три команды, вот эти PHP: myservo.write(0); delay(350); myservo.write(90); //остановить вращение. delay(15000); myservo.write(180); delay(350); и дальше они по кругу идут. не понимаю...
Прям мистика какая то. Есть еще у меня 2 сервопривода обычных. Думаю, дай хоть их попробую подключить(ранее работали нормально), подключаю, вставляю скетч из примеров. Нуль эмоций. Ни один ни второй. Вообще не крутятся. Нагнетающая обстановка накаляется. Что бы наверняка, поигрался со светодиодами на тех пинах на которых тестил сервы - все работает. У меня паника...
Может с питанием серв что то не так? если вдруг питаете их от +5 с платы контроллера то может виснуть. ну если вдруг ошибка в вашем скетче и можно загрузить скетч из папки примеров arduino, уж они должны корректно работать
Да, питаю с платы. Но вчера еще было норм все, сегодня какой то бардак. Попробую с отдельным питанием вечером.
Так ведь крона вроде не умеет много тока отдавать, у нее совершенно другое назначение - долго жить без просадки напряжения, отдавая мелкий ток. Где-то обсуждалось уже.
Микроконтроллер скорее всего уходит в рестарт. Чтобы убедиться в этом, поставьте в самом начале функции setup() следующие строки: Код (C): pinMode(13, OUTPUT); digitalWrite(13, HIGH); Если МК уходит в рестарт, то светодиод будет моргать (загораться при старте и тухнуть при рестарте). Если нет рестарта - будет гореть все время
Как то я немного запутался...не понимаю логику работы обоих серв. Прошиваю скетч Sweep. Работает как обычный серв так и с постоянным вращением, все ок. Вставляю свой скетч. Обычный серв нуль эмоций. С постоянным вращением - выполняет 3 команды и уходит в рестарт(попробовал 13 пин, он помигивает). Питаю серву от МК, я прошиваю через ПК, потом подключаю МК через усб к внешнему источнику питания +5 (блок питания от телефона с усб разьемом). Питаю серв соотвественно от ноги +5 с МК. UPD: Беру пример Sweep, меняю в нем любое значение, параметр, пытаюсь просто изменить хоть чуть чуть - сразу же идут ресеты МК. Как так?? Чуть изменил код, сделал остановку и задержку на 3 сек - все. Он все равно ресетится, ему что то не нравиться... Код (C): #include <Servo.h> Servo myservo; int pos = 90; void setup() { myservo.attach(9); } void loop() { for(pos = 0; pos < 180; pos += 1) { myservo.write(pos); delay(15); } myservo.write(90); delay(3000); for(pos = 180; pos>=1; pos-=1) { myservo.write(pos); delay(15); } }
Попробуйте не использовать USB блок питания. Стандартный USB порт ПК позволяет нагрузить на него 500 мА. Этого вполне должно хватить для питания сервы. Т.е. после прошивки скетча нет надобности переключаться на другой источник питания