実現したいこと
ラズパイ4 Model Bで、ボタンが押されたら特定の処理を行います。エラー原因の追求のため、コードは極限まで簡略化しています。
発生している問題・分からないこと
RuntimeError : Failed to add edge detectionが解消されません
エラーメッセージ
error
1Traceback (most recent call last): 2 File "/home/***/program/test.py", line 11, in <module> 3 GPIO.add_event_detect(PIN, GPIO.RISING, callback=Button_pressed, bouncetime=300) 4RuntimeError: Failed to add edge detection
該当のソースコード
Python
1import RPi.GPIO as GPIO 2from datetime import datetime 3 4PIN = 21 5GPIO.setmode(GPIO.BCM) 6GPIO.setup(PIN, GPIO.IN) 7 8def Button_pressed(channel): 9 pressed_time = datetime.now() 10 11GPIO.add_event_detect(PIN, GPIO.RISING, callback=Button_pressed, bouncetime=300) 12
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
https://teratail.com/questions/ri9fmbii3ryml2
https://forums.raspberrypi.com/viewtopic.php?t=205327
これらのサイトで議論されていることは一通り試してみました。その他
- ピン番号の変更
- sudoによる実行
- 部品の通電確認
等を行いましたが、効果はありませんでした。
補足
特になし
OSがラズパイBookwormの場合、標準で入っているpythonライブラリがgpioからlgpioに変更されているみたいなので
以下のコマンドでインストールしたのち再度実行してください。
> sudo apt remove python3-rpi.gpio
> sudo apt update
> sudo apt install python3-rpi-lgpio
下記参照
https://raspberrypi.stackexchange.com/questions/147332/rpi-gpio-runtimeerror-failed-to-add-edge-detection
私はこれで同じエラーが解消しました。