こんにちは。
今回は教室で出来なかったセンサを使ってみたいと思います。
まずはCDSからです。
CDSを38列目と40列目に入れましょう。向きはありません。
次に10キロオーム(茶黒橙金)の抵抗を35列目と40列目に入れます。
続いて硬いジャンパワイヤ(茶色)で38列目と下の青い(マイナスの)ラインをつなげましょう。
さらに、好きな色のLEDのプラス(足が長い方)を46列目に、マイナス(足が短い方)を45列目に入れましょう。
そのあと、1キロオーム(茶黒赤金)の抵抗で45列目と青いラインをつなぎます。これでブレッドボード上の配線は終了です。
Arduinoとの接続に入ります。柔らかいジャンパワイヤを使いましょう。
ArduinoのGND(マイナス)ピンとブレッドボードの青いラインをつなぎます。
Arduinoの5V(プラス)ピンとブレッドボードの35列目(10キロオームの抵抗)をつなぎます。
ArduinoのA0ピンとブレッドボードの40列目(CDS)をつなぎます。
最後にArduinoの6番ピンとブレッドボードの46列目(LED)をつないで配線は終了です。
パソコンと接続して以下のプログラムを書き込みましょう。
int data=0;
void setup(){
}
void loop(){
data=analogRead(0);
data=map(data,0,1023,0,255);
analogWrite(6,data);
}
CDSの前で手を動かしてみるとLEDがチラチラすると思います。が、変化が小さくてよくわからないと思うので、センサの値を直接見てみましょう。
教室ではLCDを使ったので課題のようにそれを使ってもよいのですが、今回はパソコンの画面で値を確認できるようにします。
プログラムを以下のようにして、書き込んでみましょう。
int data=0;
void setup(){
Serial.begin(9600);
}
void loop(){
data=analogRead(0);
data=map(data,0,1023,0,255);
Serial.println(data);
analogWrite(6,data);
delay(10);
}
書き込んだら、IDEの右上の「虫眼鏡」の印のボタン(カーソルをもっていくと「シリアルモニタ」と表示されます)をクリック!
すると数字がたくさん出る画面が出てくるはずです。これがセンサの値になります。
Serial.begin(9600); でパソコンとの通信を始めて、
Serial.println(data); でパソコンにデータを送っています。
delay(10); はデータを送る間隔をあけるためです。
電気をつけた状態で75くらい、CDSに手を近づけると170くらい、電気を消すと250くらいになりました。
つまり、センサの値が高い→周りが暗い
センサの値が低い→周りが明るい
となります。
では、この値を使って「暗くなったら点灯するLED」を作ってみましょう!
今回の動作は、
センサの値をはかる
→センサの値が高い(周りが暗い)→LEDを点ける
センサの値が低い(周りが明るい)→LEDを消す
です。
暗くなったときだけLEDが点けばいいので、200くらいを境目にします。
場合分けにはif(){}を使います。
プログラムは以下の通り。
int data=0;
void setup(){
}
void loop(){
data=analogRead(0);
data=map(data,0,1023,0,255);
if(data>200){
analogWrite(6,150);
}else{
analogWrite(6,0);
}
}
明るさはお好みで。明るさを調整して、電池を使うと常夜灯代わりにもなりますよ?
次回は温度センサを使ってみたいと思います。
0 件のコメント:
コメントを投稿