Soir пише:
Айнцвайдрайченко пише:
передача сигнала - отдельная тема.
Это не совсем отдельная тема, это два взаимосвязанных вопроса. И начать надо с передачи/приема, а потом под выбранный способ подобрать (или создать свой) протокол передачи данных.
Дело в том, что я немного занимался ДУ, с передачей по радиоканалу. Тогда МК были мне в новинку. Поэтому, перед тем, как строить радиопередатчик и приёмник, я, для проверки прошивок, соединил проводом, линии данных кодера и декодера. Получилось. Отсюда я сделал вывод: контроллеры, предназначенные для работы по р/каналу, можно использовать для проводной передачи.
Конечно, хотелось бы иметь что-то универсальное. на все случаи жизни... А в данном, конкретном случае, я намерен использовать радиоканал 433,92 МГц или на др. частоту.
А как это "одновременно"?
Я вижу так: сколько кнопок одновременно нажато на передающем пульте, столько же светодиодов, соответствующих этим кнопкам, светится в приёмнике, независимо от порядка и времени их нажатия. Отпускаем кнопку - гаснет соответствующий светодиод.
Когда не нажата ни одна кнопка, МК кодера спит. При нажатии любой кнопки, на выходе данных появляется соответствующий код, который передаётся непрерывно и циклически, пока нажата кнопка. В течение всего времени передачи кода, на другом выходе (выход включения радиомодуля) присутствует лог. единица.
На приёмной стороне, в момент нажатия кнопки, появляется лог. единица на выходе канала, соответствующего данной кнопке. Понятно, что допустима задержка, необходимая для уверенного опознания кода контроллером декодера. При нажатии (не обязательно одновременном) 2х, 3х или 4х кнопок, светится соответствующее сочетание светодиодов. Не знаю, каким образом сочетаются при этом коды кнопок... Но подозреваю, что такое возможно :)
Если нет ни одного активного уровня на выходах, то контроллер декодера спит.
P.S. Ага, вот еще! У декодера остаются свободные выводы. Хорошо бы один из них использовать для выбора режима:
- Режим обычный. Кнопка канала нажата - диод канала горит, отпущена - гаснет.
- Режим "с залипанием". Первое нажатие - диод горит, второе нажатие - гаснет.
P.P.S. А вот ещё лучше (только что пришло в голову). Выбор режима и его параметра редактированием ЕЕПРОМ. Например, так:
- В ячейке число 00 - обычный режим для данного канала;
- В ячейке число от 01 до FE - "залипание", в десятых долях секунды равное числу в ячейке... А еще лучше, использовать 2 байта на каждый канал;
- В ячейке FF (для 2 байтов FF FF) - "вечное" (т.е. до повторного нажатия) залипание.