簡體   English   中英

如何在python腳本中獲取方波的頻率

[英]How to get the frequency of a square wave in a python script

我正在使用 TSL235 ( http://www.ti.com/lit/ds/symlink/tsl235.pdf ) 光頻轉換器和 Raspberry Pi。 傳感器的輸出是一個方波(50% 占空比),其頻率與光強度成正比。

所以我需要知道(在 python 腳本中)哪個頻率到達 Raspberry Pi 的 Input 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM