Чтение прямоугольного сигнала с датчика - PullRequest
1 голос
/ 30 октября 2019

Я использую радарный датчик, который выдает прямоугольную волну в зависимости от скорости движения объекта. Я хочу рассчитать скорость объекта при изменении частоты прямоугольного сигнала. Следующий код дает частоту, но моя проблема в том, что код продолжает печатать последнее значение, даже если на выводе gpio отсутствует входной сигнал. Как обнулить или остановить печать последнего значения.

import time
import pigpio
import read_PWM
PWM_GPIO = 21
SAMPLE_TIME = 1.0
pi = pigpio.pi()
p = read_PWM.reader(pi, PWM_GPIO)
while True:
      time.sleep(SAMPLE_TIME)  
      f = p.frequency()
      pw = p.pulse_width()
      dc = p.duty_cycle()
      print(f)

1 Ответ

1 голос
/ 30 октября 2019

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

, тогда вы можете изменить свой код так:

import time
import pigpio
import read_PWM
PWM_GPIO = 21
SAMPLE_TIME = 1.0
pi = pigpio.pi()
p = read_PWM.reader(pi, PWM_GPIO)
p2 = read_(whateverthisimplementations HIGH, LOW basic read is)
while True:
      time.sleep(SAMPLE_TIME)  
      f = p.frequency()
      pw = p.pulse_width()
      dc = p.duty_cycle()
      if p2 != HIGH:
           print(f)
...