Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import RPi.GPIO as GPIO
- import time
- import math
- pi = 3.14159265359
- f = 0.25
- timeDelay = 1/(100*f)
- peak = 5
- offSet = 2.5
- last = -10
- prevLast = -10
- def bin2Dec(in1, in2, in3, in4, in5, in6, in7, in8):
- ans = 128*in1 + 64*in2 + 32*in3 + 16*in4 + 8*in5 + 4*in6 + 2*in7 + in8
- return ans
- def getVoltage(score):
- ans = score/256
- ans = ans*peak
- return ans
- def getPeakVol(curr):
- vdash = curr - prevLast
- vdash/=timeDelay
- vdash/=2
- omega = 2*pi*f
- last2 = last*last
- term2 = vdash/omega
- term2 = term2*term2
- vPeak = last2 + term2
- vPeak = math.sqrt(vPeak)
- return vPeak
- # Set GPIO mode and pins
- GPIO.setmode(GPIO.BCM)
- GPIO.setup(26, GPIO.IN)
- GPIO.setup(12, GPIO.IN)
- GPIO.setup(13, GPIO.IN)
- GPIO.setup(15, GPIO.IN)
- GPIO.setup(16, GPIO.IN)
- GPIO.setup(25, GPIO.IN)
- GPIO.setup(22, GPIO.IN)
- GPIO.setup(24, GPIO.IN)
- try:
- while True:
- # Read input from pins
- input1 = GPIO.input(26)
- input2 = GPIO.input(12)
- input3 = GPIO.input(13)
- input4 = GPIO.input(15)
- input5 = GPIO.input(16)
- input6 = GPIO.input(25)
- input7 = GPIO.input(22)
- input8 = GPIO.input(24)
- vol = getVoltage(bin2Dec(input1, input2, input3, input4, input5, input6, input7, input8))
- vol = vol - offSet
- # Print input voltage values
- print(vol, " ")
- if(prevLast==-10):
- prevLast = vol
- elif(last==-10):
- last = vol
- else:
- print("Peak: ", getPeakVol(vol))
- prevLast =last
- last = vol
- pass
- # Wait for timeDelay duration
- time.sleep(timeDelay)
- except KeyboardInterrupt:
- # Clean up GPIO settings
- GPIO.cleanup()
- pass
Advertisement
Add Comment
Please, Sign In to add comment