ホーム 🔍 センサー Lesson 14
🔍 Chapter 3 • センサー

センサー2つであそぼう!
ひかり距離きょりうご作品さくひん

⏱ やく60ぷん
🤖 Arduino使用しよう
🔗 CdS + HC-SR04
🤖
エンジくん これまでまなんだひかりセンサーと超音波ちょうおんぱセンサーを2つ同時に使ってみよう!わせることで「よるちかづいたら警報けいほう!」みたいな本格的ほんかくてき作品さくひんつくれるよ!

1
このレッスンでまなぶこと

  • 🔗 センサー複合ふくごう — CdS + HC-SR04を同時どうじ使つか
  • 🔀 &&(アンド) — 2つの条件じょうけんわせる
  • 📋 else if複数ふくすう条件じょうけん順番じゅんばん判断はんだんする
  • 🚨 防犯ぼうはんセンサーくらくてちかいときだけアラーム!
  • 🎮 防犯ぼうはんシミュレーター — 2つのスライダーで動作どうさ確認かくにん

2
用意よういするもの

3
センサーわせのかんがかた

🤔 なぜセンサーを組み合わせるの?

🌤️ CdSだけ

暗い?明るい?しかわからない

+
📡 HC-SR04だけ

近い?遠い?しかわからない

=
🚨 2つ合わせると

「夜に人が近づいたら警報!」
という複雑な条件が作れる!

📊 動作ロジック一覧

🌤️ CdS(明るさ) 📡 距離 🎯 動作
明るい 遠い 安全 — 何もしない
明るい 近い 👋 接近中 — LED点滅(ゆっくり)
暗い 遠い 🌙 夜間 — LED点灯(常時)
暗い 近い 🚨 警報! — LED高速点滅

🔀 &&(アンド)で条件を組み合わせる

if (light < 400 && distance < 30)
// 光が暗い かつ 距離が30cm未満 → 警報!
&& AND(かつ)

両方の条件が true のときだけ実行

|| OR(または)

どちらか一方が true なら実行

4
コードをてみよう

// ピン定義 const int CDS = A0; const int TRIG = 9; const int ECHO = 10; const int LED = 13; const int LIGHT_TH = 400; // 暗さのしきい値 const int DIST_TH = 30; // 近さのしきい値(cm) void setup() { pinMode(TRIG, OUTPUT); pinMode(ECHO, INPUT); pinMode(LED, OUTPUT); Serial.begin(9600); } void loop() { // ① CdSで明るさを読む int light = analogRead(CDS); // ② HC-SR04で距離を測る digitalWrite(TRIG, LOW); delayMicroseconds(2); digitalWrite(TRIG, HIGH); delayMicroseconds(10); digitalWrite(TRIG, LOW); long dur = pulseIn(ECHO, HIGH); float dist = dur * 0.034 / 2.0; // ③ 2つの条件で動作を分ける bool isDark = (light < LIGHT_TH); bool isNear = (dist < DIST_TH && dist > 0); if (isDark && isNear) { // 🚨 暗い+近い → 警報!高速点滅 digitalWrite(LED, HIGH); delay(100); digitalWrite(LED, LOW); delay(100); Serial.println("🚨 警報!"); } else if (isDark) { // 🌙 暗い → 夜間灯(常時ON) digitalWrite(LED, HIGH); delay(200); } else if (isNear) { // 👋 明るい+近い → ゆっくり点滅 digitalWrite(LED, HIGH); delay(400); digitalWrite(LED, LOW); delay(400); } else { // ✅ 安全 → OFF digitalWrite(LED, LOW); delay(200); } Serial.print("光:"); Serial.print(light); Serial.print(" 距離:"); Serial.println(dist); }

💡 bool型は true(正しい)か false(正しくない)の2種類だけの変数!isDarkisNearのように「状態」を表すのに使うとコードが読みやすくなるよ。

5
回路のつなぎかた

部品 端子 つなぐ先
CdSセル 片方の足 5V
CdSセル もう片方 + 10kΩ A0 / GND
HC-SR04 VCC VCC 5V
HC-SR04 Trig Trig D9
HC-SR04 Echo Echo D10
HC-SR04 GND GND GND
LED(220Ω経由) アノード D13

6
実際じっさいにつないでみよう!

🎉 センサーコンボマスター!複数ふくすうセンサーのわせで本格的ほんかくてき作品さくひんつくれるようになったね!

7
クイズに挑戦ちょうせん

🤖
エンジくん 複数センサーの組み合わせと&&演算子をしっかり覚えよう!応用の幅がどんどん広がるよ!
クイズをちゅう

8
防犯ぼうはんセンサーシミュレーター 🚨

🤖
エンジくん 2つのスライダーで明るさと距離を変えてみよう!4つの動作パターンを全部確認しよう!
🧍
🌤️ 明るい
📡 遠い
🌙 ← 明るさ → ☀️ 600
👤 ← 距離 → 🏃 100 cm
600
analogRead
100
距離(cm)
false
isDark
false
isNear
✅ 安全 — LED OFF
🏆

Lesson 14 完了かんりょう

Chapter 3 センサーへんすべて完了かんりょうつぎはChapter 4アクチュエータ&表示ひょうじ挑戦ちょうせん

🏠 ホームへもど

9
まとめ

  • ✅ 複数のセンサーはloop()の中で順番に読めば同時に使える
  • &&(アンド)で「かつ」、||(オア)で「または」の条件が作れる
  • if / else if / else で複数パターンの動作を切り替えられる
  • bool型で状態(true/false)を変数に入れるとコードが読みやすくなる
  • ✅ センサーを組み合わせるとできることが劇的に増える!これがセンサーの醍醐味!
← Lesson 13にもど 🏠 ホームへ