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

Arduino:Примеры/Гайд по использованию датчика движения с Arduino

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

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

Контакты:

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


Ambox content.png Черновик


Гайд по использованию датчика движения с Arduino[1]

В этом проекте мы создадим простую цепь с платой Arduino и датчиком движения типа PIR (означает «passive infrared», что переводится как «пассивный инфракрасный»). Ниже показано, как этот датчик работает вживую:

Видео

Описание

Датчик движения типа PIR измеряет инфракрасный свет, идущий от объектов, расположенных рядом с ним. Таким образом, он определяет движение, беря за основу данные об изменении инфракрасного света в окружающем пространстве. Это делает его идеальным датчиком для определения, к примеру, людей или животных, находящихся в пределах измеряемого диапазона.

Pir 1.jpg

Датчик на рисунке выше оснащен двумя потенциометрами, с помощью которых настраивается время задержки (это потенциометр слева) и чувствительность датчика (это потенциометр справа).

Распиновка

В подключении датчика к плате Arduino нет ничего сложного (у датчика всего три контакта):

  • Контакт GND на датчике – к контакту GND на Arduino
  • Контакт OUT на датчике – к цифровому контакту на Arduino
  • Контакт 5V – к контакту 5V на Arduino

Необходимые компоненты

  • Один датчик движения типа PIR (см. на eBay и на Amazon)
  • Одна плата Arduino (см. на Amazon)
  • Один светодиод
  • Провода-перемычки (см. на Amazon)
1parts Arduino with PIR Motion Sensor.jpg

Схема

Подключите друг к другу все эти компоненты, как показано на картинке ниже:

Arduino-with-PIR-motion-sensor-schematics.jpg

Код

Загрузите в IDE Arduino следующий код:

  1. /*  
  2.   *  Использование датчика движения типа PIR с платой Arduino.
  3.   *  Более подробно о проекте на:  randomnerdtutorials.com/pirsensor
  4.   *  Модифицирован Руи Сантосом (Rui Santos)
  5.      на основе скетча Лимор Фрид (Limor Fried)
  6. */
  7.  
  8. int led = 13;                // контакт для светодиода
  9. int sensor = 2;              // контакт для датчика
  10. int state = LOW;             // по умолчанию никакого движения
  11.                              // не определено
  12. int val = 0;                 // переменная для хранения
  13.                              // статуса датчика
  14.  
  15. void setup() {
  16.   pinMode(led, OUTPUT);      // контакт для светодиода
  17.                              // ставим в режим OUTPUT
  18.   pinMode(sensor, INPUT);    // контакт для датчика
  19.                              // ставим в режим INPUT
  20.   Serial.begin(9600);        // инициализируем последовательную
  21.                              // коммуникацию
  22. }
  23.  
  24. void loop(){
  25.   val = digitalRead(sensor);   // считываем данные от датчика
  26.   if (val == HIGH) {           // проверяем, находится ли датчик
  27.                                // в состоянии HIGH
  28.     digitalWrite(led, HIGH);   // включаем светодиод
  29.     delay(100);                // задержка в 100 миллисекунд
  30.    
  31.     if (state == LOW) {
  32.       Serial.println("Motion detected!");  //  "Замечено движение!"
  33.       state = HIGH;       // обновляем состояние переменной на HIGH
  34.     }
  35.   }
  36.   else {
  37.       digitalWrite(led, LOW); // выключаем светодиод
  38.       delay(200);             // задержка в 200 миллисекунд
  39.      
  40.       if (state == HIGH){
  41.         Serial.println("Motion stopped!"); //  "Движение прекращено!"
  42.         state = LOW;       // обновляем состояние переменной на LOW
  43.     }
  44.   }
  45. }

См.также

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

  1. randomnerdtutorials.com - Arduino with PIR Motion Sensor