今度は、光センサーを使ってみました。
光センサーが受ける光の強さに応じて、赤、緑、青のLEDが点灯します。
そもそも光センサーてどんな構造してるの?て感じだったので、
↓の動画を見て勉強しました。
youtu.be
自分用にまとめておくと、
・光センサー(Cds)の特徴
光の強さに応じて抵抗値が変化する。(抵抗値は、明るいと低くなり、暗いと高くなる)
・光センサーで得た数値をArduinoに取り込むには
Arduinoは抵抗値を取り込むことはできないが、抵抗値を電圧に変換することで、A/D変換で取り込むことができる。
で、取り込んだ光センサーの数値はシリアルモニタで表示させることができるんですが
こんな感じになります。(手で光を遮ったりすると数値が動きます)
この数値の動きを利用して、3色のLEDを点滅させます。
作成時は、↓のページを参照しました。
deviceplus.jp
センサーとArduinoの接続、コード等の基本の部分は参考にさせてもらい、
3色LEDの配置や、入力値に応じてLEDが点滅する部分のコードはオリジナルです。
配置はこんな感じです。
※ Fritzingをダウンロードしたので、回路図を作成できるようになりました!!(8月16日)
http://fritzing.org/home/
int val=0; //光センサーからの入力値を格納する int ledVal = 0; //LEDへの出力値を格納 void setup() { Serial.begin(9800); } void loop() { val=analogRead(0); //A0からセンサーの入力値を受け付ける ledVal = val/2; Serial.println(ledVal); // D3に青色、D4に緑色、D5に赤色のLEDを接続 if(ledVal < 50){ //入力値が50以下の時 analogWrite(3,255); //青色が点灯 analogWrite(4,0); analogWrite(5,0); }else if(ledVal < 100){ // 入力値が51~99の時 analogWrite(3,0); analogWrite(4,255); //緑色が点灯 analogWrite(5,0); }else { //入力値が100以上の時 analogWrite(3,0); analogWrite(4,0); analogWrite(5,255); //赤色が点灯 } delay(300); }
実際に動かすとこんな感じになります。
streamable.com