Добавить в корзинуПозвонить
Найти в Дзене
Робототехника

Покоряем кнопку с помощью ардуино и управляем светодиодом. Урок 3.

Всем добрый день, это наш третий урок по тематике ардуино и сегодня мы ознакомимся с возможностями и работой кнопки. Предыдущий урок по управлению светодиодом - урок 2. Для того, чтобы уроки были системными я создал ГИД АРДУИНО в котором есть ссылки на все уроки. (уроки еще создаются). Начнем с того что, кнопка это элемент большого числа схем. В электронике её могут называть ключ. У неё есть несколько положений. Замкнута, разомкнута. Отсюда есть понятия нормальнозамкнута (НЗ) или нормальноразомкнута (НО) В силовой электрике такие кнопки тоже есть и называются как правило кнопочные посты.У меня в наличии есть несколько таких кнопок(НО), с ними и будем экспериментировать Для начала просто соберем простую схему: В данном случае мы используем Ардиуну как источник вторичного питания напряжением в 3.3 вольта. Принципиальная схема выглядит так. То есть просто нажатие на кнопку S1 приводит к свечению диода. Схема рабочая, но есть один нюанс необходимо ограничить ток. Стандартный

Всем добрый день, это наш третий урок по тематике ардуино и сегодня мы ознакомимся с возможностями и работой кнопки. Предыдущий урок по управлению светодиодом - урок 2.

Для того, чтобы уроки были системными я создал ГИД АРДУИНО в котором есть ссылки на все уроки. (уроки еще создаются).

Начнем с того что, кнопка это элемент большого числа схем. В электронике её могут называть ключ. У неё есть несколько положений. Замкнута, разомкнута. Отсюда есть понятия нормальнозамкнута (НЗ) или нормальноразомкнута (НО)

В силовой электрике такие кнопки тоже есть и называются как правило кнопочные посты.У меня в наличии есть несколько таких кнопок(НО), с ними и будем экспериментировать

Для начала просто соберем простую схему:

-3

В данном случае мы используем Ардиуну как источник вторичного питания напряжением в 3.3 вольта.

Принципиальная схема выглядит так.

-4

То есть просто нажатие на кнопку S1 приводит к свечению диода.

Схема рабочая, но есть один нюанс необходимо ограничить ток. Стандартный светодиод напряжением 3 вольта будет светить без последствий под данной схеме, но правильнее будет всегда думать о токе. Свечение диода на самом деле происходит из-за проходящего тока. идиоду достаточно 5-30 мА для того чтобы он светился и находился в рабочем состоянии. Поэтому немного дополним схему резистором.

-5

Резистор отлично вписался в схему. Тогда сама принципиальная схема изменится тоже.

-6


То есть кнопкой S1 мы замыкаем цепь от IOREF до GND через диод и резистор. Теперь вместо кнопки S1 Мф будем использовать сам контроллер. Такое исполнение и сделаем.

-7


Теперь у нас есть еще один диод, который включается через ардиуно. На самом деле мы это делали на 2 уроке. Но как теперь понять контроллеру, что пора его включать. Для этого задействуем вход от Ардуино. под номером 2. Тогда плата примет другой вид.

принципиальная схема стала уже интереснее.

-8
-9

На ней появились кнопка S2 и диод Led2. Схема выглядит корявенько с точки зрения чертежа, но понятно. Вход 2 у нас подключается к GND через кнопку, а диод анодом подключен к выходу 13 от ардуино.

Вполне рабочая схема. Забегая вперед скажу, что вход 2 ардуино это тоже часть схемы и там стоит управляющий элемент, который будет реагировать на подключение к GND. С другой стороны в момент размыкания S2 на входе на короткое время может быть неопределенное расстояние, что ведет к чувствительности к помехам. Поэтому вставим в схему сопротивления в 10кОм - так называемую "подтяжку". Когда у нас кнопка замкнута, то на входе 2 четкий логический 0. Когда кнопку размыкаем, то через резистор вход подтягивается к 3.3 вольта в данном случае. Смотрим схему.

-10

На макетной плате это выглядит так:

-11
Самое главное, это понимать роль каждого элемента на этой схеме. Во всяком случае именно для этого мы её поэтапно и строили.Теперь после этого переходим к самой программе.
int LedPin13=13; // 13 пин закрепляем за светодиодом
int ButtonPin2=2; // 2 пин закрепляем за кнопкой
void setup() { // инициализация программы
pinMode(LedPin13, OUTPUT); // задаем за 13 пином выход
pinMode(ButtonPin2, INPUT); // задаем за 2 пином вход
}
void loop() { // запустили цикл
int buttonState = digitalRead(ButtonPin2); // считываем состояние кнопки
if (buttonState == LOW) {
digitalWrite(LedPin13, HIGH); // зажигаем светодиод при нажатии кнопки
}
else {
digitalWrite(LedPin13, LOW); // гасим светодиод при отпускании кнопки
}
}

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

Обзор работы схемы:

Ну а вы можете смело приступать к следующему уроку.

Полезные ссылки:

🔹 ГИД АРДУИНО

🔹 Предыдущий урок. Урок 2. Управление частотой и скважностью включения светодиода.

Ставьте в закладки эту публикацию, а так же подписывайтесь в группу

🔹 вконтакте и телеграм.

-12