Arduino 光センサを使おう!
光センサを使った簡単なプログラミングを行います。
1、光センサの値によりLEDを点滅させる感覚を制御
Cord
//アナログ入力の値に応じてLEDの点滅レートが変化
const int LED = 13;
int val = 0;
void setup() {
pinMode(LED, OUTPUT); //LEDにアウトプット設定
//注:アナログピンは自動的に入力として設定される
}
void loop() {
val = analogRead(0);
digitalWrite(13, HIGH); //LEDをオン
delay(val); //少しの間、プログラムを停止
digitalWrite(13, LOW); //LEDをオフ
delay(val);
}
ジャンパー線の色が限られていて規則性がないですm(_ _)m
回路写真(実行)
実際に光センサに手を近づけて光を遮り試してみてください。
2、光センサの値によりLEDを点滅させる感覚を制御
Cord
//アナログ入力の値に応じてLEDの明るさを変える
const int LED = 9;
int val = 0;
void setup() {
pinMode(LED, OUTPUT);
}
void loop() {
val = analogRead(0);
analogWrite(LED, val/4); //センサの値を明るさとしてLED点灯
delay(10);
}
valの値を4で割るのは、センサーから返ってくる値が最大で1023で、analogWrite()が受け付ける値が最大で255だからです。
CdSセルは明るさを抵抗値に変えてくれる便利なセンサーです。ですが、Arduinoは抵抗値を読み取ることはできないので、回路でArduinoが読み取れる電圧に変換させる必要があります。
この方法は他のセンサーにも応用が可能で、圧力センサー、サーミスタなどが今回の回路で使えます。
CdSセルをサーミスタに変えれば、温度変化によってLEDの明るさが変化します。
今回はこの2点で終わりですが、これ以外にも様々なプログラムの可能性がたくさんあります。なのであなたも色々試してみたください!!