Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: сенсор
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
day177
понадобилась сенсорная кнопка. Схема Эльм Чана
А вот с алгоритмом не могу разобраться.
Пока прикинул вот такой
1. Запустить устройство.
2. "Лапка" МК как выход, на выходе 0.
3. Небольшая задержка чтобы все параметры устаканились.
4. Подать на выход 1.
5. Небольшая задержка.
6. "Лапку" сделать входом без подтяжки.
7. Запустить таймер и ждать когда на входе появится 1.
8. Когда на входе появилась 1, запомнить значение таймера - это будет константа "свободного" сенсора.
9. Выполняем шаги 4-7 в режиме ожидания, и сравниваем значение константы со значением счетчика.
10. Когда значение счетчика превысит значение константы считать что произошло касание.

На сколько данный алгоритм верен?
Itch
Экспериментально подмечено, что 50Гц дает такую наводку, что касание по сравнению с ним порядка 10% только. Спасает фильтрация - усреднение. Также если подышать на сенсор, то время опять сдвигается очень сильно, гораздо больше чем от касания. Поэтому надо делать адаптивный алгоритм, который чувствует быструю смену (большую производную), но может плавно сдвигать фоновое значение. Вобщем, геморой еще тот, после всех плясок возникает стойкое желание применить простую кнопку - надежно в любую погоду.
МП41
Теоритически от 50Гц можно и фильтр несложный поставить...
day177
220 будет далеко от устройства
МП41
В полевых условиях будет работать?
defunct
У МК есть чудесный вход аналогового компаратора. Почему бы не применить его?
ae_
Цитата(day177 @ Dec 5 2008, 19:02) *
понадобилась сенсорная кнопка. Схема Эльм Чана
А вот с алгоритмом не могу разобраться.
Пока прикинул вот такой
1. Запустить устройство.
2. "Лапка" МК как выход, на выходе 0.
3. Небольшая задержка чтобы все параметры устаканились.
4. Подать на выход 1.
5. Небольшая задержка.
6. "Лапку" сделать входом без подтяжки.
7. Запустить таймер и ждать когда на входе появится 1.
...

На мой взгляд, пункт 4 - лишний, поскольку низким выходным сопротивлением, пока пин - выход, он быстро зарядит ёмкость сенсора до лог.1 и нечего будет измерять.

- пин МК -> выход, на выходе 0.
- небольшая задержка для разряда ёмкости сенсора до лог.0
- пин МК -> вход без подтяжки.
- считать время, пока на входе не появится 1.
...
Чтобы уменьшить наводки 50Гц, между сенсором и выводом МК поставить конденсатор около 100пФ.
Itch
Цитата
Чтобы уменьшить наводки 50Гц, между сенсором и выводом МК поставить конденсатор около 100пФ.

Наклеивал на сенсор изоленту и касался через неё - 50Гц было. Без изоленты с сетевым источником питания там вообще пипец будет, никакой фильтр не поможет. Думаю и со 100пФ будет тоже самое.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.