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

Датчик касания для Arduino

Модуль представляет собой сенсорную кнопку, на его выходе формируется цифровой сигнал, напряжение которого соответствует уровням логических единицы и нуля. Относится к емкостным датчикам касания. С такого рода устройствами ввода данных мы сталкиваемся при работе с дисплеем планшета, айфона или тачскрин монитора. Если на мониторе мы нажимаем на иконку стилусом или пальцем, то здесь для этого используется область поверхности платы размером с иконку Windows касание которой производится только пальцем, стилус исключается. Основа модуля микросхема TTP223-BA6 . Есть индикатор питания.

Управление ритмом воспроизведения мелодии

При установке в прибор сенсорную область поверхности платы модуля закрывают тонким слоем стеклотекстолита, пластмассы, стекла иди дерева. К преимуществам емкостной сенсорной кнопки относится большой срок службы и возможность герметизации передней панели прибора, антивандальные свойства. Это позволяет использовать датчик касания в работающих на открытом воздухе приборах в условиях прямого попадания капель воды. Например, кнопка дверного звонка или бытовые приборы. Интересно применение в оборудовании умный дом - замена выключателей освещения.

Характеристики

Напряжение питания 2,5 - 5,5 В
Время отклика на касание в различных режимах потребления тока
низкое 220 мс
обычное 60 мс
Выходной сигнал
Напряжение
высокий лог. уровень 0,8 Х напряжение питания
низкий лог. уровень 0,3 Х напряжение питания
Ток при питании 3 В и логических уровнях, мА
низкий 8
высокий -4
Размеры платы 28 x 24 x 8 мм

Контакты и сигнал

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

Почему это работает или немного теории

Тело человека, как и все что нас окружает, обладает электрическими характеристиками. При срабатывании датчика прикосновения проявляются наши емкость, сопротивление, индуктивность. На нижней стороне платы модуля расположен участок фольги соединенный с входом микросхемы. Между пальцем оператора и фольгой на нижней стороне расположен слой диэлектрика - материал несущей основы печатной платы модуля. В момент касания происходит заряд тела человека микроскопическим током, протекающим через конденсатор, образованный участком фольги и пальцем человека. При упрощенном рассмотрении ток протекает через два последовательно соединенных конденсатора: фольга, палец находящихся на противоположных поверхностях платы и тело человека. Поэтому если поверхность платы закрыть тонким слоем изолятора, то это приведет к увеличению толщины слоя диэлектрика конденсатора фольга-палец и не нарушит работу модуля.
Микросхема TTP223-BA6 фиксирует ничтожный импульс микротока и регистрирует прикосновение. Благодаря свойствам микросхемы работать с такими токами никакого вреда такая технология не наносит. Когда мы касаемся корпуса работающего телевизора или монитора через нас проходят микротоки большей величины.

Режим пониженного потребления

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

Работа совместно с Arduino UNO

Загрузите в Arduino UNO следующую программу.

#define ctsPin 2 // Контакт подключения линии сигнала датчика касания
int ledPin = 13; // Контакт для светодиода

Void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
pinMode(ctsPin, INPUT);
}

Void loop() {
int ctsValue = digitalRead(ctsPin);
if (ctsValue == HIGH){
digitalWrite(ledPin, HIGH);
Serial.println("TOUCHED");
}
else{
digitalWrite(ledPin,LOW);
Serial.println("not touched");
}
delay(500);
}

Соедините датчик касания и Arduino UNO как показано на рисунке. Схему можно дополнить включающимся при касании датчика светодиодом, подключенным через резистор 430 Ом к контакту 13. Сенсорные кнопки часто оснащают индикатором касания. Так удобней работать оператору. При нажатии на механическую кнопку мы чувствуем щелчок независимо от реакции системы. Здесь новизна технологии немного удивляет из-за нашей моторики сложившейся годами. Индикатор нажатия избавляет нас от излишнего ощущения новизны.

Электор 2008 №7-8

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

Сенсорные ёмкостные датчики имеют очевидные преимущества по сравнению с другими датчиками (например, срабатывающими от наводок частотой 50/60 Гц или измеряющими сопротивление), но они более трудоёмки в реализации. Производители микросхем, такие как Microchip в прошлом создали специальные ИС для этих целей. Однако и сейчас можно создать надёжный ёмкостный детектор и/или переключатель, используя только небольшое число стандартных компонентов.

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

Рис. 1. IC1 - 561ТЛ1

