Raspberry Pi Picoと光センサーによる自動LED制御:初心者向けステップバイステップ解説

目次

はじめに

光センサーは、周囲の明るさを測定するための便利なデバイスです。今回は、Raspberry Pi Pico に光センサーを接続して、明るさを取得する方法を紹介します。センサーを使えば、例えば部屋の明るさに応じた自動点灯や、外の明るさを記録するシステムが簡単に作れます。

光センサーの作動原理

光センサーは、「光を電気に変える仕組み」を使っています。内部には、フォトダイオードフォトトランジスタと呼ばれる部品が入っています。この部品は、光が当たると特別な働きをします。

光が当たると何が起きる?

  • 光の粒(光子)が当たる
    光には「光子」という小さな粒があります。この光子がフォトダイオードやフォトトランジスタに当たると、中の電子が動きます。

  • 電流が発生する
    フォトダイオードやフォトトランジスタの中の電子が光子からエネルギーを受け取って動くことで、部品の中に電流が流れます。これを光電効果といいます。電流は「光の量」に比例して変化します。つまり、明るい場所ではたくさん電流が流れ、暗い場所ではあまり流れません。

  • 電流を信号に変える
    この電流を計測して「光の強さ」をとして読み取ります。
    光の強さの目安はこちらを参考にしてください。

日常生活での活用例

光センサーは、多くの日常シーンで使用されています

  1. スマートフォンの画面調整
    周囲の明るさを測定して、画面の明るさを自動的に調整します。

  2. 街灯の自動点灯
    日没後に街灯を点灯し、日の出とともに消灯するシステムに利用されています。

  3. 自動車のヘッドライト制御
    車内外の明るさを測定して、自動的にヘッドライトをオン/オフします。

  4. 農業・環境モニタリング
    作物の成長に必要な光量を測定するためのセンサーとして使用されています。

  5. IoTデバイス
    スマートホームデバイスで、カーテンの自動開閉や室内照明の制御に利用されています。

配線

光センサーとLEDを接続します

RaspberryPi Pico光センサ/LED
VSYS(39番)VCC
GND(38番)GND
GP0(1番)DO(デジタル出力)
GP26(ADC0)AO(アナログ出力)
GP15(20番)LEDのアノード
GND(13番)抵抗(330Ω以上)/LEDのカソードを直列
()内はピン番号

光を検知したらLEDを点灯する

明るいときにLEDを点灯させます。
閾値は抵抗を回したり、数値を見ながら決めてください。

from machine import Pin, ADC
import time

# ピンの設定
light_sensor = ADC(Pin(26))  # 光センサーのアナログ出力を接続したピン(GP26/ADC0)
led = Pin(15, Pin.OUT)       # LED を接続したピン(GP15)

# 明るさのしきい値(適宜調整してください)
THRESHOLD = 5000  # ADC の値(0~65535 の範囲)

while True:
    # 光センサーからの値を取得
    light_value = light_sensor.read_u16()  # 16 ビットの値を読み取る
    print(f"Light Value: {light_value}")

    # 明るさがしきい値以上の場合、LED を点灯
    if light_value <= THRESHOLD:
        led.on()  # LED を点灯
        print("LED ON")
    else:
        led.off()  # LED を消灯
        print("LED OFF")
    
    time.sleep(0.5)  # 500ms 待機

まとめ

光センサーは日常でよく出くわすだけでなく、高校物理で学ぶ光電効果を体感できる楽しいセンサーです。ぜひ触ってみてください!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次