Arduino:Примеры/Demo Sketch

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Демо-скетч библиотеки 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);                             // произвольная задержка, чтобы ограничить количество данных, идущих через последовательный порт 
}

См.также

Внешние ссылки