Датчики движения всегда выдют HIGH

Собрал цепь с датчиком движения HC-SR501 на базе Arduino UNO R3. В какой-то момент заметил, что устройство ведёт себя неадекватно. В итоге собрал простейшую цепь, которая зажигает и тушит встроенный светодиод в зависимости от того, что возвращает датчик. Так вот, судя по поведению, датчик всегда выдаёт HIGH. Я решил, что он неисправен, и купил новый датчик, SR505. Но он ведёт себя абсолютно так же. Для проверки я заменил датчик движения на датчик препятствий, больше не меняя ничего, и он ведёт себя адекватно!

В чём может быть проблема? Может ли "глючить" Arduino UNO или я просто счастливый обладатель двух неисправных датчиков движения? Я мало что смыслю в электронике, но в моём понимании не особо важно, какой датчик висит на пине, важен выдаваемый сигнал - но неужели мне так "повезло"?

Примерная схема: введите сюда описание изображения

Скетч:

#define led 13
#define tracker 10

void setup() 
{
    pinMode(led, OUTPUT);
    pinMode(tracker, INPUT);
}

void loop() 
{
    digitalWrite(led, !digitalRead(tracker));
}

Ответы (1 шт):

Автор решения: Vanyamba Electronics

Подключите его к пину Analog 0.

#define led 13
#define tracker A0

void setup() 
{
   pinMode(led, OUTPUT);
}

void loop() 
{
   if (analogRead(tracker)>500) {
      digitalWrite(led, HIGH);
      delay(500);
   }
   else {
      digitalWrite(led, LOW);
   }
}
→ Ссылка