Arduino:Примеры/Demo Sketch
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Демо-скетч библиотеки CapacitiveSensor[1]
Этот пример показывает, как при помощи библиотеки CapacitiveSensor настроить плату Arduino на считывание данных с трех датчиков электроемкости.
Код
#include <CapacitiveSensor.h>
/*
* Демонстрационный скетч для библиотеки CapitiveSensor.
* Автор – Пол Бэджер (2008 год).
* Использует мощный резистор (на 10 МОм), подключенный между
* отправляющим и принимающим контактами.
* Резистор влияет на чувствительность датчика, поэтому советуем
* поэкспериментировать со значениями в диапазоне 50 кОм – 50 МОм.
* Чем мощнее резистор, тем более чувствительным становится датчик.
* Принимающий контакт – это сенсорный контакт. Попробуйте на нем
* разные количества фольги/металла.
* Наилучшие результаты достигаются, если сенсорная фольга и провод
* покрыты изолятором вроде бумаги или куска пластика.
*/
CapacitiveSensor cs_4_2 = CapacitiveSensor(4,2); // 10-мегаомовый
// резистор между 2-ым и 4-ым контактами; 2-ой контакт – это сенсорный
// контакт, добавьте провод и фольгу
CapacitiveSensor cs_4_5 = CapacitiveSensor(4,5); // 10-мегаомовый
// резистор между 6-ым и 4-ым контактами; 6-ой контакт – это сенсорный
// контакт, добавьте провод и фольгу
CapacitiveSensor cs_4_8 = CapacitiveSensor(4,8); // 10-мегаомовый
// резистор между 8-ым и 4-ым контактами; 8-ой контакт – это сенсорный
// контакт, добавьте провод и фольгу
void setup()
{
cs_4_2.set_CS_AutocaL_Millis(0xFFFFFFFF); // выключите автокалибровку на 1-ом канале – просто чтобы посмотреть, что получится
Serial.begin(9600);
}
void loop()
{
long start = millis();
long total1 = cs_4_2.capacitiveSensor(30);
long total2 = cs_4_5.capacitiveSensor(30);
long total3 = cs_4_8.capacitiveSensor(30);
Serial.print(millis() - start); // проверяем производительность в миллисекундах
Serial.print("\t"); // символ «Tab» для разделения фрагментов в отладочном окне
Serial.print(total1); // результаты датчика 1
Serial.print("\t");
Serial.print(total2); // результаты датчика 2
Serial.print("\t");
Serial.println(total3); // результаты датчика 3
delay(10); // произвольная задержка, чтобы ограничить количество данных, идущих через последовательный порт
}