Построение систем емкостных датчиков прикосновений На базе MSP430. Датчики касания и звуковые

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

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

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

Электрические принципиальные схемы

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

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

Схема емкостного сенсорного датчика

Основой схемы емкостного сенсорного датчика присутствия является задающий генератор прямоугольных импульсов, выполненный по классической схеме на двух логических элементах микросхемы D1.1 и D1.2. Частота генератора определяется номиналами элементов R1 и C1 и выбрана около 50 кГц. Значение частоты на работу емкостного датчика практически не влияет. Я менял частоту от 20 до 200 кГц и влияния на работу устройства визуально не заметил.

С 4 вывода микросхемы D1.2 сигнал прямоугольной формы через резистор R2 поступает на входы 8, 9 микросхемы D1.3 и через переменный резистор R3 на входы 12,13 D1.4. На вход микросхемы D1.3 сигнал поступает с небольшим изменением наклона фронта импульсов из-за установленного датчика, представляющего собой кусок провода или металлическую пластину. На входе D1.4, из за конденсатора С2, фронт изменяется на время, необходимое для его перезаряда. Благодаря наличию подстроечного резистора R3, есть возможность фронты импульса на входе D1.4, выставить равным фронту импульса на входе D1.3.

Если приблизить к антенне (сенсорному датчику) руку или металлический предмет, то емкость на входе микросхемы DD1.3 увеличится и фронт поступающего импульса задержатся во времени, относительно фронта импульса, поступающего на вход DD1.4. чтобы «уловить» эту задержку про инвертированные импульсы подаются на микросхему DD2.1, представляющую собой D триггер, работающий следующим образом. По положительному фронту импульса, поступающего на вход микросхемы C, на выход триггера передается сигнал, который в тот момент был на входе D. Следовательно, если сигнал на входе D не изменяется, поступающие импульсы на счетный вход C не оказывают влияния на уровень выходного сигнала. Это свойство D триггера и позволило сделать простой емкостной сенсорный датчик.

Когда емкость антенны, из за приближения к ней тела человека, на входе DD1.3 увеличивается, импульс задерживается и это фиксирует D триггер, изменяя свое выходное состояние. Светодиод HL1 служит для индикации наличия питающего напряжения, а HL2 для индикации приближения к сенсорному датчику.

Схема сенсорного включателя

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

Схема емкостного датчика была немного доработана. Для исключения ложных срабатываний, так как человек может подносить и удалять руку медленно, из-за наличия помех датчик может выдавать на счетный вход D триггера несколько импульсов, нарушая необходимый алгоритм работы включателя. Поэтому была добавлена RC цепочка из элементов R4 и C5, которая на небольшое время блокировала возможность переключение D триггера.


Триггер DD2.2 работает так же, как и DD2.1, но сигнал на вход D подается не с других элементов, а с инверсного выхода DD2.2. В результате по положительному фронту импульса, приходящего на вход С сигнал на входе D изменяется на противоположный. Например, если в исходном состоянии на выводе 13 был логический ноль, то поднеся руку к сенсору один раз, триггер переключится и на выводе 13 установится логическая единица. При следующем воздействии на сенсор, на выводе 13 опять установится логический ноль.

Для блокировки включателя при отсутствии человека на унитазе, с сенсора на вход R (установка нуля на выходе триггера вне зависимости от сигналов на всех остальных его входах) микросхемы DD2.2 подается логическая единица. На выходе емкостного выключателя устанавливается логический ноль, который по жгуту подается на базу ключевого транзистора включения электромагнитного клапана в Блоке питания и коммутации.

Резистор R6, при отсутствии блокирующего сигнала с емкостного датчика в случае его отказа или обрыва управляющего провода, блокирует триггер по входу R, тем самым исключает возможность самопроизвольной подачи воды в биде. Конденсатор С6 защищает вход R от помех. Светодиод HL3 служит для индикации подачи воды в биде.

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

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

Сенсорного датчика присутствия

По выше опубликованной схеме сделал опытный образец. Детали емкостного датчика собраны на печатной плате, плата размещена в пластмассовой коробке и закрывается крышкой. Для подключения антенны в корпусе установлен одноштырьковый разъем, для подачи питающего напряжения и сигнала установлен четырех контактный разъем РШ2Н. Соединена печатная плата с разъемами пайкой медными проводниками в фторопластовой изоляции.

Сенсорный емкостной датчик собран на двух микросхемах КР561 серии, ЛЕ5 и ТМ2. Вместо микросхемы КР561ЛЕ5 можно применить КР561ЛА7. Подойдут и микросхемы 176 серии, импортные аналоги. Резисторы, конденсаторы и светодиоды подойдут любого типа. Конденсатор С2, для стабильной работы емкостного датчика при эксплуатации в условиях больших колебаниях температуры окружающей среды нужно брать с малым ТКЕ.

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


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

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

Конструкция и детали емкостного сенсорного включателя

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


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


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


