ここ数日はぽかぽか陽気です。

10日間かかりカシの木伐採も終わりましたが、後期高齢者の老体なので2日間かかりやっと疲れが取れ平常時に戻りました。

若いうちは寝て起きれば翌日には元気そのものに復活したのですが、歳には勝てません。(笑

さて、体の運動はしたので今度はボケ防止に頭の運動に入りました。

久しぶりにパソコンを開きましたが、電池不足のメッセージが出ていました。🪫

暇つぶしにプログラムを組んでみました。

衰え始めた脳みそは、さっき食べた昼飯も食べたかどうか忘れてしまうような有様なので、参考書を見ながら復習し試行錯誤でした。

今日の目標は、明るいとLEDが消えていて暗くなるとLEDが点灯するプログラムです。

さて上手くいくか・・

 

以下プログラムです⤵️

int cdsPin = A0;     // CDSセンサーを接続するアナログピン

int ledPin = 13;     // LEDを接続するデジタルピン

int value = 0;       // CDSセンサーの値を格納する変数

int threshold = 500; // 点滅を開始する閾値(CDSセンサーの値)

 

void setup() {

  pinMode(ledPin, OUTPUT); // LEDピンを出力モードに設定

}

 

void loop() {

  value = analogRead(cdsPin); // CDSセンサーのアナログ値(0〜1023)を読み取る

 

  if (value < threshold) {

    // CDSセンサーの値が閾値より小さい(暗い)場合

    digitalWrite(ledPin, HIGH); // LEDを点灯

    delay(200);                 // 200ミリ秒待機

    digitalWrite(ledPin, LOW);  // LEDを消灯

    delay(200);                 // 200ミリ秒待機

  } else {

    // CDSセンサーの値が閾値以上(明るい)の場合

    digitalWrite(ledPin, LOW);  // LEDを消灯

  }

}

 

難しそうに見えますが、内容は簡単です。(上記//以後は説明文なのでPCには読み込まない)

1・マイコンボードにあるA0ピンにCds光センサーを接続

2・13番ピンにLEDを接続

3・Cds値を500に設定

・if文で500以下の場合はLEDを点灯、以上の場合は消灯

 (if文とは、もし〜だったら・もし〜でなかったら)

5・loop関数を使いこの動作を繰り返す

 

このような回路になります。⤵️

 

 

周りが明るい時はLEDが点灯

 

Cds光センサーを覆い隠して暗くすればLEDが消灯します。

 

プログラムを組んで大失敗をしてしまいました。(汗

明るい時は消灯、暗くなって点灯するプログラムのつもりでしたがまるで逆でした。🙇

 

応用例としては、車がトンネルに入ると自動でヘットライトが点灯、トンネルを抜けると消灯する、このような機能として使われています。

 

今回のプログラミングでは、コンパイルに3回失敗してしまいましたよ。

(コンパイルとは=書いたプログラムコードをコンピューター語に変換し認識してくれるかどうかを確認する作業)

 

爺さんの暇つぶしには少しややこしすぎました。(笑