Для общения и контроля с внешним миром наш микроконтроллер должен принимать сигналы из вне. За прием сигналов отвечаю пины микроконтроллера которые вы назначили как ВХОДЫ.
Нас интересуют Пины 0-13. Пины 14-19 особенные, они могут использоваться как цифровые так и как аналоговые.
Терминология:
ПИН - вход или выход контроллера предназначенный для соединения с переферией.
Панель тегов (Tags) - панель программы FLprog которая находиться в верхней части рабочего окна. В данной панели происходит назначение пинов и переменных.
Рабочее напряжение - рабочим напряжением контроллера является 5 вольт постоянного тока для большинства контроллеров АТМЕЛ и 3,3 вольта постоянного тока для ЕСП 8266. Внимательно следим что подаем - при превышении напряжения выгорание пина или контроллера в 70% случаев.
Информация - кнопка которая присутствует во всех элементах с низу с права и ведет в встроенный справочник где описывается основные функции элемента или блока.
Для того чтобы получить сигнал из внешнего мира мы должны выбрать пин микроконтроллера и назначить его входом. Для этого перейдем в панель тегов и выберем пункт добавить вход.
Для формирования входа нам неходимо задать:
Имя входа - оно может быть абсолютно любым, т.к. FLprog в итоге обозначит его цифровым кодом. Постарайтесь обозначать чтобы было понятно что это.
Вторым параметром входа является его Тип, здесь уже 2 вида. Цифровой и аналоговый. В интернете написано много про эти типы, пересказывать нет желания. Поэтому кратко:
Цифровой вход - это вход который может воспринимать сигнал 0 (Отсутствие напряжения - 0 вольт) и 1 (Выше уровня перехода, в идеале напряжение питания)
Идеально описывает данный процесс подача напряжения на пин через кнопку. Вовремя простоя можно подтянуть вход к "+" или к "-" резистором на 10 кОм и подавать обратное напряжение.
Если мы выбрали вход Цифровой, то появляется 2 галочки настройки пина. Это защита от дребезга и подтягивающий резистор.
Защита от дребезга. Во время включения кнопки она замыкается не сразу, а за счет выступающих микронеровностей в несколько этапов. Микроконтроллер зверь быстрый и считает все замыкания. Для устранения дребезга контакта ставим галочку Защита от дребезга - контроллер после первого сигнала не считает в течении некоторого времени сигналы - думая что это 1 сигнал. Если сигнал идет от какого либо элемента без дребезга, то галочку ставить не нужно. Т.к. можно потерять часть быстрых сигналов.
Подтягивающий резистор. Согласно рисунку выше необходимо подтянуть пин к "+" или к "-" резистором. Внутри контроллера очень часто уже встроен резистор для подтяжки к "+". Для упрощения схемы можно воспользоваться им и подавать минус в качестве сигнала, но у меня были случаи отказа резистора и нарушение работы логики. Будете собирать схему - поставьте резистор.
Мое личное мнение, что подача минуса в качестве сигнал предпочтительней и работает стабильнее
Аналоговый вход - это вход, который может мерить напряжение от 0 до опорного напряжения.
Если не выбирать источник опорного напряжения, то микроконтроллер мерит напряжение от 0 до напряжения питания (5 вольт). В популярных микроконтроллерах от Atmel напряжение мериться в пропорции 0-1024/0В-5В. То есть напряжение измеряется ступеньками с шагом 0,0048 вольт. Это очень неплохо. Если необходимо измерять маленькое напряжение или повысить точность - то на вход микроконтроллера Aref нужно подать свое напряжение, и в настройках контроллера по адресу Дерево проекта/Контроллер/Настройки контроллера нужно указать, что используется внешний источник опорного напряжения.
Самым явным примером применения аналогового входа является потенциометр. Изменяя угол поворота мы изменяем плечи делителя напряжения и получаем различное напряжение на выходе и, измеряя его контроллером, мы можем управлять каким либо значением.
Задание пина микроконтроллера неявным видом.
При использовании внутренних блоков программы мы можем получать значение с датчиков и микросхем, пинами которых мы управляем непосредственно внутри блока.
При этом пины которые вы назначили исключаются из выбора входов и наоборот, пины которые уже заданы не могут быть выбраны для блока.
Заключение
В данной статье я рассказал как назначить входы и получать сигналы для обработки.
<== В этой статье начало Здесь добавим выходы и эээксперементы ==>