Arduino:Примеры/Threshold

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

Перевод: Максим Кузьмин (Cubewriter) Перевел 364226 статей для сайта.</br>Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


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

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

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

Код

 1 #include <CapacitiveSensor.h>
 2 
 3 CapacitiveSensor cs_7_8 = CapacitiveSensor(7,8);  // 10-мегаомовый 
 4 // резистор между 7-ым и 8-ым контактами; кроме того, к 8-ому контакту 
 5 // можно подключить антенну
 6 
 7 unsigned long csSum;
 8 
 9 void setup() {
10     Serial.begin(9600);
11 }
12 
13 void loop() {
14     CSread();
15 }
16 
17 void CSread() {
18     long cs = cs_7_8.capacitiveSensor(80);  // a: разрешение датчика выставляем на «80»
19 	if (cs > 100) {  // b: произвольное число
20 		csSum += cs;
21 		Serial.println(cs); 
22 		if (csSum >= 3800)  // c: это значение – порог; чем оно 
23 // выше, тем выше должно быть значение, считанное датчиком, чтобы 
24 // запустить событие
25 		{
26 			Serial.print("Trigger: ");
27 			Serial.println(csSum);
28 			if (csSum > 0) { csSum = 0; }  // сброс
29 			cs_7_8.reset_CS_AutoCal();  // останавливаем считывание данных
30 		}
31 	} else {
32 		csSum = 0; // таймаут, вызванный некорректностью считанных данных
33 	}
34 }

См.также

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