Arduino:Примеры/Threshold

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Версия для печати больше не поддерживается и может содержать ошибки обработки. Обновите закладки браузера и используйте вместо этого функцию печати браузера по умолчанию.

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


Установление порога для запуска события[1]

Этот пример показывает, как при помощи библиотеки CapacitiveSensor настроить плату Arduino на то, чтобы выставить определенный порог при считывании данных с датчика электроемкости. При достижении этого порога запускается событие – отображение в мониторе порта IDE Arduino записи о превышении порога.

Этот код также можно использовать для лампы, переключающейся от прикосновения. Значения a, b и c можно поменять в соответствии с вашим проектом.

Код

#include <CapacitiveSensor.h>

CapacitiveSensor cs_7_8 = CapacitiveSensor(7,8);  // 10-мегаомовый 
// резистор между 7-ым и 8-ым контактами; кроме того, к 8-ому контакту 
// можно подключить антенну

unsigned long csSum;

void setup() {
    Serial.begin(9600);
}

void loop() {
    CSread();
}

void CSread() {
    long cs = cs_7_8.capacitiveSensor(80);  // a: разрешение датчика выставляем на «80»
	if (cs > 100) {  // b: произвольное число
		csSum += cs;
		Serial.println(cs); 
		if (csSum >= 3800)  // c: это значение – порог; чем оно 
// выше, тем выше должно быть значение, считанное датчиком, чтобы 
// запустить событие
		{
			Serial.print("Trigger: ");
			Serial.println(csSum);
			if (csSum > 0) { csSum = 0; }  // сброс
			cs_7_8.reset_CS_AutoCal();  // останавливаем считывание данных
		}
	} else {
		csSum = 0; // таймаут, вызванный некорректностью считанных данных
	}
}

См.также

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