Официальный сайт компании Arduino по адресу arduino.cc
Измерение длины импульсов импульсов сервопривода.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Сб, 19/09/2020 - 17:21
Здравствуйте! Я хочу управлять устройством через радиаппаратуру, приёмник выдаёт на выходе сигнал как для сервопривода. Как я понял в сигнале сервопривода изменяется только длина импульсов, а частота неизменна. Вопрос в том как её измерить, прост нигде ничего подобного не нашёл.
Буду рад любой помощи.
Ищите тему " измерение частоты ШИМ" , хотя речь идет о частоте - принцип тот же
С помощью pulseIn
https://fpv-freun.de/en/avr-projects/72-rc-schalter-mit-attiny-13
5 (или 10) там нужно добавить потому что на тини13 без него не компилится
#2 У меня почему-то не работает. Я добавил вывод значения duration в консоль, и оно всегда равно нулю.
https://www.arduino.cc/reference/en/language/functions/advanced-io/pulsein/
pulseIn(pin, value, timeout)
...
timeout (optional): the number of microseconds to wait for the pulse to start; default is one second. Allowed data types: unsigned long.
Поставьте ожидание 1000 для проверки
Заработало! Нужно было убрать таймаут.
Вы не "убрали" таймаут, а поставили его дефолтно 1 секунду. С вашим типом переменной duration это глупо, ведь у вас длина импульса не может быть больше 32 миллисекунд
И, кстати, если реальный импульс на вашей серве превысит 32.7 мс - ваш код начнет показывать погоду на марсе вместо длины импульса, подумайте об этом
У сервы импульс от 800 до 2400 мкс. Так что инт вполне для этой задачи.
Ну ок, инт нормально, но таймаут 1 сек будет тормозить программу
это надо делать правильно вот пример на два канала (для аппаратуры управления)
Нет, не будет. Пока идут импульсы таймаут вообще не при делах. Если импульсов нет, то нет разницы нет где висит программа. Приход первого импульса опять обнулит таймаут и программа сразу отреагирует. Тормозов не будет. Но для вообще универсальности таймаут всё же было бы хорошо установить где то как 30000. Особенно если в лупе будет ещё что то кроме светодиодиков.