Датчики движения всегда выдют 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 шт):
Подключите его к пину 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);
}
}
