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
- timeDelay = 0.5
- f = 0.1
- peak = 5
- 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)
- last = -1
- prevLast = -1
- 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)
- # Print input values
- # print("Input ", str(input1) + str(input2) + str(input3) + str(input4) + str(input5) + str(input6) + str(input7) + str(input8))
- # print("InputDec ", bin2Dec(input1, input2, input3, input4, input5, input6, input7, input8))
- vol = getVoltage(bin2Dec(input1, input2, input3, input4, input5, input6, input7, input8))
- # print("Voltage ", vol)
- if(prevLast==-1):
- prevLast = vol
- elif(last==-1):
- last = vol
- else:
- print("Peak: ", getPeakVol(vol))
- prevLast =last
- last = vol
- pass
- # Wait for 1 s
- time.sleep(timeDelay)
- except KeyboardInterrupt:
- # Clean up GPIO settings
- GPIO.cleanup()
- pass
Advertisement
Add Comment
Please, Sign In to add comment