光センサーのスイッチピン
CoddyのArduinoジャーニー「入力」セクションの一部。レッスン 14/22。
光センサーモジュールには、しきい値を設定してくれるコンパレーターという小さなチップが搭載されています。実際のモジュールでは、小さなネジで設定したレベルと光の強さを比較し、DOピンを駆動します。明るいときはLOW、暗いときはHIGHになります。このボードでは、レベルは光の半分です。
DOはデジタル信号なので、digitalRead()を使ってボタンのように読み取ります。モジュール自体がピンを駆動するため、プルアップは不要です。通常のINPUTで大丈夫です。
pinMode(7, INPUT);
if (digitalRead(7) == HIGH) {
// 暗い
}光が変化したときだけメッセージを表示するには、ボタンのレッスンで学んだエッジの考え方を使い、読み取った値を前回の値と比較します。
チャレンジ
簡単モジュールの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を出力する
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
入力のすべてのレッスン
自分で練習してみよう: Arduinoプレイグラウンド