Arduino с PIR-датчиком движения

В этом проекте вы создадите простую схему с Arduino и PIR-датчиком движения, который может обнаруживать перемещение. Светодиод будет загораться при обнаружении движения.

Посмотрите видео ниже, чтобы увидеть, как это работает

Знакомство с PIR-датчиком движения

PIR-датчик движения идеально подходит для обнаружения перемещения. PIR расшифровывается как «Passive Infrared» (пассивный инфракрасный). По сути, PIR-датчик движения измеряет инфракрасное излучение от объектов в его поле зрения.

Таким образом, он может обнаруживать движение на основе изменений инфракрасного излучения в окружающей среде. Он идеально подходит для определения того, вошёл ли человек в зону действия датчика или покинул её.

PIR-датчик движения

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

Распиновка

Подключение PIR-датчика движения к Arduino довольно простое — датчик имеет всего 3 вывода.

  • GND — подключите к земле

  • OUT — подключите к цифровому пину Arduino

  • 5V — подключите к 5V

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

Необходимые компоненты для проекта Arduino с PIR-датчиком

Вот список необходимых компонентов для этого проекта:

Вы можете использовать ссылки выше или перейти непосредственно на MakerAdvisor.com/tools, чтобы найти все компоненты для ваших проектов по лучшей цене!

Схема подключения

Соберите все компоненты, следуя схеме ниже.

Схема подключения Arduino с PIR-датчиком движения

Код

Загрузите следующий код.

/*
    Arduino with PIR motion sensor
    For complete project details, visit: http://RandomNerdTutorials.com/pirsensor
    Modified by Rui Santos based on PIR sensor by Limor Fried
*/

int led = 13;                // пин, к которому подключен светодиод
int sensor = 2;              // пин, к которому подключен датчик
int state = LOW;             // по умолчанию движение не обнаружено
int val = 0;                 // переменная для хранения состояния датчика (значение)

void setup() {
  pinMode(led, OUTPUT);      // инициализация светодиода как выхода
  pinMode(sensor, INPUT);    // инициализация датчика как входа
  Serial.begin(9600);        // инициализация последовательного порта
}

void loop(){
  val = digitalRead(sensor);   // чтение значения датчика
  if (val == HIGH) {           // проверка, что датчик в состоянии HIGH
    digitalWrite(led, HIGH);   // включение светодиода
    delay(100);                // задержка 100 миллисекунд

    if (state == LOW) {
      Serial.println("Motion detected!");
      state = HIGH;       // обновление переменной state на HIGH
    }
  }
  else {
      digitalWrite(led, LOW); // выключение светодиода
      delay(200);             // задержка 200 миллисекунд

      if (state == HIGH){
        Serial.println("Motion stopped!");
        state = LOW;       // обновление переменной state на LOW
    }
  }
}

Просмотреть исходный код

Заключение

В этой статье показан простой пример использования PIR-датчика движения с Arduino. Теперь вы можете использовать PIR-датчик движения в более сложных проектах. Например, вы можете собрать проект ночного охранного освещения.

Если вы абсолютный новичок и только начинаете, мы рекомендуем пройти бесплатный мини-курс по Arduino.

Спасибо за чтение. Если вам понравилась эта статья, вероятно, вам понравятся и наши следующие публикации, поэтому, пожалуйста, поддержите нас, подписавшись на наш блог.