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

我正在使用TSL235(http://www.ti.com/lit/ds/symlink/tsl235.pdf)光频转换器和Raspberry 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

我想我必须在一段时间内统计信号.但是怎么样?

解决方法:

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

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

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
上一篇:检查Android设备是否有搜索硬件按钮


下一篇:android – OpenCV Manager无法在Galaxy S5中检测硬件