Help us understand the problem. What is going on with this article?

Raspberry PiでLEDの点灯

More than 5 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() # <- 消灯
aryoa
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away