ラズパイ
オンボードLED
ラズパイのLEDは5以前は赤と緑の2つのLED(5は1つ)が搭載されています。赤は電源用、緑はディスクアクセス用にシステムが使うので、よほどのことがなければユーザーは使わない方がいいでしょう。使うにしても/sys/class/leds下のファイルをroot権限で書き換える必要があるようです。ここでは触りません。
外部LED
下記のよう発光ダイオードをGPIOピンに結線して使います。
![]()
足の長い方:アソード(プラス)
足の短い方:カソード(マイナス)
LEDはアソードからカソードへ正電圧を加えて使用、順方向電圧(Vf)。(赤・橙・黄・緑)2.1V~(青・白)3.5V。赤外線(1.4V)、紫外線(4.5~6V)。
点滅させる場合は、コードで制御するものと自己点滅するものの2種類があります。
結線
通常型LEDで点滅させる場合は、定期的に電圧をかける/かけない、を繰り返します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
#timeモジュールをインポート import time #RPi.GPIOモジュールをインポート import RPi.GPIO as GPIO # BCM(GPIO番号)で指定する設定 GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) # GPIO14を出力モード設定 GPIO.setup(14, GPIO.OUT) try: while True: # GPIO14の出力を1にして、LED点灯 GPIO.output(14, 1) # 0.5秒待つ time.sleep(0.5) # GPIO14の出力を0にして、LED消灯 GPIO.output(14, 0) # 0.5秒待つ time.sleep(0.5) except KeyboardInterrupt: GPIO.output(14, 0) |
自己点滅型LEDでは一度電圧をかけると定期的に点滅します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#timeモジュールをインポート import time #RPi.GPIOモジュールをインポート import RPi.GPIO as GPIO # BCM(GPIO番号)で指定する設定 GPIO.setmode(GPIO.BCM) # GPIO14を出力モード設定 GPIO.setup(14, GPIO.OUT) try: # GPIO14の出力を1にして、LED点灯 while True: GPIO.output(14, 1) except KeyboardInterrupt: GPIO.output(14,0) |
Pico
オンボードLED
Pi Pico でボタンを押してLEDを点灯(Arduino IDE / MicroPython)メモ
外部LEDを使う場合
抵抗のみ使う場合やトランジスタを使う場合などがあります。以下参照
結線
PINやGND など特にこだわる必要はないです。
例 :GP18に結線してみます。
コード例
|
1 2 3 4 5 6 7 8 9 10 11 |
from machine import Pin # LEDをGPIO18ピンに接続 led_green = Pin(18,Pin.OUT) # 点灯 led_green.value(1) # 消灯 led_green.value(0) |
注:緑のLEDは高電圧に敏感なようで、簡単に切れます。400Ω程度の抵抗を挟んで使います。
Appendix
ラズパイでプッシュボタンを押した時に何かする場合
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import RPi.GPIO as GPIO # 必要なモジュールをインポートします button_pin = 12 # GPIO 12にボタンをつなぎます def button_callback(channel): # ボタンが押された時にやりたいことを print("Button was pushed!") # この行から書いておきます GPIO.setmode(GPIO.BCM) # BCMモードでGPIOを使用します # GPIO 12を入力モードにし、プルアップします GPIO.setup(button_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP) # ボタンが押されてGPIO 12がGNDになることを検出し、button_callbackを起動します # bouncetimeはボタン押しの検出間隔です GPIO.add_event_detect(button_pin, GPIO.FALLING, callback=button_callback, bouncetime=200) # 画面に文字を表示し、待機に入ります input("Press button to count, or Enter to quit\n") # キーボードの何かのキーが押されると実行します GPIO.cleanup() print("Bye!") |
実行してボタンを押すと、Button was pushed! と表示されます。終了するときはキーボードの何かのキーを押すとBye!と表示されてプログラムが終了します。
画面にButton was pushed! と表示するのではなく、なにか好きな処理をさせたい場合は、button_callbackの中に処理を書けばOK。



Leave a Reply