RaspberryPiでLEDライトを点滅する

電源をどこから取るか

Raspberry PiのPin 1(1番ピン)とPin 17 は 3.3V電源である(Pin 1 と Pin 17を合わせて50mAまで流せる)。 ちなみに、Pin 2とPin 4は5V電源である。 Pin 6, Pin 9, Pin 14, Pin 20, Pin 25, Pin 30, Pin 34, Pin 39 はGND(アース)である。

Raspberry Piの電源を入れて、LEDの [+]側(アノード:anode)を3.3V電源に接続し、[-]側(カソード:cathode)をGND(アース)に接続すると、LEDが点灯し続ける。 ただし、このままではLEDに電流が流れ過ぎて(かなり明るい)壊れてしまうことがあるので、適当な抵抗(resister)たとえば330Ωを直列に接続すると安心だ。

このような接続では、LEDに電流が流れ続けて点きっぱなしで何の芸もない。 1つのLEDの点灯をRaspberry Piで制御できるように接続し、その制御プログラムを書いてみよう。


配線

左図(クリックして拡大)のように、GPIO25(Pin 20)をLEDの[+]アノードに、LEDの[-]カソードを330Ωの抵抗の一端に、抵抗の他方をPin 6のGNDに接続する。 下図左(クリックして拡大)はRapsberry Piの横に置いたブレッドボード上にLEDと抵抗の部品をを配置して結線する模式図、下図右(クリックして拡大)が実際の写真(Paspberry Piを透明ケースに入れた状態)である。

ブレッドボード模式図

pythonスクリプト

次のコードは上記のように結線したLEDを、点灯を0.5[sec]、消灯を0.5[sec]として点灯点滅を繰り返し続けるLED制御プログラムをPythonスクリプトとして書いたものである。

RaspberryPiで学ぶ電子工作のpythonプログラム 04-02-led.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# GPIO25を出力としてLEDに給電する

import RPi.GPIO as GPIO
from time import sleep

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

while True:
    GPIO.output(25, GPIO.HIGH)
    sleep(0.5)
    GPIO.output(25, GPIO.LOW)
    sleep(0.5)
RaspberryPiで学ぶ電子工作のpythonプログラム 04-02-led.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# GPIO25を出力としてLEDに給電する

import RPi.GPIO as GPIO
from time import sleep

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

try:
    while True:
        GPIO.output(25, GPIO.HIGH)
        sleep(0.5)
        GPIO.output(25, GPIO.LOW)
        sleep(0.5)

except KeyboardInterrupt:
    pass

GPIO.cleanup()