Генератор прямоугольных импульсов, выполненный на триггере Шмитта (ИС CD4093);
RC цепь с гасящим диодом, за которыми идёт триггер Шмитта/контактная пластина с изолирующим конденсатором ёмкостью 470 пФ;
- Интегрирующая RC цепь, преобразующая изменения ширины импульсов в напряжение. Это напряжение лежит в районе 2,9...3,2 вольт, когда до пластины дотрагиваются, и 2,6 вольт в другом случае.
- Компаратор LM 339 используется для сравнения напряжения в точке C с образцовым напряжением в точке D. Последнее составляет около 2,8 В и устанавливается делителем напряжения.

Как только произойдёт касание сенсорной пластины, выход схемы станет активным. Для пояснения работы схемы на рисунке 2 приведены осциллограммы сигналов в разных точках. Пунктирная линия показывает состояние при касании пластины датчика, сплошная линия - при отсутствии касания.

Рис. 2. Осциллограммы сигналов а разных точках.

Образцовое напряжение в точке D настраивается один раз с помощью делителя R4/R5 (изменяя значение R4). Величина этого напряжения сильно зависит от площади поверхности пластины-датчика (обычно несколько квадратных сантиметров). Большая площадь поверхности пластины увеличивает ёмкость и напряжение в точке C тем не менее будет больше, по сравнению с тем напряжением, когда пластины не касались. Образцовое напряжение в точке D должно быть установлено ближе к значению 3,4 В. Датчик прикосновения может так же работать с пластинами большой площади (например, можно использовать в качестве сенсора весь корпус).

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

Вим Абуйс


Рис. 4. Расположение компонентов на печатной плате.


Рис. 5. Печатная плата.


Рис. 6. Печатная плата (зеркальный вид).

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

Модуль датчика касания KY-036

Модуль, по сути, представляет собой сенсорную кнопку. Как понимает автор, принцип действия устройства основан на том, что, прикасаясь к контакту датчика человек, становится антенной для приема наводок на частоте бытовой сети переменного тока . Эти сигналы поступают на компаратор LM393YD

Габариты модуля 42 х 15 х 13 мм, масса 2,8 г., в плате модуля имеется крепежное отверстие диаметром 3 мм. Индикация питания осуществляется светодиодом L1.

При срабатывании датчика загорается (мигает) светодиод L2. Потребляемый ток 3,9 мА в ждущем режиме и 4,9 мА при срабатывании.

Не совсем ясно, какой порог чувствительности датчика должен регулироваться переменным резистором. Данные модули с компаратором LM393YD являются стандартными и к ним припаивают различные датчики, получая, таким образом, модули различного назначения. Выводы питания «G» — общий провод, «+» – питание +5В. На цифровом входе «D0» присутствует низкий логический уровень, при срабатывании датчика на выходе появляется импульсы с частотой 50 Гц. На контакте «A0» присутствует инвертированный относительно «D0» сигнал . В целом модуль срабатывает дискретно, как кнопка, в чем можно убедиться с помощью программы LED_with_button .

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

Модуль датчика звука KY-037

Модуль должен срабатывать от звуков, громкость которых превышает заданный предел. Чувствительным элементом модуля является микрофон, работающий вместе с компаратором на микросхеме LM393YD .

Габариты модуля 42 х 15 х 13 мм, масса 3,4 г., аналогично предыдущему случаю в плате модуля имеется крепежное отверстие диаметром 3 мм. Индикация питания осуществляется светодиодом L1. Выводы питания «G» — общий провод, «+»– питание +5В.

Потребляемый ток 4,1 мА в ждущем режиме и 5 мА при срабатывании.

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

На цифровом входе «D0» присутствует низкий логический уровень, при превышении заданного порога низкий уровень меняется на высокий. Порог срабатывания можно регулировать переменным резистором. При этом загорается светодиод L2. При резком громком звуке наблюдается задержка в 1-2 с при обратном переключении.

В целом полезный датчик для организации системы умного дома или сигнализации.

Модуль датчика звука KY-038

С первого взгляда модуль кажется аналогичным предыдущему. Чувствительным элементом модуля является микрофон, следует отметить, что по данному модулю в сети не так уж много информации .

Габариты модуля 40 х 15 х 13 мм, масса 2,8 г., аналогично предыдущему случаю в плате модуля имеется крепежное отверстие диаметром 3 мм. Индикация питания осуществляется светодиодом L1. Выводы питания «G» — общий провод, «+»– питание +5В.

При срабатывании геркона загорается светодиод L2. Потребляемый ток 4,2 мА в ждущем режиме и до 6 мА при срабатывании.

На выводе «A0» при повышении уровня громкости происходит увеличение показаний (использована программа AnalogInput2).

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

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

