More than 1 year has 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() # <- 消灯