目次
はじめに
光センサーは、周囲の明るさを測定するための便利なデバイスです。今回は、Raspberry Pi Pico に光センサーを接続して、明るさを取得する方法を紹介します。センサーを使えば、例えば部屋の明るさに応じた自動点灯や、外の明るさを記録するシステムが簡単に作れます。
リンク
光センサーの作動原理
光センサーは、「光を電気に変える仕組み」を使っています。内部には、フォトダイオードやフォトトランジスタと呼ばれる部品が入っています。この部品は、光が当たると特別な働きをします。
光が当たると何が起きる?
- 光の粒(光子)が当たる
光には「光子」という小さな粒があります。この光子がフォトダイオードやフォトトランジスタに当たると、中の電子が動きます。 - 電流が発生する
フォトダイオードやフォトトランジスタの中の電子が光子からエネルギーを受け取って動くことで、部品の中に電流が流れます。これを光電効果といいます。電流は「光の量」に比例して変化します。つまり、明るい場所ではたくさん電流が流れ、暗い場所ではあまり流れません。 - 電流を信号に変える
この電流を計測して「光の強さ」をとして読み取ります。
光の強さの目安はこちらを参考にしてください。
日常生活での活用例
光センサーは、多くの日常シーンで使用されています
- スマートフォンの画面調整
周囲の明るさを測定して、画面の明るさを自動的に調整します。 - 街灯の自動点灯
日没後に街灯を点灯し、日の出とともに消灯するシステムに利用されています。 - 自動車のヘッドライト制御
車内外の明るさを測定して、自動的にヘッドライトをオン/オフします。 - 農業・環境モニタリング
作物の成長に必要な光量を測定するためのセンサーとして使用されています。 - 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 待機
まとめ
光センサーは日常でよく出くわすだけでなく、高校物理で学ぶ光電効果を体感できる楽しいセンサーです。ぜひ触ってみてください!
リンク
コメント