Ардуино: ёмкостный датчик прикосновения

DSC00318_Наверное уже никому в наше время не нужно объяснять, что такое тачпад? Этим удобным манипулятором снабжены все современные ноутбуки. Вместо джойстика или мышки, для перемещения курсора и кликов мы используем тачпад, или, по-научному, сенсорную панель.

В этом уроке мы будем работать с простым ёмкостным датчиком, который позволяет отследить всего одно касание (вот он, на рисунке справа). Наша задача, связать касание датчика пальцем с каким-нибудь действием, скажем, с излучением звука зуммером. Трогаем датчик — зуммер пищит. Не трогаем — молчит.

Для решения этой задачи нам понадобится соединить вместе контроллер Ардуино Уно, зуммер, и, собственно,  сам датчик. В качестве последнего будем использовать небольшую платку на базе сенсорного чипа TTP223. Для питания устройства годится напряжение в диапазоне от 2 до 5.5 Вольт.

Данный датчик является цифровым, а значит он выдает только одно из двух возможных значений: истина или ложь. В электронике это соответствует высокому и низкому уровню напряжения, соответственно.

1. Подключение

Использованный нами в уроке ёмкостный датчик имеет три контакта:

  • VCC — питание +5В;
  • GND — земля;
  • OUT — сигнал.

Как и все прочие цифровые датчики, линию OUT мы подключаем к любому свободному цифровому входу Ардуино Уно. Традиционно, используем для работы с датчиком вход №2. Получившаяся схема будет иметь вид:

touch_схема

Внешний вид макета

touch_bb

2. Программа

Теперь попробуем оживить всё это. Все что нам потребуется — это считывать состояние вывода №2 на каждом такте программы, и в зависимости от полученного значения, включать или выключать зуммер. Вот что у нас получается:

int capPin = 2;
int buzzPin = 11;

void setup() {
  pinMode( capPin, INPUT );
  pinMode( buzzPin, OUTPUT );
}

void loop() {
  if( digitalRead( capPin ) )
    digitalWrite( buzzPin, HIGH );
  else
    digitalWrite( buzzPin, LOW );
}

Наконец, записываем программу на Ардуино Уно, и смотрим что получилось!

 


Изменено:

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *