実現したいこと
Rasuberry Pi 4で人感センサの信号をポーリングと割り込みで検知する方法を比較しています。ポーリングの方は思った通りの動作が確認できました。しかし、割り込みの方法でコードを作成しましたが、Runtime Error: Failed to add edge detectionというエラーメッセージが返ってきます。動作確認できません。
-割り込み機能(ラズパイ上で、PythonとRPi.GPIOを使用して)の実現
前提
使用言語、ライブラリ:Python、RPi.GPIO
人感センサの信号を受けて、LEDを点灯させる」コードで実行時に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
Runtime Error: Failed to add edge detection
該当のソースコード
# sample14 Sensor(PIR Motion Detector Module) PIR:Passive Infrared Ray # Operation: Interruption (Event driven) # coriding: utf-8 import RPi.GPIO as GPIO import time import sys import datetime LED1 = 23 # This is for RPi.GPIO LED接続ピン PIR = 4 # センサ接続ピン GPIO.setmode(GPIO.BCM) GPIO.setup(LED1,GPIO.OUT) GPIO.setup(PIR,GPIO.IN) def my_callback(channel): PIR_value = GPIO.input(PIR) GPIO.output(LED1,PIR_value) GPIO.add_event_detect(PIR, GPIO.BOTH, bouncetime=1000) GPIO.add_event_callback(PIR, my_callback) #GPIO.add_event_detect(PIR, GPIO.BOTH,callback=my_callback,bouncetime=1000) #Rasbian OSのときは、この行のコードで動作していました #今回は、WEBページを参考にこの1行を、上記の2行に書き換えました。 print ("Interrupt by event detection of PIR signal") print ("(CTRL-C to EXIT)") GPIO.output(LED1,0) try: while True: time.sleep(10) # Detection regardless of sleep time except KeyboardInterrupt: pass GPIO.cleanup() sys.exit()
試したこと
下記のコード(ポーリングを模擬)は、LEDが点灯するのでピン設定等には問題がないと思われます。
’’’
sample13 Sensor(PIR Motion Detector Module) PIR:Passive Infrared Ray
Operation: Polling
cording: utf-8
’’’
import RPi.GPIO as GPIO
import time
import sys
LED1 = 23 # This is for RPi.GPIO
PIR = 4
GPIO.setmode(GPIO.BCM)
GPIO.setup(LED1,GPIO.OUT)
GPIO.setup(PIR,GPIO.IN)
print ("PIR detection by Polling ")
print ("(CTRL-C to EXIT)")
GPIO.output(LED1,0)
try:
while True:
time.sleep(10) # For short time confirmation
# Please change 30 to confirm the deficit of polling.
PIR_val = GPIO.input(PIR) # Read PIR value
GPIO.output(LED1,PIR_val) # Output PIR value to LED1
except KeyboardInterrupt:
pass
GPIO.cleanup()
sys.exit()
補足情報(FW/ツールのバージョンなど)
ラズパイのOS:lsb_release -a(で確認)
No LSB module are availuable(意味が理解できません)
Distributor ID: Raspbian
Release:11
Codename:bullseye
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。