Емкостный датчик прикосновения. Ёмкостный датчик касаний без внешней обвязки на STM32 Discovery. Конденсатор на базе печатной платы

Емкостный датчик прикосновения. Ёмкостный датчик касаний без внешней обвязки на STM32 Discovery. Конденсатор на базе печатной платы

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

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

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

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

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

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

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

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

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

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

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

Электор 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. Печатная плата (зеркальный вид).

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

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

Получился универсальный емкостной сенсорный датчик, который не требует настройки и реагирует на приближающиеся электропроводящие предметы, в том числе и человека, на расстояние до 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 можно оставить. Она не будет влиять на работу.

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

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

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

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

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

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

Емкостной датчик прикосновений

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

Рис. 1.

Как показано на рисунке 1, конденсатор образуется между проводящим слоем и заземлением. Взаимодействие проводящего слоя и окружающих его проводников создают базовую емкость, величина которой может быть измерена. Базовая емкость такого датчика составляет около 10 пФ. Когда проводник, т.е. палец, приближается к открытому конденсатору, в результате интерференции электрического поля, изменяется емкость конденсатора. Из-за емкости пальца, емкость датчика увеличивается даже без прикосновения. С помощью измерения емкости датчика и сравнивания каждого результата с базовой емкостью, микроконтроллер может определить не только факт нажатия кнопки, но и последовательность включений, что используется для реализации более сложных интерфейсов, таких как слайдеры.

Чувствительность датчика зависит от расстояния между проводящим и заземляющим слоем. Рекомендованное расстояние — 0,5 мм. Кроме этого, общая чувствительность системы зависит от толщины платы: при уменьшении толщины платы уменьшается чувствительность. Рекомендованная толщина платы 1…1,5 мм.

Емкость датчика без емкости пальца составляет около 5…10 пФ.

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

Конструкция датчика и интерфейса с пользователем

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

Реализация емкостного датчика на печатной плате

Зависимости емкостного датчика могут быть отображены на примере обычного плоского конденсатора. Рисунок 2 отображает его ключевые элементы.

Рис. 2.

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

Расстояние d определяется самой печатной платой. Как сказано ранее, при уменьшении d, увеличивается базовая емкость и уменьшается чувствительность. Удельные емкости пространства (e 0) и материала (e r) определяют диэлектрическую постоянную платы.

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

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

Рис. 3.

На рисунке 3 показано расположение кнопок и слайдера, используемое в качестве примера в этом документе.

Рис. 4. Построение слоев (красный — верхний сигнальный слой, синий — нижний заземляющий слой)

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

Вверху слева отображен только верхний сигнальный слой: четыре прокладки датчика, окруженные верхним заземляющим слоем; нижний слой не используется. В верхней правой части рисунка показан такой же дизайн платы с заполнением заземляющего слоя 25%. Внизу слева — версия с 50% и справа — 100% заполнением.

Рекомендуется использовать несколько заземляющих слоев под каждым датчиком для изоляции элементов датчика от шума и других внешних изменений, способных вызвать изменение базовой емкости. Очевидно, что 100% заполнение, как показано в левом нижнем углу рисунка 4, обеспечивает максимальную шумовую изоляцию, а также увеличивает базовую емкость. Для получения оптимального соотношения шумовой изоляции и базовой емкости, принято использовать заполнение от 50% до 75%.

Изоляционный слой датчика

В этом типе приложения изоляционный слой датчика выполняется из пластика. Благодаря этому слою, пальцы не контактируют непосредственно с датчиком. Модель, представленная на рисунке 2, может быть использована для визуализации интерфейса взаимодействия пальца и конденсатора. При этом нижняя обкладка выступает в роли датчика, а верхняя — палец пользователя. Становится ясным, что при увеличении площади взаимодействия до размеров пальца, увеличивается А, максимизируется изменение емкости. При увеличении слоя изоляции d, изменение емкости уменьшается обратнопропорционально. Ключевой момент, который нельзя игнорировать, это материал из которого выполняется изоляция. Диэлектрическая постоянная изоляционного материала, а так же его толщина очень сильно влияют на чувствительность и простоту использования емкостного датчика прикосновений. В таблице 1 представлены диэлектрические постоянные некоторых материалов.

