Raspberry Piのエラー原因&解決方法「RuntimeWarning:This channel is already in Use」編
PythonでGPIOの制御をするときにsetup文を使うと出てくる
RuntimeWarning:This channel is already in use,continuing anyway.Use GPIO.setwarning'(Flase) to disable warnings.
の警告メッセージ。
この文が出てきてもプログラム自体が停まることはありませんが、気持ち悪いことに変わりありません。
原因としては前回プログラムを起動した時に初期設定化をしていなかったことにあります。
その為プログラムの最後には
GPIO.cleanup()
を入れることで初期設定化されて上の警告メッセージが表示されなくなります。
Raspberry Piの書籍だとサンプルコードでwhile文の永続ループされていて、
Ctrl+Cで止めないとプログラムが止まりませんがそうすると最後のGPIO.cleanup()が作動しないため初期化されない状態が続いてしまい次回起動時も上の警告文が出てきます。
そういう時はWhile文である一定の条件が来た時に停まるようにしておきましょう。
また上のコードにはGPIO.setwarning(Flase)を書いておくことをオススメされますが、これは警告メッセージが非表示にされなくなってしまい、他の警告メッセージも非表示なってしまいます。
(例えば
Raspberry Piでエラー「No channels have been set up yet-nothing to clean up!」が出た時の対処方法。の記事にあるように初期設定化できなかったときの内容も非表示に…。)
その為、基本はGPIO.setwarning(Flase)は使わず警告文が出てきたら問題を解決していく方がいいかと。
警告文丸ごと検索すれば問題解決の結果も出てきますし。(多くが英語の内容なのが…ですが)
Raspberry Piの初心者オススメ本といえばこれ!
Raspberry Pi初心者が最初に読むべき本がこれ!Pythonを主に使用言語としており、チュートリアルもわかりやすく躓くことがほぼありませんでした!
この本のチュートリアルができるようになったら。
がレベルアップ本としてはオススメです。
あわせて読みたいお勧め記事
Fatal error: Uncaught Error: Call to undefined function split() in /home/japanese2017/start-now.link/public_html/100/wp-content/themes/basetheme/single.php:74
Stack trace:
#0 /home/japanese2017/start-now.link/public_html/100/wp-includes/template-loader.php(74): include()
#1 /home/japanese2017/start-now.link/public_html/100/wp-blog-header.php(19): require_once('/home/japanese2...')
#2 /home/japanese2017/start-now.link/public_html/100/index.php(17): require('/home/japanese2...')
#3 {main}
thrown in /home/japanese2017/start-now.link/public_html/100/wp-content/themes/basetheme/single.php on line 74