超簡単!電子工作教室「光センサー(CDSセル)」でLEDを点けたり消したりしてみた

アフィリエイト広告を利用しています
arduino
DSC_4385

「CDSセル」は光の当たる量によって抵抗値が変化する素子だそうで、昔のフィルムカメラの光量測定などけっこう古くからいろいろ利用されているみたいです。

CDSセンサー(フォトレジスター・CDSセル)

「CDSセル」による光の変化を利用するとしたら、暗くなると道を明るく照らしてくれる「センサーライト」が一番に思いつきました。同様に冷蔵庫の照明?(これはタッチスイッチかな?)車のオートライトもそうでしょうか?

では、実験します。

  • CDSセル:1個
  • LED:1個
  • ブレッドボード:1個
  • 抵抗:330Ω(100~1Kくらい):2個
  • ジャンパー線:4本
  • Arduino本体:1個
  • USBケーブル:1本(PC⇔Arduino接続用)
  • パソコン:1台(ArduinoIDEインストール済)
CDS

配線しましょう。

LEDは13番へ CDSはA0番へ(極性なし)

CDS実験装置

ソースコードは以下の通りです。コピペして「書き込みCtrl+U」しましょう。

#define LEDPIN 13      // LEDを13番ピンに
#define THRESHOLD 920  // Cdsのしきい値(暗くなりこの値より高くなったらLEDを点灯する)
                       // Cds値をシリアルモニタで確認して、しきい値を決定
 void setup() {
     Serial.begin(9600) ;      // 9600bpsでシリアル通信
     pinMode(LEDPIN,OUTPUT) ;  // 13番ピンにLED接続
 }

 void loop() {
     int analogValue = analogRead(0) ;  // A0番へつないだCdsから値を読み取る
     Serial.println(analogValue) ;      // 読み取った値を送る               
     if (analogValue >= THRESHOLD) {    // Cds値でLEDをON/OFFする
          digitalWrite(LEDPIN, HIGH) ;  // 光がしきい値より暗くなったらLEDを点灯
     } else {
          digitalWrite(LEDPIN, LOW) ;  // 光がしきい値より明るくなったならLEDを消灯
     }
     delay(1000) ;                     // 1秒待つ
 }

Serial.begin(9600) ; // 9600bpsでシリアル通信

ArduinoIDE画面の右上にある🔎虫眼鏡みたいなシリアルモニタボタンを押して、今度は右下に出てくるプルダウンのbaudの種類を9600baudに設定しましよう。少しして現在のCDSセルの読み取り状況が表示されます。

「CDSセル」を指で押さえると、今まで数値が800台だったところ900台へ上昇し、ギュッとしっかりと押さえると1000を超えてきました。真っ暗闇になると、おそらく1023になると思われます。

#define THRESHOLD 920 // Cdsのしきい値(暗くなりこの値より高くなったらLEDを点灯する)

指で押さえて変化のあった920(適当にキリのいい所)にしてみました。

CDSを指などで覆うとLEDが点灯しました。

youtube