Наверное уже никому в наше время не нужно объяснять, что такое тачпад? Этим удобным манипулятором снабжены все современные ноутбуки. Вместо джойстика или мышки, для перемещения курсора и кликов мы используем тачпад, или, по другому — сенсорную панель.
В этом уроке мы будем работать с простым ёмкостным датчиком, который позволяет отследить всего одно касание (вот он, на рисунке справа). Наша задача, связать касание датчика пальцем с каким-нибудь действием, скажем, с излучением звука зуммером. Трогаем датчик — зуммер пищит. Не трогаем — молчит.
Для решения этой задачи нам понадобится соединить вместе контроллер Ардуино Уно, зуммер, и, собственно, сам датчик. В качестве последнего будем использовать небольшую платку на базе сенсорного чипа TTP223. Для питания устройства годится напряжение в диапазоне от 2 до 5.5 Вольт.
Данный датчик является цифровым, а значит он выдает только одно из двух возможных значений: истина или ложь. В электронике это соответствует высокому и низкому уровню напряжения, соответственно.
Список необходимых компонентов
Для выполнения простого примера с сенсорной кнопкой, потребуется Ардуино-совместимый контроллер, зуммер и немного проводов вилка-розетка. Необходимые компоненты можно добавить в корзину прямо здесь, и затем оформить заказ в нашем интернет-магазине.
Подключение
Использованный нами в уроке ёмкостный датчик имеет три контакта:
- VCC — питание +5В;
- GND — земля;
- OUT — сигнал.
Как и все прочие цифровые датчики, линию OUT мы подключаем к любому свободному цифровому входу Ардуино Уно. Традиционно, используем для работы с датчиком вход №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 );
}
Наконец, записываем программу на Ардуино Уно, и смотрим что получилось!