太陽の方向を自動で追いかける装置を作ろう
自由研究で「動く」装置を作りたいんだ。サーボモータを使うやつ。


じゃあ「太陽追っかけ装置」はどう? CdSセンサーを2つ使って、明るい方向にサーボがゆっくり向くんだ。太陽光発電パネルの実物と同じ仕組みなんだよ。
今回は、サーボモータを使った動く工作をしたい中学生・高校生のお子さんに向けて、初心者キットだけで作れる「太陽追っかけ装置」を紹介します。
左右に1個ずつ置いたCdSセンサーで明るさを比べ、明るい方向にサーボがゆっくり首を振る装置です。明るさの差で向きを変える、太陽追尾の基本模型として動きます。再生可能エネルギーの考え方に触れられる研究テーマです。
この記事で作るもの
- 左右2個のCdSで明るさを比較
- 明るい方にサーボの首が向く
- 左右の明るさの差が小さい時は、その場で止まる
- 動きは滑らかに (急に動かない)
使う部品
| 部品 | 役割 | 個数 |
|---|---|---|
| Arduino UNO R3 | 装置の頭脳 | 1 |
| CdSセンサー | 左右の明るさを測る | 2 |
| 抵抗10kΩ | CdSの分圧 | 2 |
| サーボモータSG90 | 首を振る | 1 |
| ブレッドボード | 配線をする台 | 1 |
| ジャンパーワイヤー | つなぐ線 | 10本前後 |
配線図
a b c d e
+─────────+
[+]rail| . . . . . | ← 5V (Arduino から)
[-]rail| . . . . . | ← GND (Arduino から)
+─────────+
row 3 | X . . . . | ← CdS左 上足 ([+])
row 4 | X . . . . | ← CdS左 下足+A0+10k上
row 6 | X . . . . | ← 10k下足 ([-])
row 9 | X . . . . | ← CdS右 上足 ([+])
row 10 | X . . . . | ← CdS右 下足+A1+10k上
row 12 | X . . . . | ← 10k下足 ([-])
+─────────+
サーボはブレッドボードを介さず直結:
茶色 → GND
赤色 → 5V
橙色 → D9
部品同士のつながり
サーボSG90はキット同梱の電源ピンから動かせますが、動きが不安定ならモバイルバッテリーなど外部5V電源を使い、GNDだけArduinoと共通にしてください。
Arduino 左CdS / 右CdS 5V ──→ 両方の上足 A0 ←── 左CdS 中点 A1 ←── 右CdS 中点 GND ──→ 両方の10kΩ下足 Arduino サーボ SG90 D9 ──→ 信号線 (橙) 5V ──→ 電源 (赤) GND ──→ GND (茶)
プログラム
#include <Servo.h>
#define LEFT_CDS A0
#define RIGHT_CDS A1
#define SERVO_PIN 9
Servo myServo;
int angle = 90;
void setup() {
Serial.begin(9600);
myServo.attach(SERVO_PIN);
myServo.write(angle);
Serial.println("太陽追っかけ装置 スタート!");
}
void loop() {
int leftValue = analogRead(LEFT_CDS);
int rightValue = analogRead(RIGHT_CDS);
int diff = leftValue - rightValue;
Serial.print("左: ");
Serial.print(leftValue);
Serial.print(" 右: ");
Serial.print(rightValue);
Serial.print(" 角度: ");
Serial.println(angle);
if (diff > 50 && angle < 180) {
angle++;
} else if (diff < -50 && angle > 0) {
angle--;
}
myServo.write(angle);
delay(50);
}
プログラムの動き
flowchart TD
A[起動] --> B[左右CdSを読む]
B --> C[差を計算]
C --> D{"左が
明るい?"} D -->|Yes| E["角度+1"] D -->|No| F{"右が
明るい?"} F -->|Yes| G[角度-1] F -->|No| H[そのまま] E --> I[サーボへ反映] G --> I H --> I I --> J[50ms待つ] J --> B
明るい?"} D -->|Yes| E["角度+1"] D -->|No| F{"右が
明るい?"} F -->|Yes| G[角度-1] F -->|No| H[そのまま] E --> I[サーボへ反映] G --> I H --> I I --> J[50ms待つ] J --> B
自由研究としての展開
研究テーマのアイデア
- 太陽光発電パネルの自動追尾の仕組みを調べる
- 窓辺に置いて、1日の太陽の動きを記録
- 固定パネルと追尾パネルでどれくらい発電量が違うか考察
- 懐中電灯で擬似太陽を作って、再現実験
サーボがブルブル震えるのはなんで?


左右の差が小さすぎる時に、行ったり来たりするんだ。プログラムの「50」っていう数字を「100」に上げると震えが減るよ。これも研究で「どの値が最適か」を探る実験になるんだ。
レポートの書き方
レポート構成
- 研究のきっかけ (再生可能エネルギーへの興味など)
- 追尾の仕組みの説明
- 1日の動作観察記録
- 「差の閾値」を変えた実験結果
- 太陽光発電への応用と感想
改造のアイデア
発展アイデア
- CdSを4個にして上下にも追尾
- サーボ先端に太陽光発電パネル風の段ボールを付けて見た目を強化
- LEDで「左を向いてる」「右を向いてる」を表示
- 角度の履歴をシリアルに書き出して時間ごとに分析
まとめ
今回は、初心者キットだけで作れる「太陽追っかけ装置」を紹介しました。CdSとサーボを組み合わせた、動く工作で、再生可能エネルギーの実用技術の入り口にもなるテーマです。
大切なのは、懐中電灯で左右から照らして、どの差で動き出すかを記録することです。動き出すしきい値を表にまとめると、考察がぐっと書きやすくなります。

他にも初心者キットだけで作れる作例を別の記事で紹介しているので、興味があれば見てみてね。
今日から始める電子工作 
