Есть проект, для которого необходимо простейшее управление коллекторным моторчиком 12V с энкодером на микроконтроллере:
- нажатие кнопки "Вперед" - вращение на полных оборотах, по часовой стрелке, на протяжении 30 сек. И пока поступают импульсы с энкодера;
- нажатие кнопки "Назад" - вращение на полных оборотах против часовой стрелки, на протяжении 30 сек. И пока поступают импульсы с энкодера;
- если в течении 2 сек. энкодер выдал меньше 50 импульсов (т. е. мотор провернул рычаг до упора) - стоп.
Вот и все. Программированием МК я не занимался, язык Си или Ассемблер - не знаю. Строить это на ардуино принципиально не хочу.
Решил, что с такой "мега сложной" задачей справлюсь с помощью гугля и своих скромных познаний в элетротехнике, но что то пошло не так...
Я разобрался как посчитать импульсы с энкодера таймером ТС1 на МК ATMega8 и остановить двигатель по заданному числу импульсов: сконфигурировал ТС1 на внешний источник тактирования, установил прерывание по совпадению, снимаю импульсы с входа Т1 счетчика, сравниваю с регистром ОСR1A (5000 импульсов) и при совпадении останавливаю двигатель подав лог. "0" на выход OC1A счетчика, который в свою очередь управляет драйвером L298.
Но вот как сделать, что бы мотор останавливать при падении импульсов до заданного числа да еще на протяжении заданного времени никак понять не могу. Подскажите кому не лень как в принципе можно решить эту "мега задачу"?
Всем откликнувшимся - категорическое Спасибо!


