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

Добрый день. Пробовал работать с датчиком движения, как работал модуль мне не понравилось, да и хотелось понять чуть глубже процесс работы в образовательных целях. Отпаял пироприемник и подключил к nano, к земле и выходу 3v3 (так как на модуле приходило именно 3,3 вольта. Сигнальный выход на А1.

void setup() {
Serial.begin(9600);
pinMode(6, OUTPUT);
pinMode(A1, INPUT);
Serial.println("start");
}
uint32_t valueMin, valueMax, value, valuePrev, timer = 0;
int16_t delta;

void loop() {
  timer = millis(); valueMin = 1023; valueMax = 0; 
  while (timer+500 > millis()){ //в течении 0,5сек определяем минимальное и максимальное значение
   if (analogRead(A1) > valueMax){valueMax = analogRead(A1);}
   if (analogRead(A1) < valueMin){valueMin = analogRead(A1);}
  }
  valuePrev = value; //запоминаем предыдущее значения
  value = valueMax - valueMin; //считаем разницу максимального и минимального значения за период
  delta = value - valuePrev;   //сравниваем текущее и предыдущее значение разницы за период
  delta = abs(delta); 
//  Serial.print(value); Serial.print(" | "); Serial.println(delta); 
  if (delta >= 4){
    Serial.print("move");Serial.print(" - ");Serial.println(delta);
    analogWrite(6, 50); //включаем светодиод при обнаружении движения
    delay(5000); //задержка так как сигнал плавает какое то время после обнаружения движения
  }
  analogWrite(6, 0);
}

выводя в print все этапы пришел к выводу:
сигнал поступающий с датчика имеет вид шума и колеблется между неизменным минимумом и переменным максимумом, но все же минимум я включил в расчет. Максимум меняется в обоих направлениях поэтому расчет таков: считаем максимум - минимум за период (0,5сек) и сравниваем с предыдущим значением. Так как после появления сигнала еще какое то время сигнал колеблется делаем задержку 5сек. после обнаружения “движения”.

Работает это не совсем стабильно. Так вот вопрос в чем, я не правильно понял логику сигнала или качество датчика не очень и зря трачу время и стоит пробовать другой датчик?

у датчика есть какое-то обозначение? Номер модели?

Картинка - зачёт!
А цель то какая ?

2 лайка

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

HC-SR505

в первую очередь стоило изучить схему модуля

В чипе внутри каскад операционных усилителей, что вы там рассчитывали увидеть через ардуину?

1 лайк

Рабочий. Он так и должен работать - ноль вольт (или около ноля) равен сигналу «ожидание», 3.3В равен сигналу «движение».

Для фильтрации шума можно использовать простой фильтр: Всё что меньше N-вольт считать ожиданием, всё что выше M-вольт считать сигналом «движение». N и M подберешь, например N можно взять за 1 вольт, а M за 2 вольта (грубо говоря).

он PIR датчик с модуля отпаял и мучает…

Лингам видимо :grinning_face:

Чтобы жизнь мёдом не казалась?

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

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

1 лайк

за харизму однозначно 5 баллов!