Таблица 1. Диэлектрические постоянные материалов

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

Использование MSP430 для измерения емкости датчика прикосновений

Теперь рассмотрим два метода измерения емкости датчика прикосновений.

Метод измерения на основе осциллятора

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

Рис. 5.

Резисторы R создают опору для компаратора, когда на Px.y установлен высокий уровень. Этот сигнал противоположен по полярности сигналу зарядки или разрядки емкости датчика (C sensor), что приводит к длительным осцилляциям. При равных значениях сопротивления R граничные значения составляют 1/3 V cc и 2/3 V cc , частота осцилляций вычисляется по формуле:

f OSC = 1/

Подсчитав число периодов осцилляций в течение заданного промежутка времени, можно вычислить частоту и измерить емкость. В рассматриваемом приложении сопротивление резистора R C составляет 100 кОм. В результате частота осцилляций равна приблизительно 600 кГц при емкости датчика 10 пФ.

В качестве источника тактового сигнала используется интегрированный 12 килогерцовый VLO. Этот сигнал подается на сторожевой таймер WDT. С каждым прерыванием сторожевого таймера ядро анализирует состояние регистра таймера Timer_A, TAR. Вычисляется разница двух последних значений регистра. В реальности абсолютное значение емкости не нужно, интересно только ее изменение.

Возможно построение системы с несколькими емкостными датчиками. Для этого требуется построение мультиплексора на компараторе Comparator_A+ (рисунок 6).

Рис. 6.

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

Метод измерения емкости на основе резистора

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

Рис. 7.

При значении емкости C sensor = 10 пФ и R = 5,1 М время разрядки составляет около 250 мкс. Px.y конфигурируется как выход с высоким уровнем для зарядки конденсатора. Он может быть переконфигурирован как вход, для разряда C sensor через R. Максимальный ток через порт MSP430 составляет ±50 нА.

Если порт Px.y поддерживает работу с прерываниями (у MSP430 это порты P1.x и P2.x), внутренний сигнал низкого уровня может использоваться как порог, при достижении которого они генерируются. При получении этого прерывания, ядро анализирует содержимое регистра таймера Timer_A. Таймер может использовать в качестве источника тактового сигнала внутренний DCO. Частота генерируемого сигнала при этом составляет 8 или 16 МГц (в зависимости от семейства MSP430).

Рис. 8.

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

Выше говорилось, что для каждого порта нужен один резистор. Схему можно упростить, если использовать один резистор для двух портов. Во время измерения емкости одного из датчиков порт, подключенный ко второму должен иметь низкий уровень сигнала, т.е. служит заземлением для разрядки емкости. Другое достоинство такой схемы в том, что емкость каждого датчика может быть измерена в двух направлениях: зарядка от нуля до высокого уровня и разрядка от V cc до порога низкого уровня. На рисунке 9 показан этот метод.

Рис. 9.

Подсчет тактов нужно производить два раза: во время заряда и разряда. При этом шум 50/60 МГц оказывает меньше влияния на результат измерения.

Программное обеспечение

После того как результат измерения получен, его нужно программно интерпретировать. Шум источника питания, сдвиг частоты синхронизации, внешние 50/60 МГц шумы могут привести к неправильному принятию решения.

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

Отслеживание базовой емкости датчика

Без возможности динамически отслеживать изменения емкости датчика, всякого рода нестабильности могут привести к ложному обнаружению нажатия кнопки или ее «залипания». Рассмотрим вариант с простой кнопкой, которая имеет два состояния: включена/выключена. В случае если результат смещается, он может приблизиться к порогу, при достижении которого кнопка считается нажатой, то есть произойдет ложное срабатывание.

