RaspberryPi

【RaspberryPi-3】入出力ポートを使用してLED点滅【Lチカ】

RaspberryPiでLED点滅

Raspberry Piで実際に電子工作に挑戦!!

以前の記事でRaspberry Pi の導入とPythonによるプログラミング環境の構築までを行いました。
【RaspberryPi-1】Raspberry Piのセットアップと初期設定【導入】
【RaspberryPi-2】開発環境の構築【VS Code】

今回は、実際にプログラムを書いてRaspberry Piに搭載されている任意のI/Oポートから信号を出力してLEDを点灯してみましょう!

準備するもの

今回の記事で使用するものは、

  • Raspberry Pi
  • カーボン抵抗 330Ω
  • LED
  • ブレッドボード
  • ジャンパー線

となります。

抵抗値の計算などは過去の記事を参考にしてください。
【電子工作入門1】 LEDを光らせるための知識

LEDを点灯させるための配線

Raspberry PiでLEDを点灯させるための回路図と配線を考えます。

そのためにはまずRaspberry Pi のピンアサインを見ていきましょう。

今回は6番のGND12番のGPIO18を使用していきます。

画像なのGPIO.BCMGPIO.BOARDは後で説明しますが重要となります。

LEDを点灯されるための配線は以下のようになります。

LED点灯プログラムの作成

まずは、任意のピンから電気信号を出力させてみましょう。

プログラムは以下のように書きました。

import RPi.GPIO as GPIO         #GPIO用モジュールのインポート
LedGpio = 18                    #変数LedGpioに18を代入

GPIO.setmode(GPIO.BCM)          #GPIOのモードをGPIO.BCMに
GPIO.setup(LedGpio, GPIO.OUT)   #LedGpioの値のピンを出力モードに

GPIO.output(LedGpio, True)      #LedGpioの値のピンから出力

1行目でGPIOを使用するための宣言をします。

GPIOはGeneral Purpose Input/Output(ジェネラル・パーパス・インプット/アウトプット)の略で汎用I/Oポートと言われます。

汎用I/OポートをRaspberr Piで制御するための宣言です。

4行目でGPIOのモードを指定します。今回はBCMで宣言しています。

GPIO.BCMで宣言するとピンアサイン図のGPIOの番号で制御するピンを宣言できます。

そのため、このプログラムではピン番号12のGPIO18から信号が出力されます

今回は使用していませんが、GPIO.BOARDで宣言するとピン番号で宣言できます。

同様のプログラムでGPIO.BCM→GPIO.BOARDに変更すると、ピン番号18のGPIO24から出力されることになります。

5~6行目で指定したピンのモードを出力設定にして、出力制御をしています。

実際に動かすと、以下のようにLEDが点灯します。

LED点滅プログラム(Lチカ)の作成

先ほど使用したプログラムを使用してLED点滅するプログラムを作成してみましょう。

作成したプログラムが以下になります。

import RPi.GPIO as GPIO             #GPIO用モジュールのインポート
import time                         #時間制御用Timeモジュールのインポート
LedGpio = 18                        #変数LedGpioに18を代入
WaitIime = 0.2                      #変数WaitTimeに0.2を代入

GPIO.setwarnings(False)             #警告文の抑制用
GPIO.setmode(GPIO.BCM)              #GPIOのモードをGPIO.BCMに
GPIO.setup(LedGpio, GPIO.OUT)       #LedGpioの値のピンを出力モードに

for i in range(20):                 #以下の処理を20回繰り返し
    GPIO.output(LedGpio, True)      #LedGpioの値のピンから出力
    time.sleep(WaitIime)            #WaitTime秒待つ
    GPIO.output(LedGpio, False)     #LedGpioの値のピンから出力を停止
    time.sleep(WaitIime)            #WaitTime秒待つ

GPIO.cleanup                        #GPIOの設定を初期化

4行目のWaitTimeでsleepの時間を決めています。

単位は (秒) です。

6行目と16行目はプログラム終了時のGPIOの後処理のために入れています。

プログラム実行時にGPIOの設定がクリアされていない時にwarningが出力されます。

プログラム自体は正常に出力されるのですが、目障りではあるので対策をしています。

6行目のGPIO.setwarning(Falese)を入れることで、warningが出力されない様にしています。

そして、16行目でGPIOの設定をクリアしています。

10~14行目でループさせています。

0.2秒の間隔で点灯、消灯を20回繰り返します。

それで、点滅を表しています。

実際に動かしたときの様子が以下になります。

 

正常に動くとこのようにLEDが点滅します。

今回は出力だけでしたが、次回はセンサやスイッチなどの入力装置を使ったものを作ってみたいですね

open CVを使用したカメラ画像の取得や画像処理などもしてみたいですね。

Raspberry Piでしかできないようなことを行っていきたいと思います。

 

ブログランキング参加中

クリックしていただけると
ブログ更新の励みになります


電子工作ランキング
にほんブログ村 その他趣味ブログ 電子工作へ
にほんブログ村

スポンサーリンク

-RaspberryPi
-, ,