не корректно работает pir dyp me003 датчик

takugawa
Offline
Зарегистрирован: 11.07.2012

Всем привет!

купил на ebay pir датчик подключил к ардуино через сенсор-шелд 

датчик завязал на светодиод.

светодиод постоянно загорается сам по себе

код программы

int ledPin = 12;
int switchPin = 2;
int value = 0;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(switchPin, INPUT); }
void loop()
{value = digitalRead(switchPin);
if (HIGH == value)
{digitalWrite(ledPin, HIGH);}
else { digitalWrite(ledPin, LOW); }
}

на датчике крутил и чувствительность в макс и в мин, если в максимум то вообще диод не тухнет даже когда в радусе действия ничего нет на протяжении долго времени.

вопрос возмоно ли понизить чувствительность помимо реле еще каким другим способом?

 

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

Для начала дайте ссылочку на датчик.

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

А как подключаете? 

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

Судя по ссылке, питание у датчика 12 вольт и сигнал меняется от 0 до наряжения питания, а значит к входу дуины нужно подключаться через делитель. Вы это учли?

takugawa
Offline
Зарегистрирован: 11.07.2012

Выше с адресом ошибся с мобилника при медленном инете писать тяжко этот правильный http://www.ebay.com/itm/Infrared-PIR-Motion-Module-Sensor-for-Arduino-AR...

takugawa
Offline
Зарегистрирован: 11.07.2012

подключаю тремя кабелями, но сейчас написать не смогу, только завтра и вышлю фотку подключения

takugawa
Offline
Зарегистрирован: 11.07.2012

 по подключению от датчика к шелду 

Gnd-G

Out-S(signal)

+5V-V

takugawa
Offline
Зарегистрирован: 11.07.2012

 подключал датчик автономно от ардуино через батарейки и светодиод аналогично ложные срабатывания.

что делать? помогите!

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

Если все правильно подключаете, то скорее всего не исправен датчик.

Dimus
Offline
Зарегистрирован: 25.11.2012

у датчика активный уровень низкий, по вашей программе светодиод наоборот гаснет при обнаружении движения.

нужно так:

void loop()
{value = digitalRead(switchPin);
if (value == LOW)
{digitalWrite(ledPin, HIGH);}
else { digitalWrite(ledPin, LOW); }
}

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

Это вы откуда такое взяли? Конкретно у данного датчика был и есть актиный уровень - высокий.

takugawa
Offline
Зарегистрирован: 11.07.2012

нашел ошибку неисправный датчик, из китая привезли еще партию все работает отлично.