Arduino Robot плавный стар с последующим нарастанием скорости
- Войдите на сайт для отправки комментариев
Чт, 16/03/2017 - 19:27
Доброго времени суток, уже какой день не могу приложить ума как решить задачу. Может вы мне поможете? Дело в том, что имею на руках Arduino Robot ( http://amperka.ru/product/arduino-robot) и мне нужно реализовать плавный старт и постепенное наращивание скорости до максимальной. Очень бы хотелось увидеть пример скетча где такая задача решена. Заранее спасибо.
Лично я вижу 4 варианта подхода к данной задаче:
1. Поиск на простиорах И-нета.
2. Заказ в теме "Ищу исполнителя".
3. Самостоятельное написание.
4. Забыть об этой идее, как о страшном сне.
Лично я вижу 4 варианта подхода к данной задаче:
Есть ещё пятый - подождать пока проснётся qwone и надеяться, что у того будет правильное настроение :)
А пятый вариант - секретный, новичкам о нем знать необязательно.
Мужики ну че началось, формулу подобрать не могу а вы меня стебете.
Вот например есть у меня код, но он проскакивает в 10 в цикле. Как это поправить, не пойму.
Вот например есть у меня код, но он проскакивает в 10 в цикле. Как это поправить, не пойму.
Не понимаю, что именно Вам надо поправить, но если Вы в строках 9 и 15 замените 10 на 9, то будет проскакивать "в 9 в цикле". Если если замените не на 9, а на 8, то .... угадайте с 3-х раз :)
Спасибо большое, стало быть проблема в этих злополучных 10, чуть позже попробую просто с i++ будет ли работать на ваш беглый проффисиональный взгляд?)
Не знаю. Я же не знаю ни что там за подключение, ни что там вообще делается.
Мой ХШ подсказывает, что "проскакивает" упирается в непонимание разрядности целых чисел и прибавляя 10 (9 или даже 8) автор тупо нарывается на переполнение байтовой переменной и никак не может дождаться заветного условия <255 .. может сменить тип счетчика на int или ПРАВИЛЬНО пользовать байтовые счетчики? Ошибка типовая для начинающих "сионистов" .. ваще-то. ;)
тысячу раз написано, что мир линеен только у военных.
Реальный мир - логарифмы, что шкала громкости, что звездные величина, что клавиатура пианино.
...но это лирика, а по делу - нужно умножать, а не прибавлять. Ардуинка, со своими 16 МГц, вполне справляется с плавающей точкой.
поэтому не i += 10; а i *= 1.022; Примерно, а коэффициент подбирать, 1.022 - это на около 250 шагов. Я обычно где-то 100 шагов делаю. Дело вкуса. Для 25 шагов - 1.246.
Ну я же написал, что новичок >_>
Спасибо большое, попробую сегодня.
тысячу раз написано, что мир линеен только у военных.
Реальный мир - логарифмы, что шкала громкости, что звездные величина, что клавиатура пианино.
ага.
..но это лирика, а по делу - нужно умножать, а не прибавлять. Ардуинка, со своими 16 МГц, вполне справляется с плавающей точкой.
Справляется, но тяжеловато. Зачем насиловать.
поэтому не i += 10; а i *= 1.022; Примерно, а коэффициент подбирать, 1.022 - это на около 250 шагов. Я обычно где-то 100 шагов делаю. Дело вкуса. Для 25 шагов - 1.246.
Мой вкус требует обычно так. Скорость модельки устанавливаем из диавпазоеа n=0..9. Пересчитываем шаги в управляющее m дето так m=n<4?n:(1<<(n-1))-1. Получаем 0,1,2,3,7,15,31,63,127,255. Как раз байт и распределено хороше и не напрягает процессор. Для диапазона 0..11 получим до 1023 - под ШИМ десятибитный.
ПС. Для плавного старта полезно может быть поддать газку сразу но не долго, для преодоления трения покоя.