プロジェクト06:CDSで光に連動するLEDライトを作ってみよう
このプロジェクトで学ぶこと: はじめてアナログ入力を使い、環境の値を連続的な数値として読み取ります。周囲が暗くなると自動でLEDが点灯する仕組みを作ります。
完成イメージ
[センサーを手で覆うと自動でLEDが点灯する動画を挿入]
必要な部品
| 部品名 | 数量 |
|---|---|
| Arduino Uno R3 | 1 |
| フォトレジスタ(CDS) | 1 |
| 抵抗 10kΩ | 1 |
| 赤色LED | 1 |
| 抵抗 220Ω | 1 |
| ブレッドボード | 1 |
| ジャンパー線 | 数本 |
回路図と配線
[回路図画像を挿入]
配線手順
- CDSセンサーの一方を 5Vピン に、もう一方を A0ピン と 10kΩ抵抗 に接続する
- 10kΩ抵抗のもう一方をGNDに接続する(電圧分割回路)
- LEDのアノードを220Ω抵抗を通じて 13番ピン に、カソードをGNDに接続する
電圧分割回路とは? CDSは明るいと抵抗が小さく(数百Ω)、暗いと抵抗が大きくなります(数MΩ)。5Vを「CDS」と「10kΩ固定抵抗」で分圧することで、明るさに応じた電圧をA0ピンで読み取れます。センサーの多くはこの回路で動きます。
Arduinoスケッチ(プログラム)
// 暗くなったらLED自動点灯
const int CDS_PIN = A0;
const int LED_PIN = 13;
const int THRESHOLD = 400; // 明暗の境界値(環境に合わせて調整)
void setup() {
pinMode(LED_PIN, OUTPUT);
Serial.begin(9600); // シリアルモニタで値を確認するため
}
void loop() {
int lightValue = analogRead(CDS_PIN); // 0〜1023の値を読み取る
Serial.println(lightValue); // 値をシリアルモニタに出力
if (lightValue < THRESHOLD) {
digitalWrite(LED_PIN, HIGH); // 暗ければ点灯
} else {
digitalWrite(LED_PIN, LOW); // 明るければ消灯
}
delay(100);
}
コードのポイント解説
analogRead(ピン番号) A0〜A5のアナログピンから0〜1023の数値を読み取ります。0が0V、1023が5Vに対応します。10bit(2の10乗=1024段階)の分解能で電圧を数値化します。
Serial.begin(9600)とSerial.println() Arduino IDEのシリアルモニタに数値を表示できます。センサーの実際の値を確認してTHRESHOLDを調整するのに使います。
しきい値(THRESHOLD)の調整 明るいときの値と暗いときの値をシリアルモニタで確認し、その中間の値に設定します。環境の明るさによって最適な値が変わります。
動作確認
- スケッチをアップロードする
- Arduino IDEの「シリアルモニタ」を開いて(ボーレート9600)、センサーの値を確認する
- 手でCDSを覆って暗くすると、LEDが自動点灯すれば成功
このプロジェクトで学んだこと
- アナログ入力:
analogRead()で連続的な値を0〜1023の数値として読む方法を習得しました - 電圧分割回路: 可変抵抗センサーを電圧として読み取る基本回路を理解しました
- シリアルモニタ: デバッグや値の確認にシリアルモニタを活用する方法を学びました
次のプロジェクト「RGB LED色演出」では、アナログ出力(PWM)でLEDの明るさを細かく制御する方法を学びます。
深掘り:技術の背景と社会への広がり
光で電気が変わる:光電効果の発見
光に反応して電気抵抗が変わるフォトレジスタの原理は、1873年にウィロビー・スミスが発見した「光電導効果」にさかのぼります。1905年にはアインシュタインが光電効果の理論的説明でノーベル賞を受賞し、量子力学の発展に貢献しました。日常的なCDSセンサーにも、ノーベル賞級の物理学が詰まっています。
自動化と省エネルギーへの応用
光センサーの社会実装は非常に幅広いです。街路灯は夜になると自動点灯し、昼間は消灯することで年間の電力消費を大幅に削減しています。カメラの自動露出調整、スマートフォンの画面輝度自動調節、ビルの窓の自動ブラインド制御など、あらゆる場所で明るさの自動制御が使われています。農業分野では日照量センサーで栽培環境を管理し、最適な照明制御によって年中安定した野菜生産を実現するスマート農業が世界的に広がっています。
← プロジェクト05:ブザーの音程制御 | 全プロジェクト一覧 | 次のプロジェクト:RGB LED色演出 →

