Mebelhoff.ru

Мебель HOFF
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

Подключение кнопки к arduino

Кнопка (или кнопочный переключатель) – самый простой и доступный из всех видов датчиков. Нажав на нее, вы подаете контроллеру сигнал, который затем приводит к каким-то действиям: включаются светодиоды, издаются звуки, запускаются моторы. В своей жизни мы часто встречаемся с разными выключателями и хорошо знакомы с этим устройством.

Тактовые кнопки и кнопки-переключатели

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

Что такое кнопка? По сути, это достаточно простое устройство, замыкающее и размыкающее электрическую сеть. Выполнять это замыкание/размыкание можно в разных режимах, при этому фиксировать или не фиксировать свое положение. Соответственно, все кнопки можно поделить на две большие группы:

  • Кнопки переключатели с фиксацией. Они возвращаются в исходное состояние после того, как их отпустили. При в зависимости от начального состояния разделяют на нормально-замкнутые и нормально-разомкнутые кнопки.
  • Кнопки без фиксации (тактовые кнопки). Они фиксируются и остаются в том положении, в котором их оставили.

Вариантов различных кнопок великое множество, это действительно один из самых распространенных видов электронных компонентов.

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

Кнопки ардуино для простых проектов

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

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

Читайте так же:
Как починить выключатель света с регулятором яркости

Для удобства работы в комплекте с тактовой кнопкой обычно идет пластмассовый колпачок какого-то цвета, он достаточно очевидно надевается на кнопку и придает проекту менее хакерский вид.

Радиоуправляемый выключатель своими руками. Часть 3 — Софт выключателя

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

Но до сих пор это была «бездушная железка», которая несмотря на всю свою потенциальную мощь, заложенную в МК, — ничего не умеет.

В общем-то, наше основное устройство (если не рассматривать подключение радиомодуля) — нисколько не сложнее самой обычной Ардуинки, к которой подключено две кнопки и пара светодиодов (в результирующем устройстве — светодиоды заменены на транзисторные ключи, управляющие релюшками, но суть это не меняет).

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

Макет

Итак, чтобы получить «удобную» среду для подготовки нашего скетча, возьмем беспаечную макетку, любую ардуино-совместимую плату (в моем случае это cArduino Nano), две тактовые кнопки, два светодиода (с токоограничительными резисторами) и несколько перемычек:

Собираем макет, согласно принципиальной схемы из первого поста.

  • Кнопку для первого канала подключаем между пином A1 и «землей» (GND),
  • Кнопку второго канала — A0 и GND.
  • Светодиоды (индикаторы работы соответствующих транзисторных ключей и реле в радиовыключателе) подключаем к D3 и D4, соответственно.

В дальнейшем нужно будет этот скетч загрузить с помощью программатора в финальное устройство без переделок.

Перед началом разработки следует зафиксировать базовые функции, которые хотелось бы реализовать.

Желаемый функционал

Естественно, этот список «хотелок» находится в голове еще перед началом работы над проектом, сейчас просто сформулирую.

Читайте так же:
Выключатели для управления светом с двух точек
Базовые функции
  • По краткому нажатию включать/выключать соответствующий канал нагрузки (канал 1 — свет, канал 2 — вентиляция).
  • По длинному нажатию (более 2 секунд) — фиксировать факт такого нажатия («взводить флаг»), но пока ничего не делать дополнительно.
  • Если свет включен более, чем 1,5 минуты — автоматически включить вытяжку (к примеру, кто-то пошел в душ и забыл включить вентиляцию).
  • Если были включены оба канала и первый канал выключается, автоматически выключить второй канал через 10 минут.
  • В случае, если любую нагрузку включили, но забыли выключить — автоматически выключить (у каждого канала — свое время автовыключения: 60 и 10 минут соответственно).
Радиоуправление
  • Команды включения/выключения, поступившие по радиоканалу должны отрабатываться так, как если бы физически нажимались кнопки выключателя (т.е. полное сохранение базовой логики).
  • Через радиоканал нужно иметь возможность изменять все временные параметры работы выключателя.
  • Временные параметры работы включателя должны храниться в энергонезависимой памяти (чтобы после каждого выключения электричества не приходилось «переучивать» модуль).
  • Все параметры (текущее состояние, флаги «длинного нажатия», временные) должны быть доступны по радиоканалу как по запросу (ответ на запрос), так и на регулярной основе (раз в 15 секунд — «флуд» в эфир с текущими значениями параметров).

Программирование

  1. Сейчас каналов два, но в дальнейшем их может быть больше/меньше и код должен быть таким, чтобы это можно было просто корректировать (без существенного переписывания).
  2. Устройство встраиваемое и в случае какого-либо сбоя доставать его из стены крайне проблематично.

Для хранения параметров канала я создал следующую структуру:

Теперь уже можно написать несложный скетч.

