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

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

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

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

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

Список необходимых компонентов

Для выполнения простого примера с сенсорной кнопкой, потребуется Ардуино-совместимый контроллер, зуммер и немного проводов вилка-розетка. Необходимые компоненты можно добавить в корзину прямо здесь, и затем оформить заказ в нашем интернет-магазине.

В корзину
В корзину
В корзину
В корзину

Подключение

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

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

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

touch_схема

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

touch_bb

Программа

Теперь попробуем оживить всё это. Все что нам потребуется — это считывать состояние вывода №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 );
}

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


Изменено:

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.