Easyelectronics.ru

Электроника для всех
Текущее время: 25 сен 2017, 18:23

Часовой пояс: UTC + 5 часов



    • JLCPCB for PCB Prototyping: 10 шт. 2-слоя 100*100mm 2$(около 140rub), изготовление за 24 часа.
    • Создание принципиальных схем и проектирование печатных плат
    • Крупнейший китайский онлайн магазин радиодеталей. Скидка 50%
    • Просмотр GERBER файлов

Начать новую тему Ответить на тему  [ Сообщений: 58 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: Сенсорная кнопка с переносом заряда
СообщениеДобавлено: 20 авг 2016, 00:16 
Старожил
Аватара пользователя

Зарегистрирован: 30 янв 2014, 18:09
Сообщения: 559
Откуда: Киев
Ну, как напишешь. У меня автоподстройка, но думаю ещё допиливать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кнопка с переносом заряда
СообщениеДобавлено: 13 дек 2016, 05:15 
Здравствуйте!

Зарегистрирован: 01 мар 2014, 05:31
Сообщения: 1
Эх, что-то не очень получается воплотить на атмеге 48, на 8мГц. SOVA, а ваша система на какой частоте работает?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кнопка с переносом заряда
СообщениеДобавлено: 13 дек 2016, 15:02 
Старожил

Зарегистрирован: 05 фев 2013, 00:58
Сообщения: 1925
Откуда: Тольятти
При работе над проектом с сенсорной кнопкой у меня возникли трудности, которые я вначале посчитал техническими и преодолимыми более тщательной проработкой.
Однако позже выяснилось, что эти трудности имеют более принципиальную причину.

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

Auto calibration for life
And the re-calibration period is about 4.0sec, when key has not be touched


и больше ничего. С одной стороны, устройство заведомо будет эксплуатироваться в одних и тех же условиях, но с другой - если вероятность попадания в мертвую зону не равна 0, то рано или поздно оно туда попадет, что сразу сводит на нет возможность выпуска коммерческого изделия. В 16-ногих контроллерах есть нога MOTB, которой вроде бы можно ограничить время срабатывания 100 секундами, но у меня есть только дешевые 6-ногие, в которых этот тайм-аут выключен. Обходные пути сложны и дороги (да и глупо это), а контроллеры приличных компаний стоят в десять раз дороже.

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

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

Еще у TTP223 выяснилась никакая помехоустойчивость - срабатывает от любого источника регулярной помехи, либо такая помеха блокирует чувствительность, либо на нее происходит настройка на калибровке. Короче, годится только для ардуинщиков, поиграться ;) .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кнопка с переносом заряда
СообщениеДобавлено: 14 дек 2016, 22:26 
Старожил
Аватара пользователя

Зарегистрирован: 30 янв 2014, 18:09
Сообщения: 559
Откуда: Киев
Тут я применил одну хитрость: плавающий порог с двумя правилами.
Правило первое: Кнопка в начале не нажата. При увеличении ёмкости кнопки используется фильтр с большой постоянной времени (3-10 сек), при уменьшении - с маленькой (0,1-0,5 сек). Если при включении на кнопке был предмет, то при снятии она быстро подстроится под отпускание.
Порог срабатывания на 10-15% выше значения этого фильтра.
Если кнопка нажимается, это происходит быстрее, чем за 3 секунды. Состояние кнопки изменяется на нажатое.
При нажатой кнопке применяется второе правило.
Правило второе: порог переключения зафиксирован в момент срабатывания. Взводится таймер залипания кнопки. Если кнопка находится в нажатом положении неразумное время (30-60 сек), то кнопка принудительно переводится в не нажатое положение со сбросом порога переключения. После отпускания кнопки процесс повторяется.
Этот универсальный алгоритм работает безотказно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кнопка с переносом заряда
СообщениеДобавлено: 14 дек 2016, 22:55 
Старожил

Зарегистрирован: 05 фев 2013, 00:58
Сообщения: 1925
Откуда: Тольятти
Спасибо тебе, мудрый Сова ;)

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

Экспериментирую на tiny25, но результаты пока хуже, чем на mega8. Тинька оказалась какая-то дубовая в плане емкости, зато удалось добиться потребления 10 мка в режиме сенсора. Буду биться за нее до конца.

Иллюстрация алгоритма
Вложение:
алгоритм емкостного сенсора.gif
алгоритм емкостного сенсора.gif [ 4.85 Кб | Просмотров: 3752 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кнопка с переносом заряда
СообщениеДобавлено: 15 дек 2016, 10:15 
Старожил
Аватара пользователя

Зарегистрирован: 30 янв 2014, 18:09
Сообщения: 559
Откуда: Киев
Фильтр какой-то у тебя дифференцирующий. Нужно интегрирующий.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кнопка с переносом заряда
СообщениеДобавлено: 15 дек 2016, 11:02 
Старожил

Зарегистрирован: 05 фев 2013, 00:58
Сообщения: 1925
Откуда: Тольятти
Нет.
Сигнал, который пойдет на компаратор, должен быть разностью интегрированного входного сигнала с малым временем интеграции и интегрированного его же с большим временем интеграции. Получается полосовой фильтр. По логике, так и должно быть. Из всего спектра сигнала с датчика нужно оставить сигналы, соответствующие действию оператора (период сигнала в области долей секунд), и отрезать все остальные (НЧ дрейф и ВЧ шумы).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кнопка с переносом заряда
СообщениеДобавлено: 16 дек 2016, 00:26 
Старожил
Аватара пользователя

Зарегистрирован: 30 янв 2014, 18:09
Сообщения: 559
Откуда: Киев
В принципе, так оно и должно быть, но на графике это не очевидно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кнопка с переносом заряда
СообщениеДобавлено: 16 дек 2016, 03:15 
Старожил

Зарегистрирован: 05 фев 2013, 00:58
Сообщения: 1925
Откуда: Тольятти
Допилил до рабочего состояния, результатом я доволен. Немного технических данных:
Тинька25 работает на 8 МГц, все лишнее выключено. Прерывание по ватч-догу каждые 32 мс, измерение, усреднение, компаратор с гистерезисом - и спать. Срабатывает вполне надежно. Напряжение питания от 2 до 5 в. Потребление от 2в - 12 мкА, от 5в - 50 мкА. Конденсатор 6.8 нФ, сенсор 1.5х1.5 см. Срабатывает при легком касании через пластиковую панель толщиной 1 мм. Чувствительность сделать выше не получается, начинают сказываться наводки. При удержании в течение 15 секунд выключается естественным образом - среднее за это время уплывает ниже уровня компаратора. После этого чувствительность падает, однако ровно до того уровня, который получился в результате удержания, и при желании можно вызвать срабатывание, если надавить чуть плотнее. При отпускании уровень за такое же время поднимается обратно вверх и чувствительность восстанавливается. Недостаток такого алгоритма - невозможно выполнить очень долгое нажатие, но я иду на это сознательно, поскольку другая крайность - полная потеря чувствительности в мертвой зоне - мне кажется неприемлемой. В ближайших задачах длинное нажатие использовать не планируется, а если понадобится, придумаю еще что-нибудь. В целом метод действительно работает лучше, чем RC или емкость сенсора в составе автогенератора.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кнопка с переносом заряда
СообщениеДобавлено: 16 дек 2016, 09:42 
Старожил
Аватара пользователя

Зарегистрирован: 30 янв 2014, 18:09
Сообщения: 559
Откуда: Киев
Сколько циклов приходится на измерение ёмкости?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кнопка с переносом заряда
СообщениеДобавлено: 16 дек 2016, 15:34 
Старожил

Зарегистрирован: 05 фев 2013, 00:58
Сообщения: 1925
Откуда: Тольятти
В пределах 150-170. Зависит от напряжения питания - чем выше, тем меньше циклов. Но вроде бы чувствительность от этого не падает заметно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кнопка с переносом заряда
СообщениеДобавлено: 16 дек 2016, 23:35 
Старожил

Зарегистрирован: 05 фев 2013, 00:58
Сообщения: 1925
Откуда: Тольятти
Снял и нарисовал зависимости тока потребления и числа импульсов в цикле измерения от напряжения питания.
Проблемой оказалось измерить ток в районе десятка мкА. Несколько цифровых приборов показывают разные значения, непонятно, кому верить. Сейчас измерил стрелочным прибором и больше доверяю ему.
.
Вложение:
Потребление.gif
Потребление.gif [ 9.37 Кб | Просмотров: 3619 ]

.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кнопка с переносом заряда
СообщениеДобавлено: 16 дек 2016, 23:46 
Старожил

Зарегистрирован: 05 фев 2013, 00:58
Сообщения: 1925
Откуда: Тольятти
Число импульсов от питания.
.
Вложение:
Число импульсов.gif
Число импульсов.gif [ 9.05 Кб | Просмотров: 3617 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кнопка с переносом заряда
СообщениеДобавлено: 17 дек 2016, 01:01 
Старожил
Аватара пользователя

Зарегистрирован: 30 янв 2014, 18:09
Сообщения: 559
Откуда: Киев
Очень хорошо. Правильно подобран конденсатор под сенсор. При приближении пальца количество импульсов уменьшается. Нет переполнения регистров.
В принципе, для увеличения чувствительности, можно заменить конденсатор с 6,8нФ на 10нФ, чтобы циклов было под 200.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кнопка с переносом заряда
СообщениеДобавлено: 17 дек 2016, 18:24 
Старожил

Зарегистрирован: 05 фев 2013, 00:58
Сообщения: 1925
Откуда: Тольятти
Я провел измерения для нескольких пленочных конденсаторов и свел все данные в один график.
Видно, что пленочный тип показывает несколько лучшую стабильность параметров при изменении напряжения питания.
-
Вложение:
Число импульсов для разных типов конд.gif
Число импульсов для разных типов конд.gif [ 7.36 Кб | Просмотров: 3551 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кнопка с переносом заряда
СообщениеДобавлено: 17 дек 2016, 19:56 
Старожил

Зарегистрирован: 05 фев 2013, 00:58
Сообщения: 1925
Откуда: Тольятти
Серия экспериментов с подключением дополнительного резистора.
Резистор 100к параллельно конденсатору 4.7 нф. Масштаб относительный. Такое включение значительно увеличивает количество импульсов в цикле и может быть использовано для настройки чувствительности. График не отражает этого факта, поскольку меня интересовала относительная стабильность. Но увеличить можно раза в полтора.
-
Вложение:
Резистор параллельно конденсатору.gif
Резистор параллельно конденсатору.gif [ 5.29 Кб | Просмотров: 3541 ]

-
Также пробовал подключать резистор 100к на шину питания и на землю от разных концов конденсатора.
Есть перспективное включение - между сенсором и шиной питания, возможно, удастся выровнять зависимость количества импульсов от питания хотя бы в одной точке.
-
Вложение:
Резистор в разных комбинациях.gif
Резистор в разных комбинациях.gif [ 8.03 Кб | Просмотров: 3541 ]

-
PS. Облом. Метод работает, но резистор увеличивает потребляемый ток.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кнопка с переносом заряда
СообщениеДобавлено: 17 дек 2016, 21:42 
Старожил

Зарегистрирован: 05 фев 2013, 00:58
Сообщения: 1925
Откуда: Тольятти
Теперь я попробовал включать резистор последовательно с зарядовым конденсатором. Результаты интересные. Зависимость от напряжения питания усугубляется, но в то же время заметно увеличивается чувствительность к изменению емкости сенсора и падает потребляемый ток. Пока я остановился на следующих номиналах:

- конденсатор 10 нФ,
- резистор 2 к.

При напряжении питания 3.3в потребление составило 15 мкА. Число импульсов в пачке - 105. Через пластиковую панель толщиной 1.5 мм сенсор срабатывает на расстоянии 1 мм от поверхности. Стабильность и помехоустойчивость хорошие. При изменении напряжения питания число импульсов сильно меняется, но чувствительность к объекту остается прежней. Наименьшее напряжение питания ухудшается до 2.2в - ниже число импульсов уже стремится к нулю и работа сенсора нарушается.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кнопка с переносом заряда
СообщениеДобавлено: 17 дек 2016, 22:15 
Старожил
Аватара пользователя

Зарегистрирован: 30 янв 2014, 18:09
Сообщения: 559
Откуда: Киев
Резистор нужно ставить в разрыв цепи сенсора R=0,2...2кОм. Цепь накопительного конденсатора имхо, лучше оставить в покое.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кнопка с переносом заряда
СообщениеДобавлено: 02 янв 2017, 23:17 
Старожил

Зарегистрирован: 05 фев 2013, 00:58
Сообщения: 1925
Откуда: Тольятти
Опытный образец за неделю работы выявил недостаточную устойчивость к помехам. Деталей раскрывать не буду, расскажу только суть. Накопительный конденсатор заряжается и постепенно приближается к порогу срабатывания логического уровня. В этот момент в течение десятка тактов сенсор становится чувствителен к помехе, т.к. помеха вызывает преждевременное обнаружение уровня и уменьшение счетчика тактов, что воспринимается как увеличение емкости сенсора и вызывает ложное срабатывание. Устроил специальную охоту за импульсом помехи, чтобы посмотреть, какая она. Оказалось, это резонансный всплеск, видимо, в проводах сети, с частотой около 60 кГц. Голову сломал, как выкрутиться. Я зажат в компромиссе и не могу решить радикально. Частота опроса 30 Гц, не могу сделать 60 Гц, т.к. растет ток потребления до 35 мка, а у меня бюджет 20 мка. На частоте 30 Гц не могу сделать усреднение, т.к. даже при усреднении с постоянной времени 2 выборки ощущается, что кнопка начинает неприятно тупить. Резистор с накопительного конденсатора убрал, он тоже ухудшал помехоустойчивость. От емкости конденсатора ничего не зависит - если повышать емкость, то надо соответственно повышать уровень срабатывания, но это никак не влияет на возможность ложного срабатывания. Сенсор принципиально выставлен наружу, поэтому работает как антенна и для помехи тоже.

Одно ложное срабатывание в день - это никуда не годится даже "для себя", не говоря уже о том, чтобы это пытаться продавать. Какие будут идеи...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кнопка с переносом заряда
СообщениеДобавлено: 03 янв 2017, 02:35 
Старожил

Зарегистрирован: 05 фев 2013, 00:58
Сообщения: 1925
Откуда: Тольятти
Да, похоже, этот резистор последовательно с конденсатором мне портил весь праздник. Без него ложных срабатываний не наблюдается. Я повесил тестовую индикацию измеренного счетчика тактов, стоит как вкопанный. Или болтается на одну единицу. Дополнительно я ввел проверку, чтобы окончание измерения происходило только в случае, если три последовательных проверки порта дают логический уровень, иначе требовать еще 3 достоверных совпадения. В случае одиночной игольчатой помехи счетчик однократно увеличится на 3-6 тактов, что не приведет к ложному срабатыванию, а лишь кратковременно отодвинет порог гистерезиса усредненного значения, что вполне приемлемо. Жизнь продолжается...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кнопка с переносом заряда
СообщениеДобавлено: 03 янв 2017, 09:41 
Старожил
Аватара пользователя

Зарегистрирован: 30 янв 2014, 18:09
Сообщения: 559
Откуда: Киев
О! Вот ещё один способ улучшить алгоритм работы кнопки! Благодарю!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кнопка с переносом заряда
СообщениеДобавлено: 08 янв 2017, 22:52 
Старожил

Зарегистрирован: 02 июл 2010, 23:41
Сообщения: 339
axill писал(а):
Применение сенсорных кнопок имеет свою интересную нишу
Вот если есть адекватная программная реализация - для чего существуют аппаратные чипы?
Тот же атмел не смотря на продвижение qtouch выпускает чип, не оправдано дорогой да и отзывы по нему не очень. И всего то один канал. Есть вариант от китайцев и один канал и много
Когда применимы чипы?
Какие ограничения по среде применения? Во влажных помещениях работать будет?

Применил аппаратный чип Атмел для сенсорных кнопок — и остался очень доволен. Микросхема относительно недорогая, рассчитана на 10 кнопок.
Микросхема непростая. Много всяких настраиваемых параметров. Наверно, неделю угробил, чтобы разобраться, как она работает.
Большинство настраиваемых параметров оставил по умолчанию. Фактически, настраивал только параметр, связанный с ёмкостью кнопок — печатная плата была большая и подводящие проводники были разной длины.
Результаты очень хорошие, никаких нареканий.
В течение нескольких лет кнопки стабильно работают в далеко не одном устройстве. Причём условия по ЭМС непростые.
Думаю, во влажном помещении будет работать, только надо обеспечить герметичность контактов.
iev91 писал(а):
Одно ложное срабатывание в день - это никуда не годится даже "для себя", не говоря уже о том, чтобы это пытаться продавать. Какие будут идеи...

Идея простая — использовать готовую микросхему. Там профессионалы всё уже сделали и сделали профессионально. Надо только разобраться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кнопка с переносом заряда
СообщениеДобавлено: 09 янв 2017, 07:48 
Заглядывает иногда

Зарегистрирован: 31 янв 2010, 16:53
Сообщения: 196
Откуда: Ижевск
Если имеется в виду QT1101, да хорошая микруха. Правда, с доставаемостью как-то не очень, видимо, потому что атмел перенес принцип её работы в свои камни AVR.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кнопка с переносом заряда
СообщениеДобавлено: 09 янв 2017, 09:23 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 1508
Откуда: Русь, Новороссийск
Цитирую:
Цитата:
ATmega328PB стал первым 8-разрядным МК семейства AVR с интегрированным контроллером сенсорного интерфейса QTouch (Peripheral Touch Controller, PTC), обрабатывающим сигналы емкостных сенсоров для определения касания. Как правило, внешние емкостные сенсоры формируются на печатной плате, а их электроды подключаются непосредственно к аналоговому интерфейсу PTC посредством мультиплексирования линий ввода/вывода в микроконтроллере. PTC поддерживает режимы работы как с определением собственной емкости сенсоров, так взаимной.

Первый режим обеспечивает возможность подключения к МК 24 сенсорных кнопок, второй – 144 кнопок. Отлично зарекомендовавшая себя технология QTouch и гибкость настроек контроллера позволяют использовать одновременно оба типа сенсоров, при этом для одного электрода требуется один вывод микроконтроллера. Аппаратная фильтрация, автоматическая калибровка и рекалибровка сенсоров, встроенные схемы компенсации паразитной емкости и регулировка чувствительности повышают надежность сенсорного интерфейса и исключают необходимость использования каких-либо внешних компонентов.


В ATmega328PB на самом деле появилось гораздо больше очень приятных дополнений. Конечно, не STM32, но уже и сильно не ATmega328P.

Я уже получил три штуки семплами.
Но в железе пока не пробовал - не готово ни железо, ни софт.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кнопка с переносом заряда
СообщениеДобавлено: 11 янв 2017, 23:30 
Старожил

Зарегистрирован: 02 июл 2010, 23:41
Сообщения: 339
akl писал(а):
Если имеется в виду QT1101, да хорошая микруха. Правда, с доставаемостью как-то не очень, видимо, потому что атмел перенес принцип её работы в свои камни AVR.


У меня была несколько другая микросхема — AT42QT1110-AU.
Посмотрел, вроде как во многих местах продаётся и цена небольшая, есть и менее 100 рублей.
Даже беглого взгляда на описание микросхемы привело к мысли, что самому разрабатывать не имеет смысла, столько там наворочено. Там более 40 байтов с настраиваемыми параметрами.
Это и автокалибровка, интегральный детектор, аппаратный и функциональный тесты, положительный и отрицательный гистерезис и пороги, положительная компенсация дрейфа, период компенсации дрейфа, задержка отрицательной перекалибровки, AKS и т. д..
Может быть, с названиями параметров что-нибудь попутал, давно было.
Но результаты отличные, не помню ни одного сбоя. Есть только одно замечание, если очень долго держать палец на кнопке, то она блокируется. Уберёшь палец — через пару секунд кнопка опять работает.
В реальной работе это несущественно.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 58 ]  На страницу Пред.  1, 2, 3  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB