こんばんは!
今回はArduinoを使って光制御可変抵抗器(フォトレジスタ)を扱っていきます。
概要
フォトレジスタとLEDを使って、部屋の電気がついているときはLEDをOFFにし、部屋の電気を消したときにLEDをONにする。
使用するもの
・Arduinoメインボード(https://amzn.to/2vkPIUH)
・USBケーブル(https://amzn.to/2UHhntl)
・ブレッドボード(https://amzn.to/38eNi8u)
・ジャンパワイヤ (https://amzn.to/39uBU8T)
・抵抗100Ω,1kΩ(https://amzn.to/2CfF5SN)
・フォトレジスタ(https://amzn.to/2Civ736)
・LED(https://amzn.to/2TvEPGc)
フォトレジスタとは
フォトレジスタは入射する光の強度が強いほど抵抗が小さくなる電子部品です。
フォトレジスタにはさまざまな種類がありますが、今回使用するものはCdSセルです。
CdSセルとは硫化カドミウムを使ったフォトレジスタです。
当たる光の量に従って抵抗値が変化する CdS の性質を利用して光量を検出します。
手順
まずハード側からやっていきます。
次のように配線していきます。
ハード側はこれで終わりです。
次にArduino IDEを起動して次のコードを書き込んでいきます。
1 2 3 4 5 6 7 8 9 10 11 12 | int photoResistor = A5; int bright; void setup() { pinMode(photoResistor, INPUT); Serial.begin(9600); } void loop() { bright = analogRead(photoResistor); Serial.println(bright); } |
このコードは
フォトレジスタの電圧を読み取って、シリアルモニタにその値を表示しています。
これでシリアルモニタを開いてbrightの値を見ると、
のようになっています。
これは部屋の明るさや、使用した抵抗の大きさによって異なると思います。
次に部屋の電気を消して、シリアルモニタを見てみると…
のようになっています。
結果より、値が900を超えた時にLEDを点灯させるようにします。
このコードを書いていきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | int photoResistor = A5; int led = 7; int bright; void setup() { pinMode(led, OUTPUT); pinMode(photoResistor, INPUT); Serial.begin(9600); } void loop() { bright = analogRead(photoResistor); Serial.println(bright); if (bright > 900) { digitalWrite(led, HIGH); } else { digitalWrite(led, LOW); } } |
これをメインボードに書き込んで部屋の電気を消してみると、以下の動画のように明るさを検知していることがわかると思います。
まとめ
今回はフォトレジスタを使用してみました。
光を検出できるので、今回のように部屋の電気が暗くなったら明るくなる装置や、光を追うことのできるような装置も作れるのでは?と思います。
今回はこれで終わります。
ではまた!