Крепится емкостной сенсорный включатель на стену с помощью одного самореза. Для этого в корпусе предусмотрено отверстие. Далее устанавливается плата, разъем и закрепляется защелками крышка.


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

Универсальная печатная плата

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


Не устанавливаются элементы, необходимые для работы сенсорного включателя, но мешающие работе датчика присутствия, R4, С5, R6, С6, HL2 и R4. Вместо R4 и С6 запаиваются проволочные перемычки. Цепочку R4, С5 можно оставить. Она не будет влиять на работу.

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

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

Безотказная работа емкостных датчиков для сенсорной системы управления подачи воды в биде подтверждена на практике в течении трех лет постоянной эксплуатации. Сбоев в работе не зафиксировано.

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

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

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

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

Конденсаторы могут быть сенсорными

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

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

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

Конденсатор на базе печатной платы

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

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

Возможно, сейчас вы захотите узнать, какую емкость реально обеспечивает такая разводка печатной платы. Кроме того, как мы рассчитаем ее точно? Ответ на первый вопрос: емкость очень мала, может составлять около 10 пФ. Что касается второго вопроса: не беспокойтесь, если забыли электростатику, потому что точное значение емкости конденсатора не имеет никакого значения . Мы ищем только изменения в емкости, и мы можем обнаружить эти изменения без знания номинального значения емкости печатного конденсатора.

Влияние пальца

Так что же вызывает эти изменения емкости, которые контроллер датчика прикосновений собирается обнаружить? Ну, конечно же, человеческий палец.

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

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

Палец как диэлектрик

Обычно мы думаем о конденсаторе, как имеющем фиксированную величину, определяемую площадью двух проводящих пластин, расстоянием между ними и диэлектрической проницаемостью материала между пластинами. Мы, конечно, не можем изменить физические размеры конденсатора, просто прикоснувшись к нему, но мы можем изменить диэлектрическую проницаемость, так как палец человека обладает диэлектрическими характеристиками, отличающимися от материала (предположительно воздуха), который он вытесняет. Это правда, что палец не будет находиться в настоящей области диэлектрика, т.е. в изолирующем пространстве непосредственно между проводниками, но такое «вторжение» в конденсатор необязательно:

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

Оказывается, что человеческая плоть является довольно хорошим диэлектриком, потому что наши тела состоят в основном из воды. Относительная диэлектрическая проницаемость вакуума равна 1, а относительная диэлектрическая проницаемость воздуха лишь немного выше (около 1,0006 на уровне моря при комнатной температуре). Относительная диэлектрическая проницаемость воды намного выше, около 80. Таким образом, взаимодействие пальца с электрическим полем конденсатора представляет собой увеличение относительной диэлектрической проницаемости, и, следовательно, приводит к увеличению емкости.

Палец как проводник

Любой, кто испытал на себе удар электрического тока, знает, что кожа человека проводит ток. Я уже упоминал выше, что прямого контакта между пальцем и сенсорной кнопкой (то есть ситуации, когда палец разряжает печатный конденсатор) нет. Тем не менее, это не означает, что проводимость пальца не имеет значения. Она на самом деле весьма важна, так как палец становится второй проводящей пластиной в дополнительном конденсаторе:

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

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

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

Близкое расстояние или контакт

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

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

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

Заключение

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

Надеюсь, статья оказалась полезной. Оставляйте комментарии!

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

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

Описание работы сенсорного датчика прикосновения

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

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

Данный сенсорный датчик прикосновения достаточно прост вследствие применения полевого транзистора КП501А (Б, В). Данный транзистор обеспечивает пропускание тока до180 мА при предельном напряжении исток-сток до 240В для буквы А и 200В для букв Б и В. Для защиты от статического электричества на его входе имеется диод.

Полевой транзистор обладает большим входным сопротивлением, и для того чтобы управлять им хватает статического напряжения, которое больше порогового значения. Для данного типа полевого транзистора номинальное пороговое напряжение составляет 1…3 В, а максимально допустимое равно 20 В.

При прикосновении рукой к датчику Е1, степень наведенного потенциала на затворе является достаточной для открывания транзистора. При этом на стоке VT1 будут электрические импульсы продолжительностью 35 мс, и имеющие частоту электрической сети 50 Гц. Для переключения большинства электромагнитных реле необходимо всего 3…25 мс. Для предотвращения дребезга контактов реле, в момент прикосновения, в схему включен конденсатор C2. За счет накопленного заряда на конденсаторе, реле будет включенным даже в тот полупериод сетевого напряжения, когда VT1 будет закрыт. Пока есть прикосновение к датчику сенсора, реле будет во включенном состоянии.

Конденсатор C1 увеличивает помехоустойчивость сенсора к высокочастотным радиопомехам. Менять чувствительность прикосновения к сенсору можно путем изменения емкости C1 и сопротивления R1. Группа контактов К1.1 осуществляет управление внешними электронными устройствами.

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

Датчик касания для 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 памятью он может повести себя непредсказуемо. Вывод: относитесь к данному топику как к эксперименту, повторяйте только на свой страх и риск.