Клавиатура
Общий случай. Можно использовать стандартную матрицу кнопок. Их количество определяется числом строк и столбцов линий сканирования.
При использовании “резиновой” клавиатуры с микроконтроллером, на диодах, защищающих сканирующие выходы, падает 0,7 вольт. Нажатая клавиша тоже имеет некоторое сопротивление. В результате, иногда, на входах не хватает напряжения для “распознавания” лог “0”. В таком случае вместо диодов можно поставить резисторы 150 – 200 Ом.
Вариант 1. Вот еще пример подключения клавиатуры с использованием меньшего числа портов микроконтроллера. Для стандартного включения матрицы 4*3 понадобится 7 портов, а в этом примере, за счет более сложной программной обработки понадобится всего 4. При опросе поочередно на одной из четырех линий устанавливают лог “0”, а другие программируют как входы. При этом, они обязательно должны быть подтянуты к высокому уровню. В этом примере подтяжка осуществляется внутренними резисторами. По состоянию входов вычисляется нажатая кнопка.
Загрузить код программы обработки клавиатуры под PIC16F84
LEDs
Очень интересна тема подключения светодиодов. При большом количестве последних всегда жалко тратить свободные порты на индикацию и очень не хочется вводить дополнительные элементы. Тем не менее, существует много способов подключения светодиодов. Один из них – встречное включение. На таблице ниже можно увидеть сколько светодиодов можно подключить к определенному числу портов:
Портов | 2 | 3 | 4 | 5 | Sechs | 7 | 8 |
Св.диодов | 2 | Sechs | 12 | 20 | 30 | 42 | 56 |
Логика работы такова: чтобы зажечь необходимый светодиод нужно установить соответствующие порты как выходы и подать требуемые логические уровни. Не используемы выводы микроконтроллера программируются как входы, чтобы не засвечивать не нужные светодиоды. В принципе, можно засветить любую комбинацию светодиодов, используя временное мультиплексирование, но при таком способе незначительно снижается яркость свечения.
Управление нагрузкой 220В
Для плавного управления нагрузкой, например, лампой освещения, можно использовать симистор. Открывается симистор током при подачи на управляющий электрод импульса. Закрывается, когда ток, проходящий через него, становится равным нулю, когда переменное напряжение меняет знак. Для управления симистором удобно использовать микроконтроллер, который, отслеживая переход напряжения через ноль, выдает управляющий импульс открывания в каждой полуволне в определенный момент времени (дважды за период). Временные диаграммы показаны на рисунке:
В принципе, из схемы можно исключить транзистор. Но для обеспечения необходимого тока открывания симистора (около 100 мА для данного типа) необходимо объединить несколько портов микроконтроллера, так как один порт обеспечивает только 20 мА. Выводы микроконтроллера, в этом случае, нужно будет подключить непосредственно к положительному выводу конденсатора С1. Также, нужно изменить полярность управляющих импульсов на противоположную. Транзистор, примененный в схеме – BC817, симистор – ТС106-10.