Как избавиться от установки сервопривода в нулевое положение при включении
- Войдите на сайт для отправки комментариев
Пнд, 07/01/2019 - 14:49
Проблема такова: При включении дуни серво устанавливается в ноль, затем идёт движение. Я попробовал при инициализации в сетапе считывать текущее и сравнивать с надлежащим, так что теперь серво ставится в 90, потом доходит до нуля, уже потом заходит в loop(). Каким образом можно провести инициализацию, чтобы серва начинала с той же позиции, либо при выключении обращалась в ноль? Про eeprom знаю, но перезаписей планируется очень много, я так всю память убью
#include <Servo.h> Servo serv1; int pos = 0; int oldpos; void setup() { serv1.attach(36); oldpos = serv1.read(); while (oldpos > pos){ oldpos -=1; serv1.write(oldpos); delay(10); } } void loop() { for (pos = 0; pos <= 170; pos += 1){ serv1.write(pos); delay(5); } for (pos = 170; pos >= 0; pos -= 1) { serv1.write(pos); delay(5); } }
странные вопросы задаете. Вы сами ставите серву в положение 0 в строке 21
Попытайтесь четче сформулировать (в первую очередь для себя самого) - что именно вы хотите.
И перепишите программу под свою задачу.
ну так я и сказал, что этот код пытается считывать текущее положение и выводить его в ноль. Только вместо текущего ставит 90 (как я понял, в строке 11)
Ладно, другой пример, раз меня в неточности уличают
Здесь нет ни одного программного выставления в ноль, но при включении это всё равно происходит
Серву нельзя оставить в том же положении как при включении. Залезте в библиотеку и посмотрите как инициализируется серва при подключении. Если не хотите сохранять значение при выключении, то нужен датчик положения. При включении считывать и сразу серву инициализировать этим значением. Для особо рукастых - можно вытянуть сигнал с резистора обратной связи сервы как датчик положения. Для метода поворота по градусу для подсчёта положения - нужно иметь концевик, что бы получить сигнал что серва в нулевом пололжении.
...серво... Про eeprom знаю, но перезаписей планируется очень много, я так всю память убью
Ресурс серво - нет конечно, но проект долгоиграющий, года на два со всеми тестами, так что включений-выключений будет нное количество тысяч
По даташиту ресурс EEPROM 100000 (сто тысяч), по факту говорят ещё больше.