Содержание
Интернет-магазин
Автор: Marcel Flipse
Комплект Microchip PICkit™ 2 Debug Express это комплект из программатора-отладчика PICkit™ 2 и демонстрационной платы. Комплект содержит все необходимое для разработки небольших проектов с нуля. В данной статье описывается разработка емкостного сенсорного переключателя, построенного всего лишь нескольких пассивных компонентах. Переключатель реализован с использованием технологии mTouch™. Компания Microchip предлагает ряд решений построения сенсорных датчиков, пригодных для разных применений, начиная от реализации одной сенсорной кнопки на 6-и выводном микроконтроллере PIC10F, до применения специализированной периферии контроллеров среднего семейства PIC16 и 16-и разрядных PIC24FJ. Предлагаемый пример реализован на контроллере PIC16F887, установленном на плате PICkit™ 2 Debug Express.
Разработанная компанией Microchip технология определения прикосновения mTouch™ основывается на измерении изменения емкости. Многие компании интегрируют в свои приборы емкостное управление для обеспечения эстетичного и профессионального вид их продукции. На рисунке 1 проиллюстрированы основные принципы работы емкостного датчика. Если пользователь подносит палец к емкостному датчику, то он вносит в схему дополнительную емкость. Это изменение емкости детектируется PIC® микроконтроллером с помощью встроенной периферии и программы. Обзор различных вариантов применения технологии mTouch™ был опубликован в журнале «Компоненты и Технологии» №9 за 2008 год (http://gamma.spb.ru/articles.php?i=84). Микроконтроллер PIC16F887, помимо прочего, содержит компаратор и RS-триггер. Технология измерения емкости mTouch™ использует емкость сенсора как частотозадающий элемент генератора. Микроконтроллер измеряет частоту генератора, и любое смещение частоты, при прикосновении пользователя, обнаруживается и проверяется программным обеспечением. На рис.1 показана схема генератора для реализации емкостного сенсора.
Рис.1. Принцип действия емкостного сенсора.
RC генератор реализован на двух компараторах и RS триггере, которые управляют зарядом/разрядом емкости сенсора. Конденсатор будет заряжаться и разряжаться со скоростью, определяемой постоянной времени RC-цепочки. Амплитуда генерации ограничивается установленными верхним и нижним порогами компараторов. Верхний порог задается внутренним делителем, а нижний внешним делителем напряжения. Дополнительный конденсатор в цепи делителя подавляет высокочастотные шумы источника питания и стабилизирует напряжение питания нижнего порога. Емкость сенсора будет заряжаться и разряжаться до напряжений, ограниченных порогами. Когда напряжение на емкости сенсора ниже нижнего порога, выход компаратора C2OUT находится в состоянии логической «1» и система заряжает емкость. При заряде напряжение на емкости сенсора растет и при достижении верхнего порога выход компаратора меняет свое состояние на лог. «0», что в свою очередь, приведет к началу разряда конденсатора. При достижении нижнего порога, компаратор 2 сработает вновь и емкость начнет заряжаться снова. Когда напряжение на емкости сенсора находится между порогами, то система помнит последнее состояние (заряд или разряд). Повторяющийся процесс заряда и разряда изображен на рисунке 2.
Рисунок 2. Диаграмма напряжения на емкости сенсора.
На основе отладочной платы из комплекта PICkit™ 2 Debug Express можно собрать емкостной датчик за считанные минуты. Автор использовал два SMD резистора и конденсатор для создания делителя напряжения. Компоненты могут быть припаяны к контактным площадкам на макетном поле (см. рис.3.). Кусок провода соединяет среднюю точку делителя с выводом RA2 PIC-контроллера.
Рисунок 3. Делитель напряжения.
Форма емкостной кнопки не очень важна. Размер кнопки определяется проектируемым прибором. Чем больше площадь контактной площадки, тем больше чувствительность датчика. В данном примере используется небольшая монета, но пригодна любая проводящая поверхность (см. рис.4). Резистор (используется 150КОм) определяет частоту переключения генератора. Подойдет любая частота в диапазоне от 100КГц до 400КГц. Точное значение частоты не важно, но более высокая частота даст большую точность измерения.
Рисунок 4. Сенсорная площадка.
Последний шаг это подключение выходной частоты генератора к таймеру «Timer 1», для того, чтобы программа микроконтроллера могла измерять частоту генератора. Так же необходимо соединить вывод RA5/C2OUT к выводу RC0/T1CKI микроконтроллера. Последнее что необходимо, это соединить модуль компаратора с сенсором и резистором. Уберите перемычку R3 с платы Debug Express (отключает потенциометр от вывода RA0).
Теперь, когда схема собрана, остается сделать последний шаг – написать программу. Программа написана на ассемблере и может быть откомпилирована с использованием бесплатной среды разработки MPLAB IDE. Сначала нужно инициализировать компараторы. Необходимые регистры инициализируются в соответствующей подпрограмме (init). Когда генератор запущен, должна измеряться его частота для детектирования изменения частоты при касании сенсора. Каждое изменение состояния выхода компаратора C2OUT с «0» в «1» будет увеличивать значение таймера «Timer 1» на единицу. Число переключений таймера накапливается за фиксированный временной интервал, для формирования окна накопления используется таймер «Timer 0». В начале измерения таймер обнуляется и начинает считать до 255, после чего происходит его переполнение и выставляется флаг запроса прерывания (вызывается подпрограмма прерывания). В прерывании фиксируется значение «Timer 1» (регистр TMR1) и сравнивается с предыдущим значением. Если новое значение «Timer 1» существенно меньше предыдущего, т.е. увеличилась емкость сенсора, то детектируется факт касания сенсора. Программа зажигает светодиоды, подключенные к порту PORTD. Новое значение «Timer 1» усредняется с бегущим средним значением, которое используется как база для сравнения с измеренным значением в текущем периоде. В конце подпрограммы обработки прерывания, когда все процедуры измерения закончили свою работу, оба таймера («Timer 0» и «Timer 1») обнуляются.
Более подробно технология mTouch описана на сайте компании Microchip: www.microchip.com/mtouch и включает примеры схем, заметки по применению, руководства, web-семинары и презентации, описания отладочных плат, бесплатные библиотеки и ПО для диагностики демонстрационных плат, а так же перечень рекомендованных продуктов. На русском языке о решениях для построения сенсорных клавиатур и датчиков Microchip вы можете ознакомиться в статьях, расположенных на сайте www.gamma.spb.ru
Решения Microchip Teсhnology для реализации сенсорного управления на емкостных датчиках.
Применение модуля измерения времени заряда CTMU.
Доступны несколько отладочных комплекта с различными вариантами реализации технологии mTouch™. Вместе с демонстрационными комплектами PICDEM™ Touch Sense поставляется бесплатное программное обеспечение mTouch Diagnostic tool, которое предоставляет графический интерфейс для анализа и настройки сенсорных решений в реальном времени.
Этот комплект демонстрирует технологию mTouch, реализующую клавиатуру и слайдер с использованием 8-и разрядных микроконтроллеров PIC16F с компараторами и RS триггером. В комплекте так же поставляется анализатор последовательных протоколов PICkit Serial Analyzer.
Этот комплект демонстрирует технологию mTouch на базе 16-и разряжных микроконтроллеров PIC24F с интегрированным модулем Измерения Времени Заряда (Charge Time Measurements Unit – CTMU).
Демонстрационный комплект «Capacitive Touch Evaluation Kit» позволяет оценить реализацию сенсорных кнопок, клавиатур, слайдеров на специализированных модулях CSM и CTMU, интегрированных в микроконтроллеры PIC16F и PIC24FJ.
Комплект содержит:
Этот комплект включает демонстрационную плату, среду разработки MPLAB® , студенческую версию Си компилятора MPLAB C30 C и все что необходимо для начала разработки приложений с емкостными сенсорными элементами. Недорогая плата из этого комплекта содержит интегрированный внутрисхемный отладчик и программатор, разъемы для использования функций USB-host и USB-device контроллера PIC24FJ, трехцветный светодиод, сенсорные площадки и OLED графический дисплей. Пример программного обеспечения для PIC24F реализует графическое управление элементами схемы через меню, поддерживаются функции работы с USB-Flash накопителями для записи лога данных.
Примечание |
---|
Проект может быть скомпилирован так же для микроконтроллера PIC16F886 (плата 28pin Demo). Для этого нужно изменить тип контроллера в начале текста программы и в MPLAB IDE |
Примечание 1 |
---|
Для микроконтроллера PIC16F886 (плата 28pin Demo), светодиоды подключены к выводам RB0-RB3 |
Примечание 2 |
---|
При самостоятельной сборке схемы сенсорного перекючателя не обязательно подключать все 8 светодиодов, достаточно одного :) |
Примечание 3 |
---|
Не обязательно использовать монету в 20 пенсов, подойдет простой отечественный рубль:) |
Дискуссия
Обратите внимание, что емкостной сенсор будет работать через практически любой диэлектроческий материал: стекло, пластик, дерево и т.д. Процедура подсчета частоты учитывает колебания частоты в зависимости от внешних факторов (температура, влажность и т.д.), т.е. сенсорная кнопка будет работать и на открытом воздухе.
Еще нужно добавить что PIC16F887 имеет мультиплексор на входе компараторов - можно легко добавить еще несколько кнопок, в гаммовских статьях есть про мультиплексирование каналов.
Добавьте плиз к статье схему.
По просьбам трудящихся добавлена схема
Добрый день. А где , и по какой цене можно приобрести это устройство? Спасибо
Поясните про какое устройство вы спрашиваете? Комплект программатора-отладчика PICkit2 вместе с демо-платой (на этой плате проводились все эксперименты, описанные в данной статье) можно было купить в рамках акции за 595 рублей. Сейчас можно купить по стандартной цене, адреса указаны в Контактах.
Можно не покупать а спаять самому. Схема выше в статье, программа - в исходных кодах по ссылке чуть выше схемы.
я мучаюсь выбором :) , поэтому прошу совета. что необходимо, так это сделать сенсорные кнопки в PCCar (компьютер в автомобиле). так как готовые решения компьютеров в автомобиль не устраивают, то сделал все сам. в данный момент, для удобства управления, требуется внедрить несколько кнопок для управления компом, помимо имеющегося тачскрин-монитора. количество кнопок в идеале 6-7 шт. склоняюсь к сенсорным из-за удобства монтажа, так как пространство вокруг монитора ограничено. Надеюсь на Ваши советы. Спасибо.
если кнопок более 4-х, то лучше использовать специализированный модуль CSM или CTMU в PIC-ах. Подробнее по использованию см. http://gamma.spb.ru/articles.php?i=84 и http://gamma.spb.ru/articles.php?i=86
Спасибо, посмотрел. Но дело в том, что эти статьи для разработчиков устройств. Как я понял, готовых решений нет? Меня интересует устройство именно с сенсорными кнопками. Извините за наглость, но может кто-нибудь поможет с разработкой такого устройства, или клавиатуры, или посоветует готовое решение? Потому что в электронике, честно говоря, я полный дуб :(
З.Ы. на промышленные масштабы не претендую. Спасибо.
Готовые решения есть, но они же под конкретное ТЗ. У меня, например, дома варочная поверхность и духовка с сенсорными кнопками, но не будете же вы интегрировать их в автомобиль исключительно из-за кнопок :)