В функции setup() проводим всю необходимую инициализацию и взводим «сторожевую собаку».

  • Работаем с кнопками (функция button_read()).
  • Отрабатываем автовыключение (autoOff()).
  • Реализуем дополнительную логику работы (chkLogic()).
  • Сбрасываем сторожевой таймер (wdt_reset()).
Читайте так же:
Кабельная розетка для сварочных кабелей

Базовые функции работают ровно так, как хотелось.
Короткие нажатия кнопок включают соответствующие светодиоды, доп.логика срабатывает. По длинному нажатию любой кнопки — на одну секунду зажигается встроенный светодиод (D13) на ардуино.

Теперь можно реализовывать и беспроводные функции.

Для этого обратимся к одному из моих ранних постов: Беспроводные коммуникации «умного дома».

Основные принципы, которые я там описывал — выдержали проверку временем и претерпели очень незначительные изменения.

Для работы с параметрами подойдет структура:

Для передаваемых данных буду использовать следующую структуру:

Согласно вышесказанного, мой модуль будет описываться следующим образом:

Видно, что все ключевые параметры, описывающие текущее состояние и временные параметры, присутствуют.

Собственно, теперь осталось прошить наш модуль.

Прошил, проверил работу — все ок, но обнаружилось, что в «чистом» МК все байты EEPROM установлены в 255, что дает соответствующие задержки.

По коду, который приведен выше, видно, что установка всех временных параметров производится только через радиоканал. Но про «управляющий модуль» я еще ничего не написал — поэтому надо как-то «изолированно» решить эту проблему.

Для этого можно воспользоваться примерами из библиотеки EEPROM и прямо из них прописать первичные (более актуальные) значения в соответствующие ячейки энергонезависимой памяти.

Последующая проверка показала, что теперь все работает как раз так, как хотелось.

Теперь устройство самодостаточно и готово выполнять свою основную функцию (даже без радиоканала). Можно монтировать.

Установка модуля

Радиоуправляемый модуль будет монтироваться внутрь стены из гипсокартона — поэтому выбрал подходящий корпус (чтобы в него влез собственно модуль и блок питания для него и чтобы этот корпус можно было без проблем пропихнуть в отверстие для установки монтажной коробки).

Плату блока питания взял там же, где и в прошлый раз — распилил блок питания для iPhone. В принципе, можно сделать конденсаторный блок питания или поискать уже готовые варианты (например, тут).

Читайте так же:
Как сделать автоматический выключатель света

Получилось как-то так (тут уже все подключено — проводил последние тесты перед монтажом в стену):

Корпус оказался несколько великоват, но имеющийся в хозяйстве более мелкий — не подошел.

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

  • Обесточиваем соответствующую цепь освещения.
  • Демонтируем имеющийся выключатель (не забываем промаркировать, какие пары идут на свет, а какие — на вытяжку).
  • Снимаем монтажную коробку
  • Подключаем радиовыключатель к соответствующим проводам (попутно избавляясь от «скруток», которые оставили «добрые строители»).
  • Аккуратно заталкиваем все провода и радиовыключатель в промежуток между листами гипсокартона (я решил расположить модуль выше выключателя, чтобы его было проще достать при необходимости).
  • Выводим провода, к которым будем подключать кнопочный выключатель в отверстие для установки монтажной коробки (специально взял принципиально отличающийся от остальной проводки кабель — МГТФ, чтобы в случае чего электрику было понятно, что тут «что-то странное» и с этим надо сначала разобраться).
  • Теперь можно установить монтажную коробку и подключить кнопочный выключатель.

Результат

Созданное устройство успешно смонтировано и отлично заменило «тупой» выключатель, добавив к нему чуточку «ума» (экономию электроэнергии в случаях «забывчивости» хозяев, автоматическое включение/выключение вытяжки и т.п.).

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

Это обычное реле (очень тихое) с двумя группами коммутируемых контактов. Может включать/выключать цепи на 220В (мощность небольшая, но для светодиодных ламп — вполне подойдет). Управляется 5В, можно подключать напрямую к выводу МК (без транзистора).

Это я к тому, что не стоит ко всему относиться как к догме (повторять все проекты «один в один») — ищите, подбирайте наиболее адекватные (для каждой конкретной задачи) решения, модифицируйте!

Читайте так же:
Как определить если ли ток в кабеле

Подключение тумблера с подсветкой в сеть:

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

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

После того как вы выяснили какой вывод за что отвечает главное правильно включать тумблер в вашу цепь рисунок №2.

Рисунок №2 – Правильное включение тумблера с подсветкой в сеть питания (паяльника на пример)

Как видно из рисунка №2 тумблер включён таким образом, что бы разрывать фазовый провод, и так что бы при коммутации цепи (замыкании контакта) загоралась его внутренняя подсветка.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector