Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Arduino:Примеры/Threshold

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

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

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


Установление порога для запуска события[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. }

См.также

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

  1. playground.arduino.cc - CapacitiveSensor