Raspberry Pi事件检测期间的问题

时间:2019-07-15 10:12:30

标签: python raspberry-pi

我想使用转盘上的10个孔的圆形阵列和接近传感器来计算转盘(上面贴有铝箔)的RPM。

LOOK_AT_THE_PHOTO

不幸的是,我没有大量计数(从铝箔到孔的变化),而是有很多不需要的数字。

我试图弄清楚发生了什么,但没有任何积极的结果。例如,如果我固定(没有磁盘的任何可见运动)与接近开关相对的铝箔,则会每0.003-0.004 s不断调用一次detect_motion()函数。弹跳时间效果不好。

from __future__ import division
import RPi.GPIO as GPIO
import time
import Adafruit_PCA9685
import xlsxwriter

workbook = xlsxwriter.Workbook('Test.xlsx')
worksheet = workbook.add_worksheet()

pwm = Adafruit_PCA9685.PCA9685()

GPIO.setmode(GPIO.BCM)

pwm.set_pwm_freq(60)

pwm.set_pwm(0, 0, 4095)
pwm.set_pwm(1, 0, 1000)

time_motion = [0]
delta_time = [0]

row = 0

def detect_motion(ev=None):

    global row

    row += 1    

    time_motion.append(time.time())
    a = time_motion[-1] - time_motion[-2]
    print(a)

    worksheet.write(row, 0, a)
    workbook.close()

    delta_time.append(a)

    del time_motion[-2]
    del delta_time[-2]

GPIO.setup(17, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.add_event_detect(17, GPIO.FALLING, callback=detect_motion, bouncetime=10)

需要更改事件之间的时间间隔(从箔到孔)。使用它们,我将能够计算磁盘的RPM。

0 个答案:

没有答案