Arduinoでシンプルな障害物センサーを自作 – IR LEDとフォトダイオード入門
必要な部品
- IR送信機(赤外線LED) ×1
- フォトダイオード ×1
- Arduino UNO ×1
- 3kΩ 抵抗 ×1
- 150Ω 抵抗 ×1
- ブレッドボード ×1
- ジャンパーワイヤー ×1
- LED(汎用) ×2
使用アプリ
- Arduino IDE
プロジェクト概要
ステップ1: 部品を揃える
- Arduino
- 150Ω 抵抗
- 3kΩ 抵抗
- IR LED
- フォトダイオード
- ジャンパーワイヤー
- ブレッドボード
- LED(表示用)
ステップ2: 組み立て
- IR LED アノード → 150Ω抵抗 → 5V
- IR LED カソード → GND
- フォトダイオード アノード → GND
- フォトダイオード カソード → 3kΩ抵抗 → デジタルピン2
- フォトダイオード カソード → アナログピンA0
- 緑色LED → デジタルピン13
- 赤色LED → デジタルピン12

ステップ3: コードをアップロード
以下のコードを書き込みます。他のプロジェクトもぜひご覧ください。
サポート
Instructablesで投票応援お願いします!
コード
int photoDiode = 2;
int GreenLed = 13;
int senRead = 0; // A0
int SenseRate = 905; // しきい値(環境に合わせて調整)
void setup() {
pinMode(photoDiode, OUTPUT);
pinMode(GreenLed, OUTPUT);
pinMode(12, OUTPUT);
digitalWrite(photoDiode, HIGH); // フォトダイオードカソード側をHIGHに(プルアップ的役割)
digitalWrite(GreenLed, LOW);
Serial.begin(9600);
}
void loop() {
int val = analogRead(senRead);
Serial.println(val);
if (val <= SenseRate) {
// 障害物あり(反射光強い) → 赤LED点灯
digitalWrite(12, HIGH);
digitalWrite(GreenLed, LOW);
delay(20);
} else {
// 障害物なし → 緑LED点灯
digitalWrite(12, LOW);
digitalWrite(GreenLed, HIGH);
delay(20);
}
}
回路図
Fritzingファイル: obstacl_GeLzd2U2jr.fzz
製造プロセス
- Arduino MegaでPWM制御:プッシュボタン付きLEDフェード制御チュートリアル
- アナログセンサー搭載・高精度圧力&気流測定デバイス
- Arduino NanoとMPU-6050で作るリアルタイムジャイロスコープゲーム
- DHT11温湿度センサーで作る温度アラート – LEDとピエゾブザーで視覚/聴覚通知
- K30 CO2センサで室内空気質をリアルタイム監視する
- Unopad: Ableton Live連携シームレスなArduino MIDIコントローラー
- 川の健康を見守る:Arduinoベース水質監視システム「MyRiver」
- DFRobot静電容量式指紋センサーをArduino/ESP8266で使う – 登録・認証・削除の完全ガイド
- ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
- Arduino Nanoとロータリーエンコーダーで作る高精度測定ホイール
- DS1302 RTCとArduino UNOで作る信頼性の高い目覚まし時計