Snake Rулит!     Болезни рыб. Заболевания рыб. Болезни рыбок. Заболевания рыбок. Диагностика рыб.     Норильск. Талнах. Кайеркан. НПР.     База данных рецептов. Поиск рецептов по ингредиентам.
Primo     Persona     CV     Libri     Viator     Elektro     Foto     Scientia   |  
[English]
20.7.2008

Емкостной сенсор соприкосновения на МК Atmega

Схема подключения такая:

Сам сенсор – это кусок односторонней платы, к которому припаян проводок и сверху все заклеено скотчем.

Принцип работы

Схема - RC цепь.

Выдаем на PD7 единицу. И начинаем считать обороты цикла, в котором проверяется есть ли на PC0 единица. Количество оборотов цикла будет зависеть от емкости RC цепи. Чем больше емкость, то больше времени будет требоваться, чтобы достичь единицу на PC0.

Я использовал два резистора по 1 МОм. Если поставить еще больше сопротивление, то достижение 1 на PC0 еще замедлится. В моей схеме в состоянии покоя при 12Mhz надо около 50 оборотов цикла. При 1Mhz это может быть проблемой, а может и нет, но, факт, что если надо растянуть цикл замера, то можно просто увеличить сопротивление.

Если что-то преподнести или положить на сенсор, то емкость RC цепи увеличится. Если прикоснуться пальцем, то увеличится значительно, так как человек обладает емкостью примерно в 100pF и является проводником, а цепь сама по себе емкость раз в 10 меньше. Т.е. с человеком образуется вполне достойный конденсатор на сенсоре.

Схема в сборке

Видео работы

левое число на экране - количество оборотов цикла, право – просто счетчик, чтобы знать что ничего не остановилось и замеры продолжаются

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

Интересно, что если убрать соединение между PD7 и PC0 вообще и просто ткнуть в PC0 сенсор, то наблюдается вот такая картина (программный код тот же):

Программа:

	//  input PC0
	DDRC &=0b11111110;
	PORTC&=0b11111110; // pul up - off

	// output pd7
	DDRD |=0b10000000;

	while(1){
		k++;
		r=0; // counter

		// out 0
		PORTD&=0b01111111;
		while(PINC&0b00000001);


		// out 1
		PORTD|=0b10000000;

		while(!(PINC&0b00000001)) r++;
		

		// out 0
		PORTD&=0b01111111;


		//output data to display
		/*
		itoa(r+2, buf,10);
		my44780_command_home(&disp1);		
		my44780_send_string(&disp1,buf);
		my44780_send_string(&disp1," ");
		itoa(k, buf,10);
		my44780_send_string(&disp1,buf);
		my44780_send_string(&disp1,"      ");
		_delay_ms(100);
		*/
	}

В идеале же хотелось бы достичь работы только с одним проводом, чтобы с него конденсатор и заряжался и проверялся, чтобы экономить ноги МК.

Принтер Epson LQ-630 (C11C480019) для дома!
Технический, нотариальный перевод и др. Формы заказа.
glavperevod.ru
Услуги ателье. Продажа шуб, полушубков, меховых курток, дубленок.
momza.ru

Комментарии

2010-04-06 17:57:59 Алексей ()

а можете выложить весь проект?


2010-04-07 23:20:20 Артем Кучин (Москва, Россия)

нет, его 100 лет уже нет, и там целая история с подключением экрана. Основной код здесь показан.


2011-03-07 23:32:14 Артур ()

А если же мне не нужен экран, подсчет циклов, нужен только сенсор, подскажите, как будет выглядеть программа??


Добавить комментарий

Ваше имя:
город: страна:
Комментарий:

Введите код "1446" -

Сообщения не по теме будут удалены. Вопросы не по теме следует направлять по электронную почту.
Ваши данные будут запомнены в cookie для удобства. HTML запрещен.

(C)1999-2013 Артем Кучин
Email: artem@artem.ru
На письма без темы или без имени отправителя не отвечаю

При использовании материалов ссылка на сайта www.artem.ru обязательна! Автор оставляет за собой право отказать в праве использования материалов на безвозмездной основе без объяснения причин. Материалы сайта защищены законом об авторских и смежных правах.

Цена домена: 1 500 000 руб.