Menu
CoddyTech

光センサーのスイッチピン

CoddyのArduinoジャーニー「入力」セクションの一部。レッスン 14/22。

光センサーモジュールには、しきい値を設定してくれるコンパレーターという小さなチップが搭載されています。実際のモジュールでは、小さなネジで設定したレベルと光の強さを比較し、DOピンを駆動します。明るいときはLOW、暗いときはHIGHになります。このボードでは、レベルは光の半分です。

DOはデジタル信号なので、digitalRead()を使ってボタンのように読み取ります。モジュール自体がピンを駆動するため、プルアップは不要です。通常のINPUTで大丈夫です。

pinMode(7, INPUT);

if (digitalRead(7) == HIGH) {
  // 暗い
}

光が変化したときだけメッセージを表示するには、ボタンのレッスンで学んだエッジの考え方を使い、読み取った値を前回の値と比較します。

challenge icon

チャレンジ

簡単

モジュールのDOはピン7に、LEDはピン13に接続されています。

  • ピン7をINPUTに設定する
  • DOがHIGH(暗い)の間はLEDを点灯し、それ以外は消灯する
  • 読み取り値が変化したとき、DarkまたはBrightを出力する

Runを押し、明るさスライダーを中央より両方向に動かしてから、Checkを押します。

自分で試してみよう

const int sensorPin = 7;
const int ledPin = 13;

int lastDark = LOW;

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
  // センサーピンをINPUTに設定する
}

void loop() {
  // DOを読み取り、暗いときにLEDを点灯させる
  // 読み取り値が変化したらDarkまたはBrightを出力する
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

入力のすべてのレッスン

自分で練習してみよう: Arduinoプレイグラウンド