Найти тему
FL школа

FLprog. Входы микроконтроллера

Для общения и контроля с внешним миром наш микроконтроллер должен принимать сигналы из вне. За прием сигналов отвечаю пины микроконтроллера которые вы назначили как ВХОДЫ.

Пины микроконтроллера Atmega328
Пины микроконтроллера Atmega328

Нас интересуют Пины 0-13. Пины 14-19 особенные, они могут использоваться как цифровые так и как аналоговые.

Терминология:

ПИН - вход или выход контроллера предназначенный для соединения с переферией.
Панель тегов (Tags) - панель программы FLprog которая находиться в верхней части рабочего окна. В данной панели происходит назначение пинов и переменных.
Рабочее напряжение - рабочим напряжением контроллера является 5 вольт постоянного тока для большинства контроллеров АТМЕЛ и 3,3 вольта постоянного тока для ЕСП 8266. Внимательно следим что подаем - при превышении напряжения выгорание пина или контроллера в 70% случаев.
Информация - кнопка которая присутствует во всех элементах с низу с права и ведет в встроенный справочник где описывается основные функции элемента или блока.

Для того чтобы получить сигнал из внешнего мира мы должны выбрать пин микроконтроллера и назначить его входом. Для этого перейдем в панель тегов и выберем пункт добавить вход.

Панель создания входов
Панель создания входов

Для формирования входа нам неходимо задать:

Имя входа - оно может быть абсолютно любым, т.к. FLprog в итоге обозначит его цифровым кодом. Постарайтесь обозначать чтобы было понятно что это.

Вторым параметром входа является его Тип, здесь уже 2 вида. Цифровой и аналоговый. В интернете написано много про эти типы, пересказывать нет желания. Поэтому кратко:

Цифровой вход - это вход который может воспринимать сигнал 0 (Отсутствие напряжения - 0 вольт) и 1 (Выше уровня перехода, в идеале напряжение питания)
Напряжение перехода 0/1 для микроконтроллеров
Напряжение перехода 0/1 для микроконтроллеров

Идеально описывает данный процесс подача напряжения на пин через кнопку. Вовремя простоя можно подтянуть вход к "+" или к "-" резистором на 10 кОм и подавать обратное напряжение.

Подключение кнопки к микроконтроллеру
Подключение кнопки к микроконтроллеру

Если мы выбрали вход Цифровой, то появляется 2 галочки настройки пина. Это защита от дребезга и подтягивающий резистор.

Защита от дребезга. Во время включения кнопки она замыкается не сразу, а за счет выступающих микронеровностей в несколько этапов. Микроконтроллер зверь быстрый и считает все замыкания. Для устранения дребезга контакта ставим галочку Защита от дребезга - контроллер после первого сигнала не считает в течении некоторого времени сигналы - думая что это 1 сигнал. Если сигнал идет от какого либо элемента без дребезга, то галочку ставить не нужно. Т.к. можно потерять часть быстрых сигналов.

Подтягивающий резистор. Согласно рисунку выше необходимо подтянуть пин к "+" или к "-" резистором. Внутри контроллера очень часто уже встроен резистор для подтяжки к "+". Для упрощения схемы можно воспользоваться им и подавать минус в качестве сигнала, но у меня были случаи отказа резистора и нарушение работы логики. Будете собирать схему - поставьте резистор.

Мое личное мнение, что подача минуса в качестве сигнал предпочтительней и работает стабильнее
Окно настройки цифрового входа
Окно настройки цифрового входа
Аналоговый вход - это вход, который может мерить напряжение от 0 до опорного напряжения.
Настройки аналогового входа.
Настройки аналогового входа.

Если не выбирать источник опорного напряжения, то микроконтроллер мерит напряжение от 0 до напряжения питания (5 вольт). В популярных микроконтроллерах от Atmel напряжение мериться в пропорции 0-1024/0В-5В. То есть напряжение измеряется ступеньками с шагом 0,0048 вольт. Это очень неплохо. Если необходимо измерять маленькое напряжение или повысить точность - то на вход микроконтроллера Aref нужно подать свое напряжение, и в настройках контроллера по адресу Дерево проекта/Контроллер/Настройки контроллера нужно указать, что используется внешний источник опорного напряжения.

Выбор опорного напряжения
Выбор опорного напряжения

Самым явным примером применения аналогового входа является потенциометр. Изменяя угол поворота мы изменяем плечи делителя напряжения и получаем различное напряжение на выходе и, измеряя его контроллером, мы можем управлять каким либо значением.

Подключение потенциометра к пину микроконтроллера.
Подключение потенциометра к пину микроконтроллера.
Задание пина микроконтроллера неявным видом.

При использовании внутренних блоков программы мы можем получать значение с датчиков и микросхем, пинами которых мы управляем непосредственно внутри блока.

Пример настройки датчика света
Пример настройки датчика света

При этом пины которые вы назначили исключаются из выбора входов и наоборот, пины которые уже заданы не могут быть выбраны для блока.

Заключение

В данной статье я рассказал как назначить входы и получать сигналы для обработки.

<== В этой статье начало Здесь добавим выходы и эээксперементы ==>