Edited at

Raspberry PiでLEDの点灯

More than 3 years have passed since last update.

Raspberry PiでLEDを点灯させるまでの手順メモ


用意するもの


  1. Raspberry Pi 2 Model B(セットアップ済みのもの、OSはRaspbian)

  2. 330Ωの抵抗 1本

  3. 赤色LED 1個

  4. ブレッドボード

  5. ブレッドボード用ジャンパーワイヤ(オス-メス) 2本

Raspberry Pi 2以外は、秋月電子通商で購入した。

(2〜5は、送料別で計800円だった)

image.jpg


GPIOの配置の確認

回路を作成する前に、GPIOの配置について確認しておく。

GPIOピンの構成は公式サイトに記載されていた。

スクリーンショット 2015-10-21 19.02.54.png

また、公式サイトにピンの配置が色付けされているものがあった。

GPIO番号とピン番号は異なるので注意

(下図はピン番号で表記したもの。GPIO番号での表記したものもリンク先にある)

スクリーンショット 2015-10-21 19.12.33.png

Raspberry Pi2のピン配置図があったので、公式サイトにあったので追記 (2015/10/24 追記)

公式サイト

GPIO番号で表記されたもの

スクリーンショット 2015-10-24 0.03.36.png


回路を作成

以下の通りに回路を作成し、Raspberry Piと接続する。

【ブレッドボード】

抵抗: b4-b8

LED: c8-c9

c8にプラス(端子の長い方)接続

【ブレッドボードとRaspberry Pi】

ジャンパーワイヤ:a4 - ピン番号22(GPIO 25)

ジャンパーワイヤ:a9 - ピン番号6

端子をカットしていないので不格好。。

image-4.jpg


Raspberry PiでLEDをチカチカさせる

LEDを点灯させるためのコードをPythonで書いてみる。


/home/pi/develop/raspberry_pi/led_high.py

import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM) # GPIO番号で指定
GPIO.setup(25, GPIO.OUT) # GPIOを出力として使用する

GPIO.output(25, GPIO.HIGH) # GPIO 25の出力をHIGHに設定する(HIGHにすることでLEDが点灯)



/home/pi/develop/raspberry_pi/led_low.py

import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM) # GPIO番号で指定
GPIO.setup(25, GPIO.OUT) # GPIOを出力として使用する

GPIO.output(25, GPIO.LOW) # GPIO 25の出力をLOWに設定する(LOWにすることでLEDが消灯)


GPIOを指定するときに、GPIO番号とピン番号で指定することができる。


  • GPIO番号で指定する場合

    GPIO.setmode(GPIO.BCM)


  • ピン番号で指定する場合

    GPIO.setmode(GPIO.BOARD)



実行

LEDを点灯させる。


ターミナル

$ sudo python led_high.py


LEDを消灯させる。


ターミナル

$ sudo python led_low.py

led_low.py:4: RuntimeWarning: This channel is already in use, continuing anyway. Use GPIO.setwarnings(False) to disable warnings.
GPIO.setup(25, GPIO.OUT)

LEDは消えたが、警告がでる。

この警告は、"GPIO 25を出力に設定しようとしているが、すでに使用済み"と言っている。

プログラム終了時に、以下のように設定の解除を行う必要がある。

GPIO.cleanup()

以下のようにするとすぐにLEDが消灯するので注意

(GPIO.cleanupを実行した時点で消灯する)


led_hight.py

import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)
GPIO.setup(25, GPIO.OUT)

GPIO.output(25, GPIO.HIGH)
GPIO.cleanup() # <- 消灯


以下のsleepなどで待つ処理が必要


led_hight.py


import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setup(25, GPIO.OUT)

GPIO.output(25, GPIO.HIGH)
time.sleep(2) # この間は点灯し続ける

GPIO.cleanup() # <- 消灯