前提・実現したいこと
プログラム初心者であまり分かっていないのですが質問します。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
raspberrypi 3B+を使用して、Python3環境で動かしています。
ある条件を満たしたときにdef()関数を呼び出します。
呼び出されてから3秒のdelayを設けた後に
LEDを点灯させます。
そのご0.5秒のdelayを設けた後にLEDを消灯します。
executerを使用しマルチコア(2コア)の処理を実装していますが、
LED点灯消灯のdef()関数が頻繁に呼び出され、
sleep()を使用すると、sleepの間他の処理が止まってしまうため、
sleep(3)だとすると、3秒間の間、def()で呼び出しても
何も反応してくれなくなってしまうのです。
ですのでsleep()は使用したくありません。
sleep以外でプログラムをfreezeさせることなくdelayを設けることができる
プログラムを教えていただけますか。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
python
1def GPIO(): 2 sleep(3) 3 GPIO.output(6,GPIO.HIGH) 4 is_open_gpioR = True 5 print('GPIOon') 6 sleep(0.5) 7 GPIO.output(6,GPIO.LOW) 8 is_open_gpioR = False 9 print('GPIOoff')
試したこと
インターネットで調べ、Time()関数があることが分かり、
GPIO = GPIO.output(6,GPIO.HIGH)
Time(3,GPIO,arg = None, kwargs = None).start()
"""(Time(3,GPIO,output(6,GPIO.HIGH), arg = None, kwargs = None)”””
を試してみましたがうまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
恐縮なのですが、プログラム独学+超初心者ですので
専門用語等あまり理解できていないので分かりやすく教えていただけるとありがたいです。
よろしくお願いしたいます。
回答2件
あなたの回答
tips
プレビュー