Управление светом в доме с помощью сенсорного датчика и Arduino

Для управления различными устройствами в настоящее время придумано достаточно много разнообразных кнопок, переключателей и датчиков. Одним из подобных устройств является сенсорный датчик, который еще называют датчиком касания – от англ. Touch Sensor. Сенсорные датчики значительно упрощают ввод информации и легко подключаются к различным микроконтроллерам. Сейчас наиболее распространены емкостные сенсорные датчики – его подключение к плате Arduino мы и рассмотрим в данном проекте. С его помощью мы будем включать и выключать свет в комнате.

Внешний вид проекта управления светом в доме с помощью сенсорного датчика и Arduino

Ранее на нашем сайте мы рассматривали подключение панели с сенсорными кнопками к микроконтроллеру AVR.

Сенсорный датчик (датчик касания) TTP223

Сенсорный датчик, который мы будем рассматривать в данном проекте, состоит из модуля емкостного сенсорного датчика и драйвера датчика на основе микросхемы TTP223. Рабочее напряжение для микросхемы TTP223 составляет от 2 до 5,5 В. Потребление тока у этой микросхемы очень низкое. Благодаря относительно дешевой цене, низкому энергопотреблению и легкости интеграции в различную встраиваемую электронику сенсорные датчики TTP223 получили в настоящее время достаточно широкое распространение.

Внешний датчика TTP223 показан на следующем рисунке.

Внешний вид сенсорного датчика (датчика касания) TTP223Как видно из представленного рисунка, распиновка датчика достаточно проста. На одной стороне платы датчика расположена сенсорная область размером 11 мм на 10,5 мм с диапазоном срабатывания около 5 мм. На другой стороне платы датчика установлена микросхема TTP223, светодиод, резисторы и конденсатор.

При подключении датчика TTP223 к питанию по умолчанию на выходе OUT устанавливается напряжение низкого уровня (LOW). Если прикоснуться пальцем к рабочей области датчика, то выход OUT переключается с низкого уровня на высокий и загорается встроенный светодиод датчика. При необходимости настройки датчика можно использовать перемычки А и В, а так же перемычку без подписи (по умолчанию перемычки не установлены).

Назначение перемычек сенсорного датчика TTP223

Назначение перемычек А и В:
► А – 0 / В – 0 – без фиксации состояния, при касании на выходе «1»
► A – 1 / B – 0 – без фиксации состояния, при касании на выходе «0»
► A – 0 / B – 1 – с фиксацией состояния (триггер), при касании на выходе «1»
► A – 1 / B – 1 – с фиксацией состояния (триггер), при касании на выходе «0»

То есть, перемычка А устанавливает логическое состояние на выходе «1» или «0» при нажатии, а перемычкой В включаем триггер и чтобы переключить состояние, необходимо повторно коснуться датчика.

Настройка чувствительности осуществляется с помощью добавления конденсатора от 0 до 50 пФ, где 0 пф соответствует максимальной чувствительности, а 50 пф – самой низкой чувствительности.

Для более подробного изучения принципов работы датчика рекомендуем вам посмотреть даташит на датчик TTP 223.

Немного о принципах работы реле

В этом проекте мы будем управлять включением/выключением электрической лампочки с помощью сенсорного датчика, платы Arduino и реле. Принцип работы реле различного типа показан на следующем рисунке.

Принцип работы реле

NO на этом рисунке обозначает нормально разомкнутые контакты, а NC – нормально замкнутые контакты. L1 и L2 – это выводы катушки реле. Когда на катушку реле не подано напряжения реле находится в выключенном состоянии – якорь (POLE) подключен к нормально замкнутому контакту. При подаче питания на катушку якорь реле подключается к нормально разомкнутому контакту.

Очень важно определить рабочие параметры реле перед тем как включать его в схему. Реле различаются, в частности, по рабочему напряжению, прикладываемому к катушке реле (контакты L1 и L2). Некоторые реле имеют рабочее напряжение 12 В, некоторые – 6 В, а некоторые – 5 В. Для нашего проекта мы использовали реле с управляющим (рабочим) напряжением 5 В с возможностью коммутации напряжения 250 В с током до 6 А.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. USB кабель для программирования и питания.
  3. Сенсорный датчик (Touch Sensor) TTP223.
  4. Транзистор BC549B.
  5. Диод 1N4007.
  6. Резистор 2 кОм.
  7. Резистор 4,7 кОм.
  8. Реле с управляющим напряжением 5 В.
  9. Электрическая лампочка с держателем.
  10. Макетная плата.
  11. Соединительные провода.

Резистор 2 кОм, транзистор BC549B и диод 1N4007 можно заменить модулем реле.

Работа схемы

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

Схема управления светом в доме с помощью сенсорного датчика и платы ArduinoТранзистор используется для включения и выключения реле – он используется в связи с тем, что контакты платы Arduino не способны обеспечить ток, необходимый для срабатывания реле. Диод 1N4007 предназначен для блокировки (гашения) электромагнитных импульсов, возникающих при включении и выключении реле. Сенсорный датчик непосредственно подключен к плате Arduino.

Внешний вид собранной на макетной плате конструкции проекта показан на следующем рисунке.

Внешний вид собранной на макетной плате конструкции проекта

А на следующем рисунке показана схема соединений проекта на макетной плате.

Схема соединений проекта на макетной плате

Объяснение программы для Arduino

Полный текст программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

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

Далее в программе мы должны инициализировать все используемые контакты: сенсорный датчик подключен к контакту A5, реле – к контакту A4. Для работы программы также используется встроенный в плату светодиод, подключенный к контакту 13.

Далее в функции void setup() нам необходимо задать режимы работы используемых контактов.

Далее объявим две переменные целого типа: переменная ‘condition’ используется для хранения состояния сенсорного датчика (нажат он или нет). Переменная ‘state’ используется для хранения состояния светодиода и реле – включены они или выключены.

Сенсорный датчик во время нажатия (прикосновения) изменяет свое состояние с логического 0 на логическую 1. Мы состояние датчика считываем с помощью функции digitalRead() и сохраняем его в соответствующей переменной. Когда состояние датчика равно 1 состояния светодиода и реле изменяются. Тем не менее, для устранения эффекта дребезга контактов в программе используется соответствующая задержка (debounce delay). Эта задержка delay(250) используется для распознавания одиночного нажатия на датчик.

При тестировании проекта соблюдайте меры предосторожности при работе с напряжением сети переменного тока (220 В).

Тестирование работы проекта

Исходный код программы (скетча)

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

Видео, демонстрирующее работу проекта

(Проголосуй первым!)
Загрузка...
64 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *