인권 센서가 감지하는 시간을 정확하게 측정하고 싶습니다.
9518 단어 전자 공작인감 센서파이썬RaspberryPi
전제
파이썬을 사용합니다. 라즈파이와 인권 모듈 센서를 소지하고 있다. 연결된 상태입니다. 접속에 관해서는 여기 를 참고해 주세요
인권 모듈 센서란?
가전에 가끔씩 있는 것 같습니다. 적외선으로 열원체를 감지하는 센서. 가까이에 생물이 존재하는지 아니면 없는지에 대한 1차원 정보를 얻을 수 있습니다.
장착된 나사를 돌려 감지 거리와 감지 시간(한 번 감지한 정보를 유지하는 시간)을 조절할 수 있습니다만, 세세한 조절은 불가능합니다.
감지된 시간 측정
시간을 측정하는 프로그램을 작성합니다.
sensor.py
import RPi.GPIO as GPIO
import time
start_time = None
time_list = []
array = [0]*7
GPIO.setmode(GPIO.BCM)
GPIO.setup(18,GPIO.IN) #18はセンサと接続しているpin番号の例
def calculate(x, y):
delta_time = x - y
delta_second = delta_time.total_seconds()
return delta_second
try:
while True:
for i in range(7):
array[i] = GPIO.input(18)
time.sleep(1)
if array[0] == GPIO.HIGH or array[1] == GPIO.HIGH or array[2] == GPIO.HIGH or array[3] == GPIO.HIGH or array[4] == GPIO.HIGH or array[5] == GPIO.HIGH or array[6] == GPIO.HIGH:
if start_time is None:
start_time = datetime.now()
time.sleep(53)
else:
if start_time is None:
time.sleep(53)
else:
finish_time = datetime.now()
delta_second = calculate(finish_time, start_time)
time_list.append(delta_second)
start_time = None
time.sleep(53)
except KeyboardInterrupt:
print(time_list)
GPIO.cleanup()
여기에서 된장은 이 부분입니다.
for i in range(7):
array[i] = GPIO.input(18)
time.sleep(1)
if array[0] == GPIO.HIGH or array[1] == GPIO.HIGH or array[2] == GPIO.HIGH or array[3] == GPIO.HIGH or array[4] == GPIO.HIGH or array[5] == GPIO.HIGH or array[6] == GPIO.HIGH:
if start_time is None:
이번에는 7회 반복하여 생물의 유무를 확인하고 있습니다만, 인권 모듈 센서의 감도에는 개체차이가 있으므로 조정할 필요가 있습니다.
끝에
싸게 얻을 수 있는 인권 모듈 센서입니다만, 취급에는 조금 신경을 써 줘야 합니다. 취급의 설명서 등도 특별히 없기 때문에 처음으로 사용하는 사람의 도움이 되면 다행입니다.
Reference
이 문제에 관하여(인권 센서가 감지하는 시간을 정확하게 측정하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mofumoffy223/items/18f494e28ecd20d9ebc4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)