Здравствуйте,
Есть андроид-автомагнитола умеющая обучаться кнопкам на мультируле (резистивная матрица).
Есть энкодер (модель [url=https://www.promelec.ru/product/328188/]EC28A[/url]), который хочу к этой магнитоле подключить. Он должен регулировать громкость.
Сделать это хочу через эмуляцию нажатия кнопок. Т.е. кручу влево - на входе магнитолы сопротивление равное сопротивлению при нажатии кнопки Volume-, кручу вправо - Volume+.
Сама логика зашита в Attiny24. Кроме этого, в ней же логика кнопки вкл/откл с памятью.
Аналогичную схему уже делал недавно на PIC10. Там только Volume-, Volume+ делал. И магнитола была андроид, но другой модели. И в принципе работало. Были небольшие проблемы с отлавливанием сигнала магнитолой изначально - не могла она понять, что кнопка нажата. Отрегулировал длину импульса нажатия кнопки (50мс) и стало нормально.
Алгоритм в pic и attiny примерно схожи, реализация разная только.
На Attiny что-то не заводится. Эмуляция в протеусе работает нормально вроде. Но магнитола считает, что поворот влево и вправо - это одно и тоже. Соответственно регулирует громкость только в одну сторону независимо от того куда крутить.
На схеме резистор R2 имитирует общее сопротивление мультируля в состоянии покоя.
При вращении ручки энкодера влево на ноге 7 появляется импульс, который на время замыкает резистор R6 на массу, подключаясь тем самым параллельно к сопротивлению мультируля. Их общее сопротивление равно сопротивлению при нажатой кнопке Volume-.
Аналогично и при вращении вправо - с ноги 6 идет импульс и замыкает R7, Volume+.
Так это должно работать.
Пробовал оптроны заменить на транзисторы, ситуация не изменилась.
Подумал также, что может энкодер загнулся. Заменил на другой, ничего не поменялось.
Возможно я что-то с инициализацией входов-выходов намудрил в МК. Т.к. в этом деле еще новичок.
Исходники программы и проект в proteus прилагаю.
Подскажите что не так
EncoderDecoder.zip