UNO и HC-SR501

sergebsn
Offline
Зарегистрирован: 21.05.2013

День добрый!

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

Есть такой код:

 

int pirPin = 8;
int val;

void setup() {
  Serial.begin(9600);
}

void loop() {
  val = digitalRead(pirPin); //read state of the PIR
  
  if (val == LOW) {
    Serial.println("No motion"); //if the value read is low, there was no motion
  }
  else {
    Serial.println("Motion!"); //if the value read was high, there was motion
  }
  
  delay(1000);
}

 

Так вот заливаю в скетч в ардуино, в мониторе порта постоянно валит одно: "Motion!"

Почему так происходит? Что машешь рукой перед датчиком, что нет - все равно Motion! выкидывает.

 

maksim
Offline
Зарегистрирован: 12.02.2012
Mbamba
Offline
Зарегистрирован: 18.06.2013

1) в функции setup() добавьте

pinMode(pirPin,INPUT);

2) совсем хорошо будет, если Вы еще pirPIN соедините через резистор 7-10 kom с землей (GND).

maksim
Offline
Зарегистрирован: 12.02.2012

Mbamba пишет:
1) в функции setup() добавьте pinMode(pirPin,INPUT);
Бессмысленно, так как все выводы по умолчанию настроены на вход.

Mbamba пишет:
2) совсем хорошо будет, если Вы еще pirPIN соедините через резистор 7-10 kom с землей (GND).
Тоже бессмысленно, так как выход BISS0001 (микруха на которой построен датчик) является выходом ОУ, который не нуждается в подтяжке.

А причин почему не работает три:
1. Неправильно настроен датчик (чувствительность выкручена на максимум);
2. Неверно подключен датчик (не туда, неконтакт, непропай);
3. Неисправен сам датчик.

 

Mbamba
Offline
Зарегистрирован: 18.06.2013

maksim пишет:

 

Mbamba пишет:
2) совсем хорошо будет, если Вы еще pirPIN соедините через резистор 7-10 kom с землей (GND).
Тоже бессмысленно, так как выход BISS0001 (микруха на которой построен датчик) является выходом ОУ, который не нуждается в подтяжке.

А причин почему не работает три:
1. Неправильно настроен датчик (чувствительность выкручена на максимум);
2. Неверно подключен датчик (не туда, неконтакт, непропай);
3. Неисправен сам датчик.

 

п.2 имеет смысл. Если у Вас отсоединится провод от выхода этого датчика, то на входе может быть как 0, так и 1 Если помехи есть. То есть датчика нет, а мы имеем 1. А если эта единица в программе управляет стартом "Протона-М"?

А далее да, согласен с Вами, надо проверить подключение и состояние самого датчика.

maksim
Offline
Зарегистрирован: 12.02.2012

Mbamba пишет:

А если эта единица в программе управляет стартом "Протона-М"?

Вот именно по этой причине и бессмысленно - дуина никогда не будет управлять стартом "Протона-М". Вы же резервное питание не посоветовали на случай если пропадет питание... И экран на случай мощной электтромагнитной помехи не посоветовали...

Mbamba
Offline
Зарегистрирован: 18.06.2013

maksim пишет:

Mbamba пишет:

А если эта единица в программе управляет стартом "Протона-М"?

Вот именно по этой причине и бессмысленно - дуина никогда не будет управлять стартом "Протона-М"

Почему же так категорично? Может, если не "Протоном-М", так "Кассамом" .

А если серьезно, то на каждом этапе проектирования и изготовления надо стараться сводить к минимуму возникновение всяких неожиданностей и непредвиденных ситуаций. Думаю, что припаять и использовать  сопротивление в качестве подтяжки не угробит экономически любой самый бюджетный проет.