Выводы

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

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

  1. http://arduino-kit.ru/catalog/id/modul-datchika-kasaniya
  2. http://www.zi-zi.ru/module/module-ky036
  3. http://robocraft.ru/blog/arduino/57.html
  4. http://arduino-kit.ru/catalog/id/modul-datchika-zvuka
  5. http://www.zi-zi.ru/module/module-ky037
  6. http://arduino-kit.ru/catalog/id/modul-datchika-zvuka_
  7. http://smart-boards.ml/module-audiovideo-4.php

Датчик касания для Arduino

Модуль представляет собой сенсорную кнопку, на его выходе формируется цифровой сигнал, напряжение которого соответствует уровням логических единицы и нуля. Относится к емкостным датчикам касания. С такого рода устройствами ввода данных мы сталкиваемся при работе с дисплеем планшета, айфона или тачскрин монитора. Если на мониторе мы нажимаем на иконку стилусом или пальцем, то здесь для этого используется область поверхности платы размером с иконку Windows касание которой производится только пальцем, стилус исключается. Основа модуля микросхема TTP223-BA6 . Есть индикатор питания.

Управление ритмом воспроизведения мелодии

При установке в прибор сенсорную область поверхности платы модуля закрывают тонким слоем стеклотекстолита, пластмассы, стекла иди дерева. К преимуществам емкостной сенсорной кнопки относится большой срок службы и возможность герметизации передней панели прибора, антивандальные свойства. Это позволяет использовать датчик касания в работающих на открытом воздухе приборах в условиях прямого попадания капель воды. Например, кнопка дверного звонка или бытовые приборы. Интересно применение в оборудовании умный дом - замена выключателей освещения.

Характеристики

Напряжение питания 2,5 - 5,5 В
Время отклика на касание в различных режимах потребления тока
низкое 220 мс
обычное 60 мс
Выходной сигнал
Напряжение
высокий лог. уровень 0,8 Х напряжение питания
низкий лог. уровень 0,3 Х напряжение питания
Ток при питании 3 В и логических уровнях, мА
низкий 8
высокий -4
Размеры платы 28 x 24 x 8 мм

Контакты и сигнал

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

Почему это работает или немного теории

Тело человека, как и все что нас окружает, обладает электрическими характеристиками. При срабатывании датчика прикосновения проявляются наши емкость, сопротивление, индуктивность. На нижней стороне платы модуля расположен участок фольги соединенный с входом микросхемы. Между пальцем оператора и фольгой на нижней стороне расположен слой диэлектрика - материал несущей основы печатной платы модуля. В момент касания происходит заряд тела человека микроскопическим током, протекающим через конденсатор, образованный участком фольги и пальцем человека. При упрощенном рассмотрении ток протекает через два последовательно соединенных конденсатора: фольга, палец находящихся на противоположных поверхностях платы и тело человека. Поэтому если поверхность платы закрыть тонким слоем изолятора, то это приведет к увеличению толщины слоя диэлектрика конденсатора фольга-палец и не нарушит работу модуля.
Микросхема TTP223-BA6 фиксирует ничтожный импульс микротока и регистрирует прикосновение. Благодаря свойствам микросхемы работать с такими токами никакого вреда такая технология не наносит. Когда мы касаемся корпуса работающего телевизора или монитора через нас проходят микротоки большей величины.

Режим пониженного потребления

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

Работа совместно с Arduino UNO

Загрузите в Arduino UNO следующую программу.

#define ctsPin 2 // Контакт подключения линии сигнала датчика касания
int ledPin = 13; // Контакт для светодиода

Void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
pinMode(ctsPin, INPUT);
}

Void loop() {
int ctsValue = digitalRead(ctsPin);
if (ctsValue == HIGH){
digitalWrite(ledPin, HIGH);
Serial.println("TOUCHED");
}
else{
digitalWrite(ledPin,LOW);
Serial.println("not touched");
}
delay(500);
}

Соедините датчик касания и Arduino UNO как показано на рисунке. Схему можно дополнить включающимся при касании датчика светодиодом, подключенным через резистор 430 Ом к контакту 13. Сенсорные кнопки часто оснащают индикатором касания. Так удобней работать оператору. При нажатии на механическую кнопку мы чувствуем щелчок независимо от реакции системы. Здесь новизна технологии немного удивляет из-за нашей моторики сложившейся годами. Индикатор нажатия избавляет нас от излишнего ощущения новизны.

О том, как прикрутить к микроконтроллеру ёмкостный сенсор прикосновения. Эта идея показалась мне довольно перспективной, некоторым приборам сенсорные клавиши подошли бы куда лучше механических. В этой статье я расскажу о своей реализации этой полезной технологии на основе отладочной платы STM32 Discovery.

