Ребят, я хочу сделать так, чтобы я мог управлять сервоприводом с помощью потенциометра. Все подключил(как на фото), написал скетч(код ниже), питание, но, когда включаю контроллер, то серво ведет себя как бешаный: то дергается, то спокойно стоит. Потенциометр кручу - никакого действия со стороны привода не происходит. Может я где-то допустил ошибку? Код (Text): #include <Servo.h> Servo servo; int potensiometr = A0; int val; void setup() { servo.attach(9); } void loop() { val = analogRead(potensiometr); val = map(val, 0, 1023, 0, 179); servo.write(val); delay(1); }
Среднюю ногу потенциометра подключите к А0. В Вашем случае было бы правильно поступить следующим образом. Шаг 1. Подключить к ардуино потенциометр и написать скетч, который просто выводит показания потенциометра в монитор порта. Покрутить ручку и убедиться, что все подключено и написано правильно. Шаг 2. Отключить потенциометр. Подключить серву. Написать скетч, который через некоторые интервалы времени выдает разные значения на серву. Убедиться, что серва крутится именно так, как задумано. Попробовать разные варианты. Шаг 3. Только теперь, когда есть уверенность в том, что Вы умеете работать с каждым из компонентов и понимаете, что и как происходит, можно собирать итоговую схему и пытаться писать программу. Только так можно разобраться и чему-то научиться. Пытаться сразу собрать что-то сложное, не понимая более простых моментов - не лучший путь. "Лучше день потерять, зато потом за 5 минут долететь", как в мультике говорили. Если бы Вы делали свой проект таким способом, Вам бы не пришлось думать, в каком месте допущена ошибка - то ли в подключении потенциометра, то ли в подключении сервы, то ли где-то к коде.
Вот для потенциометра написао скетч, посмотрел мониторинг, переставил провода - все работает. Но для сервы как-то не получается написать скетч. Я нубяра в этом деле, не могли бы вы помочь написать мне скетч?
Спасибо, добрый человек! Все сразу заработало! А не подкскажите, как подключить два сервопривода сразу в arduino uno 3 без макетной платы? Мне нужно, чтобы с помощю потенциометра я управлял двумя приводами, то есть я кручу ручку потенциометра, приводы делают одинаковый оборот
Вопрос, а как сделать так, чтобы, скажем, я крутил потенциометр на 30 градусов, а серводвигатель поворачивался на 90?
Рабочий ход сервы 180 град. Поворот потенциометра на 30 град и соответственно сервы на 90 град требует ограничения угла поворота потенциометра 60 ю градусами #define POT_MAX_ANGLE 60.0 // макс. угол поворота потенциометра
Только вы немножко ошиблись, нужно наоборот увеличить угол поворота потенциометра #define POT_MAX_ANGLE 360.0 // макс. угол поворота потенциометра в таком случае у меня получилось задуманное)