Сенсор показан схематически - размытыми сопротивлением и ёмкостью.
Номиналы 51кОм и 4.7нФ некоторые могут оспорить. Чаще встречаются
схемы с номиналами в 4-5 раз меньше как у резистора, так и у ёмкости.
Почему я выбрал именно такие номиналы? Сейчас попробую доказать.
Постоянная времени RC цепочки, если конденсатор замкнуть на землю,
будет около 240_мкс. Но сигнал в IN спадает не линейно, а по
экспоненциальному закону /*см. график из предыдущего выпуска - он
выполнен как раз с учётом ЭТИХ номиналов*/. И точки, в которой КМОП
вход будет переключаться из "1" в "0", сигнал достигнет примерно за
150-200_мкс. Куда уж меньше!
Выбранных номиналов будет вполне достаточно, чтобы совершить опрос
сенсора примерно 100 раз в секунду. Не думаю, что человек сможет
прикоснуться и убрать руку быстрее, чем за 10мс. /*Да и за это время
он успеет изменить заряд правой обкладки конденсатора.*/.
Кто-то может сказать - а если опрашивать быстрее - то будет лучше!
Возможно. Но тогда время спада будет крайне маленьким - единицы мкс.
И различать разницу в длительностях спада будет гораздо труднее. Для
этого придётся применить контроллер с длительностью цикла команды не
более, чем 0.5мкс. /*То есть частота генератора в схеме должна быть
"от 10_МГц"*/
Здесь мы опять коснулись вопроса "А ЗАЧЕМ"? Зачем использовать более
высокочастотный чип? Ведь он дороже! Применение более высокой частоты
- это всегда меньшая надёжность. Кроме того, указанная схема может
работать на PIC-контроллере без применения внешнего генератора или
кварца - на внутреннем - 4_МГц.
А опрос сенсора чаще, чем 100 раз в секунду никакой излишней
информативности нам не даст. Поскольку все события, происходящие
вокруг сенсора, гораздо медленнее, чем данная частота опроса.
Вот и получается, что уменьшение номиналов RC-цепи с увеличением
частоты опроса ничего, кроме дополнительных трудностей и расходов нам
не принесёт.
........
Хочу отметить ещё один важный момент. Я не случайно выбрал частоту,
близкую (кратную) к частоте сетевого напряжения. Человек в
современном помещении - большая антенна, на которую наводится
значительное напряжение /*доказательство - самая распространённая
"игра" тех, кто сидит за осциллографом - дотронуться до щупа пальцем,
и смотреть на картинку :)*/. И если частота наводимых на человека
волн будет соизмерима с частотой опроса сенсора, то эффективность
воздействия человеческого тела на сенсор значительно возрастёт.
Конечно, нельзя надеяться только на этот фактор. Но и пренебрегать им
тоже неразумно.
........
Вот программа, которая управляет всем этим хозяйством:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
begin 644 036_SenS_c.c
hNaxm60UvCmYU60+U60+U60+U60+U60+U9mwUkSLluivhtTThyyYUxiXeukcU
h60-v0W+U64xpR0+x612v60+U60+U60+U60+U60wj6AritifU62xJJ01guCfk
hvj5ptSnv60oUsW+WuyvX612W0W+U64FZP43t812k8HgU60+U60+U60+U60wj
h6ATUtCLktifU612k6Cnl0W+U64YUDG+kCm+U60+U60+U60+U60+U60wj6B5r
hiD9ruCcg6CXlvyvfzCTntSnvuG1YuzwUvizktSHZuyLhuDwUtCjcwiLfzCri
hwT9c6D5jsCHU6D5csyrUuy+860+UPrJo61oUA1gU60+U60+U60+U60+U9mwU
hoS5ksD5vsi1Zv01luCDhsCgUvS+UHpJI6C6U6X+W6CUi9Ws860+URqVdP4IU
h84Zi8G-d8mgv60+U60+U9mwU9Wsi6CPYiCkg6CfisyHU6Drmvj6U6X+W609j
hwCXYiD6UsW-7HWkUs01mtSkUsj1ZvCLhtSkUwTTcwi1Zv+cU60-dNW+cOG2x
hOWYU60+U60+U60+U60+j9m13wSjc6C9ktSnz6D5jsCHU6D5csyrUuy+UvSIU
hwi1eviIg6CfUuW1Vyyji6C6Uvz1iyCjvuG1ksCQg6D9i9Wsi0W+U60+U65g8
h60+U60+UIox0KJF7FG+x612v60+U60+U9mwUoQv-qx96lG1DoAv6lwvMmwsV
h6BDEk02V6EcU60+U60+j9mwj9mwj9mwj9ngU60+U60+j9m106BrGmBIUxCXX
hwz1hyzIUwSfisSvrui1p60Xjvj5ftG-dNWYU9G1isT1UsSvmxyXe6D5isTjm
huDw860+U60+UTEcU60-HHo7NJ2Z361oUA1g860+UOXpdCm+U60+U60+U60+U
h60+U60+U9mwUoSvpwC1hzyLg6CThsDTZvSXZ6CHfuD9Zuznhvj5mu01lvy1Y
Cs01luCDhsCjU0W+U65o+
+
end
sum -r/size 30404/734
-----BEGIN PGP SIGNATURE-----
Version: PGPfreeware 6.5.8 for non-commercial use
iQA/AwUAPhmw++IO9qtjDC/9EQL4eACfQzKApBi174XOOG7JjKFwcSoPI+wAnAm6
JkHcu0iKBspZEX+fqzJww2O6
=25Np
-----END PGP SIGNATURE-----
Дорогие любители ассемблера!!! Хочу не разочаровать вас. Я тоже очень
люблю ассемблер. И частенько приходится пописывать (или отлаживать)
как "контроллерный" ассемблер, так и х86. Но тексты программ я буду
приводить только на С. Это связано с тем, что С - легко переносимый
язык, который существует практически на всех платформах.
Эту программу вы можете смело использовать как для контроллеров
семейства х51, так и для AVR, PIC или MSP. Нисколько не хочу умалить
достоинства того или иного семейства! Для каждого семейства есть свой
компилятор. Плохой или хороший. Но есть. И один и тот же кусок
программного кода можно использовать везде, практически не внося
изменений в синтаксис (часто только в объявления переменных).
А вот ассемблер отличается очень сильно даже для родственных семейств
у одного и того же производителя. Можно сказать, что каждый кристалл
- это новый ассемблер - это почти другая программа, которая должна
учитывать особенности памяти, периферии и т.п.
Поэтому, чтобы не устраивать "кружок по программированию", буду
приводить коды на С. Ближе ко всем. Кратко. Понятно. Легко и
элегантно. ;)
........
Хочу отметить, что СОБЫТИЕ в приведённой программе сработает в самый
первый раз - при включении (когда i!=j). А также будет происходить
ДВАЖДЫ - каждый раз, когда мы прикасаемся, и когда убираем руку.
/*Кроме того, и это сильно будет зависеть от реализации, условий,
конструкции сенсора и т.п., во время удержания руки устройство также
может срабатывать, если сильны электромагнитные и статические поля*/.
Задержка delay - в мс. Для данной схемы 10_мс вполне достаточно,
чтобы сигнал "устоялся" в "1".
Цикл, когда мы считаем задержку спада сигнала (i++) на ассемблере
будет занимать не более 3-4 команд (если это RISC архитектура).
Поэтому вполне подойдёт реализация, в которой команда выполняется за
1мкс. /*Как я уже приводил пример - PIC-контроллер с внутренним
генератором 4_МГц.*/ За 150-200_мкс до переключения входа IN из "1" в
"0" такая программа насчитает в счётчике i величину не более 100.
Поэтому в качестве переменной i можно использовать БАЙТОВУЮ, что
очень удобно и экономно.
По крайней мере, любой разработчик сможет доработать код так, чтобы
тот работал "статистически" - по нескольким чередующимся
срабатываниям определял факт ОДНОГО нажатия. Но это - не суть важно.
Главное - пример иллюстрирует простоту реализации программы сенсора
/*На ассемблере, кстати, программка будет не намного длиннее, если
будем иметь дело с RISC-чипом.*/
........
Тех читателей, которые праздную Рождество, поздравляю с этим (теперь
уже государственным) праздником.
Всего вам хорошего. Удачи и успехов!
Мои лучшие пожелания я также адресую и тем, кто не празднует
Рождество. Хорошо вам отдохнуть!
/*Кстати, темы праздников (в т.ч. и религиозных) я обещаю коснуться в
каком-нибудь следующем выпуске "Образа жизни" - как представится
хорошая возможность.*/
Рассылка "Электроника. Образ жизни" для тех, кто увлекается
разработкой и ремонтом электронных схем. Она и для специалистов по
аналоговой технике, и для "цифровиков". Каждый радиолюбитель сможет
найти здесь что-то своё - узнать новости, спросить, где можно найти
или скачать документацию к микросхеме, поделиться хитростями (как
отремонтировать телефон, "оживить" компьютер), отгадать кроссворд по
электронной тематике.
В рассылке можно будет задать свои вопросы по телефонии, цифровой и
аналоговой схемотехнике, микроконтроллерам, интерфейсам,
радиолюбительской технологии, программированию, интернету.
Посоветоваться, как написать программу /*для контроллера или под
какое-либо устройство*/. Главное - проявить смелость и послать свой
вопрос.
"Электроника. Образ жизни" и для тех, кто ещё учится (с её помощью вы
сможете написать реферат о том, что же такое резистор или
конденсатор!), для тех, кто преподаёт, для тех, кто работает на
заводе, в лаборатории или в офисе.
Если Вы чувствуете, что электроника - это ваш образ жизни -
присоединяйтесь!