Итак, только начав осваивать STM32, я решил в качестве упражнения добавить устройству способность определять прикосновения. Начав разбираться с теорией и практикой по вышеупомянутой статье, я повторил схему товарища "a. Она работала идеально, но мне, любителю минимализма, захотелось её упростить, избавившись от лишних элементов. Лишними на мой взгляд оказались внешний резистор и дорожка к питанию. Всё это уже есть в большинстве микроконтроллеров, в том числе в AVR и в STM32. Я имею в виду подтягивающие резисторы портов ввода/вывода. Почему бы не заряжать пластинку и наши пальцы через них? В ожидании подвоха я собрал на макетке схему, которая, к моему удивлению, заработала с первого же раза. Собственно говоря, схемой это называть даже смешно, ведь всё что нам нужно - это просто подсоединить контактную пластинку к ножке отладочной платы. Всю работу на себя возьмёт микроконтроллер.

Что же из себя представляет программа? Во первых две функции:
Первая выводит на ножку сенсора (нулевой пин регистра C) логический «0»

Void Sensor_Ground (void) { GPIOC->CRL = 0x1; GPIOC->BRR |= 0x1; }

Вторая настраивает тот же вывод на вход, с подтяжкой к питанию.

Void Sensor_InPullUp (void) { GPIOC->CRL = 0x8; GPIOC->BSRR |= 0x1; }

Теперь в начале цикла опроса вызовем Sensor_Ground(), и подождём некоторое время чтобы разрядить на землю весь остаточный заряд на сенсоре. Затем обнулим переменную count, которой будем считать время зарядки сенсора и вызовем Sensor_InPullUp().

Sensor_Ground(); Delay(0xFF); //простой пустой счётчик count = 0; Sensor_InPullUp();

Теперь сенсор начинает заряжаться через внутренний подтягивающий резистор номиналом порядка десятков КОм (30..50КОм у STM32). Постоянная времени такой цепи будет равняться считанным тактам, поэтому я поменял кварцевый резонатор на отладочной плате на более быстрый, 20МГц (кстати, я не сразу заметил, что оказывается на STM32 Discovery кварц меняется без пайки). Итак считаем такты процессора, пока на входе не появится логическая единица:

While(!(GPIOC->IDR & 0x1)) { count++; }

После выхода из этого цикла в переменной count будет храниться число, пропорциональное ёмкости сенсорной пластинки. В моём случае с чипом на 20МГц значение count равняется 1 при отсутствии нажатия, 7-10 при самом лёгком касании, 15-20 при нормальном прикосновении. Остаётся лишь сравнить её с пороговым значением и не забыть снова вызвать Sensor_Ground(), чтобы к следующему циклу опроса сенсор уже был разряжен.
Полученной чувствительности хватает для уверенного определения прикосновений к голым металлическим площадкам. При прикрытии сенсора листом бумаги или пластика чувствительность падает в три - четыре раза, хорошо определяются только уверенные нажатия. Чтобы увеличить чувствительность в случае, когда сенсор необходимо прикрыть защитным материалом, можно повысить тактовую частоту микроконтроллера. С чипом серии STM32F103, способном работать на частотах до 72МГц, помехой не будут и миллиметровые преграды между пальцем и сенсором.
По сравнению с реализацией "a, мой подход работает гораздо быстрее (порядка десятка тактов на опрос одного сенсора), поэтому я не стал усложнять программу, настраивая прерывания по таймеру.

Напоследок видео с демонстрацией работы сенсора.

Main.c тестовой программы.

На микроконтроллер

Cпасибо пользователю за очень полезную статью ARM-микроконтроллеры STM32F. Быстрый старт c STM32-Discovery , пользователю за идею и доходчивое теоретическое описание.

UPD. После комментариев "a я решил разобраться с тактированием и обнаружил, что по умолчанию STM32 Discovery настроен на тактовую частоту
(HSE / 2) * 6 = 24 MHz, где HSE - частота внешнего кварца. Соответственно поменяв кварц с 8 на 20 МГц, я заставил бедную STM"ку работать на 60 МГц. Так что во-первых, некоторые из выводов очевидно не совсем верны, во-вторых то чем я занимался может привести к сбоям чипа. На случай таких сбоев в микроконтроллере есть HardFault прерывание, воспользовавшись им, я проверил более высокие частоты. Так вот, сбоить чип начинает только на 70 МГц. Но хотя эту конкретную программу контроллер переваривает на 60МГц, при использовании периферии или работе с Flash памятью он может повести себя непредсказуемо. Вывод: относитесь к данному топику как к эксперименту, повторяйте только на свой страх и риск.



Статьи по теме: