知識ゼロから始めるラズパイ -GUIでLEDの点灯制御-

PVアクセスランキング にほんブログ村

CPU温度に合わせてCPUファンの回転速度を制御する前に、基本中の基本ともいえる「Lチカ」に挑戦します。ただ挑戦しても面白みがないので、GUIを使い「点灯回数」「点灯時間」「消灯時間」を自由に入力できるプログラムにしたいと思います。

Lチカの電子回路 ーLEDの配置についてー

接続は簡単でブレッドボードを使用して「11番ピン」→「抵抗」→「LED」→「GND」となるように繋いでいます。抵抗はLEDとセットで販売されていたものなので、難しいことを考えることなく接続しています。

LED点灯回路
目次

今回作ったプログラム

今回は「RPi.GPIO」というライブラリを使用しました。私の環境では最初からインストールされていました。

プログラムの説明

「tkinter」については、前回も使用していますので説明を一部省略しています。下記のリンク先で説明しています。

あわせて読みたい
知識ゼロから始めるラズパイ -CPU温度の監視をGUIで- 前回の記事では、Pythonを使用してラズベリーパイのCPU温度を連続監視するプログラムを作成しました。 https://comoaki.com/raspberrypi_02 今回はそのプログラムをGUI...

(1行目)import RPi.GPIO as GPIO

「RPi.GPIO」をインポートして、「GPIO」という名前に省略しています。

(5行目)def LED_shine():

「LED_shine」という名前の関数を作成します。あとでtkinterで作成するボタンを押したときに、この関数が動作する仕組みです。

(7~10行目)

  • GPIO.setmode(GPIO.BCM) は、GPIOの番号をBCMで指定する記述です。ピン番号を使用する場合はBCMのところをBOARDに変更します。
  • pin = 17  変数「pin」に数字の「17」を格納
  • GPIO.setup(pin, GPIO.OUT) は、BCM番号17番を電気を出力させる記述です。逆に、入力の場合はINを使うようです。
ラズベリーパイのピン配列

説明書によると、ラズパイのピン配列はこのようになっています。今回はBCM17番(ピン番号11番)を使用しました。

(12~17行目)

GUIのウインドウに入力された文字列をgetして、int型にしています。入力は(ms:1ミリ秒)としているので、1000で割り戻しています。「rg」にループ回数、「on」に点灯時間、「of」に消灯時間を格納させています。

(19~23行目)

先ほど取得した、ループ回数、点灯時間、消灯時間どおりにLEDを点灯させる記述です。

(25行目)GPIO.cleanup()

GPIOを終了させる記述です。そしてここまでが、関数LED_shineの記述です。

(31~47行目)

  • label1 = tk.Label(win,text=”ループ回数”) :文字のラベル
  • label1.place(x=30,y=10) :label1の配置場所の指定
  • text1 = tk.Entry(width=10) :文字入力ボックスの作成
  • text1.insert(0,10) :文字入力ボックスへの初期値を「10」にしています。insertは無しでもプログラムは動作しますが、何度も入力するのが面倒なので記述しました。
  • text1.place(x=150,y=10) :text1を配置します。

(49~50行目)

but1 = tk.Button(win,text=”スタート”,command = LED_shine)
but1.place(x=100,y=130)

この2行で、「スタート」というボタンを配置し、ボタンを押すと関数「LED_shine」を動かす記述です。

完成

Pythonを実行すると、このようなウィンドウが出現します。「ループ回数」「点灯時間」「消灯時間」を入力してスタートボタンを押すと、LEDが点灯します。

プログラム実行後表示されるウインドウ

使用するLEDは1つだけの簡単なプログラムですが、ほかのピンも使用して色々な色のLEDを点灯させると楽しいかもしれません。

あわせて読みたい
知識ゼロから始めるラズパイ -CPU温度によるファン制御- RaspberryPIとPythonによるLED制御(下のリンクの記事です)で自信をつけましたので、いよいよCPUファンの制御に挑戦したいと思います。Pythonの知識のほか、電子回路の...

まとめ

最後まで読んでいただき、ありがとうございました。

本記事では、プログラミングの基本であるLEDの点灯制御(Lチカ)について解説いたしました。

しかも、ちょっとした工夫で制御時間を変更できるウィンドウを作ることが出来ますので、GUIの勉強にもなりとても楽しいです。

今回使用したもの

今回使用した、ブレッドボードはこちらです。

サンハヤト
¥535 (2022/11/03 10:38時点 | Amazon調べ)
\楽天ポイント5倍セール!/
楽天市場
\ポイント5%還元!/
Yahooショッピング

LEDは手持ちのものを使用しましたが、セットになったものも販売されています。よく使う部品ばかりですので、初めての方は購入すると良いかもしれません。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次