ШИМ до высокого уровня напряжения - PullRequest
0 голосов
/ 23 сентября 2018

У меня есть вход ШИМ в моем GPIO Raspberry Pi.Мне нужно только определить время, когда GPIO читает ШИМ или нет.

Например, если мой Raspberry Pi получит эти данные (|||| => ШИМ)

_______|||||||_______||||||||______________|||||||_______

Я будуполучите время каждого минимума и ШИМ

_______|||||||_______||||||||______________|||||||_______
[70 ms][70 ms][70 ms][70 ms][    140 ms   ][70 ms][70 ms]

или, по крайней мере, сможете преобразовать его в высокий уровень напряжения, как показано ниже (---- => HIGH)

_______-------_______--------______________-------_______
[70 ms][70 ms][70 ms][70 ms][    140 ms   ][70 ms][70 ms]

Iнужно, чтобы это было так, чтобы я мог получить продолжительность PWM.

Как я могу сделать это в реальном времени в Python?

1 Ответ

0 голосов
/ 23 сентября 2018
>>> import time
>>> start_time = time.time()
>>> while input(): #input from RaspberryPi GPIO
...   pass
...

>>> end_time = time.time()-start_time
>>> end_time  #Store this in a list
19.64651846885681
>>>

Для каждого высокого или низкого сигнала GPIO просто сбросьте значения start_time и end_time и рассчитайте разницу во времени.
Из вышеприведенного кода замените input () на сигнал PWM.И вы можете рассчитать разницу во времени, как указано выше.Просто используйте вышеупомянутое в цикле и сохраните значения в списке, чтобы получить желаемый результат.

...