Переделывая старый не рабочий позиционер для двух метровой спутниковой антенны, столкнулся с проблемой реверсивного счета импульсов от герконового датчика линейного актуатора через опторазвязку на PC817. Счетчик простой не успевает все импульсы посчитать. Скорость импульсов 6-7 в секунду. Это замерено с помощью скоростного счетчика. Также замерил с помощью скоростного счетчика общее количество импульсов линейного актуатора от положения min до max. Получилось - 544.
Для увеличения скорости счета проекте использовал скоростной счетчик соединенный через повторитель входа со входом обычного счетчика. Почему обычный счетчик стал быстрее считать для меня осталось загадкой. Это вопрос первый. В данном проекте это меня устроило так как нет пропусков при подсчете импульсов.
С далеких времен, когда я устанавливал поворотные спутниковые тарелки, остались поворотные механизмы разных фирм. На маленьком двигателе на валу с одной стороны шестеренка для редуктора, а с другой - кольцевой магнит и датчик Холла. На двигатель при работе со спутниковым приемником подается в зависимости от поляризации или 13 вольт, или 18 вольт.
Решил я потестировать счетчики с помощью двигателя в качестве генератора импульсов. На двигатель подавал напряжение от литий ионного аккумулятора через преобразователь напряжения. Для теста собрал простую схемку. Дисплеи 4 и 5 для визуального контроля "недосчета".
Результаты такие: при 14 импульсах в сек считает без ошибок. Забыл написать выше. Дисплей по шине I2C. На форуме писалось что I2C сильный тормоз для счетчика. При 16 импульсах в секунду начинаются пропуски счета счетчика обычного. Что еще заметил. Когда счет доходит до значения более 999 ( три разряда) сразу начинается пропуск счета. 4 разряд сильно тормозит ардуино.
Для проверки скоростного счетчика на двигатель было накрутил напряжение для выдачи 100 импульсов в секунду. Скоростной счетчик работал. Напряжение в районе 23 вольта. Дальше напряжение не подымал. Движок жалко.
Далее для теста я удалил дисплеи 2 и 3 и конверторы к ним.
Скорость счета без ошибок поднялась до 25 импульсов в секунду без ошибок счета. Это прирост скорости счета почти 75%
25 импульсов в секунду это хорошо, но не достаточно чтобы сделать управление маленьким двигателем. При горизонтальной поляризации на двигатель подается 18 вольт. Это 72 импульса в секунду. Мне кажется нужно использовать скоростной счетчик.
Но как сделать в скоростном счетчике реверс я не знаю. Кто нибудь делал что то подобное?
Ниже проект мой позиционера.
Отправлено спустя 3 часа 26 минут 45 секунд:
Нашел в закромах Ардуино с шилдом. Дисплей подключен напрямую к УНО.
На 13 вольтах работает без ошибок.
На 18 вольтах уже ошибки.
Удалил вывод на дисплей текущих показаний. Оставил значения переменных.
18 вольт без ошибок. 84 импульса в секунду.
На 100 импульсах в секунду есть несколько пропусков. Напряжение на двигателе 21.2 вольта.
Вывод такой - за удобства шины I2C нужно расплачиваться быстродействием.
Вопросы что выше остались.
Люблю учиться на чужих ошибках.