如何在python脚本中获得方波的频率

2024-04-19 21:52:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我用的是TSL235(http://www.ti.com/lit/ds/symlink/tsl235.pdf)光-频转换器和覆盆子Pi。传感器的输出是一个方波(50%占空比),频率与光强成正比。

所以我需要知道(在python脚本中)哪个频率到达Raspberry Pi的输入GPIO Pin。

我只找到了一个教程(http://playground.arduino.cc/Main/TSL235R),其中显示了一个C代码,但我不明白C。。。我只和python一起工作

到目前为止,读取GPIO输入并没有那么困难:

#!/usr/bin/python
import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)
GPIO.setup(25, GPIO.IN)

impuls_count = 0
# Do next lines for i.e. 1000ms:
GPIO.wait_for_edge(25, GPIO.FALLING)
impuls_count = impuls_count + 1

我想我必须在一个时间间隔内计算信号。但是怎么做呢?


Tags: comhttpforgpiowwwcountpids
1条回答
网友
1楼 · 发布于 2024-04-19 21:52:04

使用时间模块。它具有对1微秒(1兆赫)敏感的时钟功能。看看你的传感器的数据表,它只有500千赫,这应该是足够的分辨率,以获得准确的频率测量在高光强度。

只需计算一组输入周期的平均频率。

import time

NUM_CYCLES = 10
start = time.time()
for impulse_count in range(NUM_CYCLES):
    GPIO.wait_for_edge(25, GPIO.FALLING)
duration = time.time() - start      #seconds to run for loop
frequency = NUM_CYCLES / duration   #in Hz

相关问题 更多 >