
В этом уроке нам понадобится:
- Датчик HC-SR501: http://ali.ski/PuY7N
 - Arduino uno: http://ali.ski/gC_mOa
 - Диоды и резисторы: http://fas.st/KK7DwjyF
 - Макетная плата: http://ali.ski/rq8wz8
 
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
В этом уроке мы подключим к Ардуино датчик движения HC-SR501. С его помощью можно распознать наличие движения в помещении.
Что же такое датчик движения:
Датчик движения (англ. motion sensor) – бесконтактный датчик, фиксирующий перемещение объектов и используемый для контроля за окружающей обстановкой или автоматического запуска требуемых действий в ответ на перемещение объектов.
Датчик движения состоит из 3 пинов: +,- и пин на который подается 1 при улавливании движения.
На датчике есть два потенциометра, первый Чувствительность. Настройка центра контролируемой зоны. (от 3 до 7 м) . Второй потенциометр устанавливает время в течении которого при обраружении движения на OUT будет логическая единица (от 5 до 300 с)
Еще на датчике имеется перемычка состоянии L и H Если перемычка в состоянии L то при улавливании движения датчик подаст логическую 1 на пин и больше не будет улавливать ничего, пока не закончено время заданное потенциометром задающим время срабатывания. Ну а если перемычка стоит в H то датчик будет постоянно обнулять таймер заданный потенциометром как только будет улавливать движение.
Пин OUT датчика в данном примере подключается к 2 пину Ардуино.
После подключения необходимо залить в ардуино скетч который приведен ниже.
#define pirPin 8
#define LedPin 13
 
void setup() {
  Serial.begin(9600); // Объявляем работу com порта со скоростью 9600
  pinMode(pirPin, INPUT); //Объявляем пин, к которому подключен датчик движения, входом
  pinMode(LedPin, OUTPUT); //Объявляем пин, к которому подключен светодиод, выходом
}
 
void loop() {
  int pirVal = digitalRead(pirPin); //Считываем значения с датчика движения. Если обнаружили движение, 
                                    //то транслируем сигнал тревоги в монитор порта и включаем светодиод
  if(pirVal == HIGH)
  {
    digitalWrite(LedPin, HIGH);
    Serial.print("Тревога ");
    delay(2000);
  }
else
{
  Serial.print("Сканирую ");
  digitalWrite(LedPin,LOW);
  delay(1000);
}
}
После загрузки программного кода замрите на некоторое время – светодиод гореть не булет, но стоит Вам незначительно пошевелиться, датчик это сразу определит и напишет в ком порте соответствующее слово и зажжет светодиод.
Пример реализации можно увидеть в видео ниже: