明るさセンサー(CdS)で明るさを測定する
CdSセルは暗いところにおくとセンサーの抵抗値が大きくなり、明るいところに置くと抵抗値が低くなる性質を持っています。その特徴を利用して、明るさセンサーとして使ってみましょう。
配線
ブレッドボードを使って
Arduinoの5Vー10kΩの抵抗ーCdSセルーArduinoのGND
の流れができるような配線をします。
その後、10kΩの抵抗とCdSセルが繋がっている列からArduinoのA1ピンに配線します。
プログラム
下記のプログラムをコピペし、Arduinoに書き込んでください。
書き込む前にArduinoの設定でやったボードの設定とシリアルポートの設定を忘れずに。
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
int val=0;
val=analogRead(1);
Serial.println(val);
delay(500);
}
シリアルモニタで数値を確認
図の赤枠の部分を押すとシリアルモニタが表示されるので、明るさセンサーで観測された値が表示されます。
暗くすると、数値が大きくなります。
シリアルモニタの様子
ポイント
ポイント1:アナログ入力
デジタルは01の世界と言われますが、Arduinoの例でいうと0=0V(LOW)、1=5V(HIGH)です。
つまり、Lチカの例で行ったデジタル出力は0Vか5Vのどちらかしかない出力です。
しかし、アナログは連続した値です。0〜5Vの値の間のどの値でも取れます。
今回の明るさセンサーは明るさ、暗さを数値で表したいのでアナログピンを使います。
ただし、アナログ入力は0-5Vの入力電圧を0-1023の値に変換されます。
0→0V
1023→5V
ポイント2:読み取り方法
val=analogRead(1);
はアナログ1番ピン(A1)の値を読むことを意味しています。