Один из методов отслеживания и подстройки базовой емкости показан на рисунке 10.

Нужно обратить внимание на то, что эти действия выполняются для каждого датчика отдельно. Вычисление переменной "Delta" и подстройка "base" производится по-разному в RO- и RC-алгоритмах. В RO измеренное значение уменьшается, когда емкость конденсатора увеличивается; а в RC измеренное значение увеличивается.

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

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

Рис. 10.

Реализация функции обычной кнопки

Построение кнопок является самым распространенным вариантом использования емкостных датчиков. На рисунке 11 дан пример построения системы с четырьмя кнопками.

Рис. 11.

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

Реализация функции слайдера

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

Самый простой вариант построения слайдера можно организовать, если для каждого датчика определить несколько позиций. В примере, приведенном ниже (рисунок 12), рассматривается система, в которой для каждого датчика определено 16 позиций. В результате получается 64-позиционная система.

Рис. 12.

В качестве DELTAMAX выбирается максимальное значение емкости, которое может быть достигнуто. Затем производится деление диапазона от 0 до DELTAMAX на определенное число шагов Steps. Ноль соответствует случаю, когда кнопка не нажата. По максимальному значению определяется положение пальца. Более линейная передаточная характеристика системы достигается с помощью интерполяции значений всех датчиков.

Мультиплексирование датчиков для построения слайдера

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

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

Рис. 13.

Заключение

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

  • Метод на основе осциллятора:

— Требуется микроконтроллер с компаратором Comp_A+;
— Число независимых датчиков ограничено количеством входов Comp_A+;
— Требуется один внешний резистор R на каждый датчик, а также цепь из трех R;
— Чувствительность ограничена потреблением мощности (программируемое время измерения);

  • Метод на основе резистора:

— Может быть реализован на любом микроконтроллере MSP430;
— До 16 независимых датчиков (16 портов ввода/вывода, работающих с прерываниями);
— Один внешний резистор R на каждые два датчика;
— Чувствительность ограничена максимальной частотой микроконтроллера (фиксированное время измерения);
— Минимальное потребление энергии;

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

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

Получение технической информации, заказ образцов, поставка —
e-mail:

Новое семейство тактовых генераторов

Компания Texas Instruments представила семейство программируемых тактовых генераторов, имеющих от 1 до 4 схем ФАПЧ. ИС позволяют генерировать до 9 тактовых сигналов, синтезируемых из одной входной частоты. Каждый выход поддерживает внутрисистемное программирование частоты до 230 МГц. Перечисленные особенности предоставляют ряд преимуществ. В их числе — пониженное потребление, более быстрый процесс проектирования и простота изменения тактовых частот без необходимости повторного проектирования системы. Эти преимущества позволят существенно снизить стоимость потребительских приложений, в т.ч. IP ТВ-приставок, IP-телефонов, цифровых медиасистем (цифровые телевизоры, устройства с потоковыми медиаданными, принтеры, навигационные системы и портативные устройства).

Новые тактовые генераторы оптимизированы на работу совместно с процессорами DaVinci TM (TI) для генерации тактовых сигналов цифровых процессоров, аудио АЦП или кодеков, а также контроллеров Ethernet или USB. Встроенный кварцевый генератор, управляемый напряжением (VCXO) позволяет выполнить частотную синхронизацию различных потоков данных.

Состав нового семейства тактовых
генераторов
Наименование ФАПЧ Выход, В
CDCE949 4 2,5/3,3
CDCE937 3 2,5/3,3
CDCE925 2 2,5/3,3
CDCE913 1 2,5/3,3
CDCEL949 4 1,8
CDCEL937 3 1,8
CDCEL925 2 1,8
CDCEL913 1 1,8
О компании Texas Instruments


просмотров