LED回路工作部屋 (トップ) > 光センサー スイッチ回路 【初回 : 2022/6/7】【最終更新日 : 2022/6/7】
光センサー スイッチ回路 [E-60]

 回路の説明
 暗くなるとスイッチが入り、明るくなるとスイッチが切れる「光センサー スイッチ回路」です。
 LCD(液晶ディスプレイ)を付けて、明るさに対するスイッチのON-OF動作を数値的に確認できます。 また、スイッチが動作する"ON"や"OFF"の明るさ設定ができます。
 CDSのA/D変換値は "0〜127" の間で変化し、明るいと"30"ほど、暗い(真っ暗)と"127"になります。 "ON"の設定は"90"、"OFF"の設定は"70"で設定すると、暗くなってCDS値が"91"でスイッチが"ON"になり、"70"でスイッチが"OFF"になります。 "ON"と"OFF"で差をつけるのは、チャタリング回避の為です。また"OFF"になる前に、液晶上の"ON"が10秒ほど点滅(保留)してから"OFF"になります。 瞬間的にライト等を当てられても、すぐには"OFF"にならないための処置です。
 電源はDC5Vで動作します。リレーモジュールもDC5V仕様です。




 回路図 (基板配線図)
 PIC16F689 でLCD、CDS(A/D)、ボタンを制御します。各ポートの割り当ては下記です。
 RA0 = CDSの入力 (A/D変換)
 RA1 = ボタンの入力 (Pull-Up)
 RA2 = ボタンの入力 (Pull-Up)
 RA3 = リセット
 RA4 = ボタンの入力 (Pull-Up)
 RA5 = ボタンの入力 (Pull-Up)
 RB4 = LED1 (動作確認用)
 RB5 = 通信(Rx) (動作確認用)
 RB6 = LED2 (動作確認用)
 RB7 = 通信(Tx) (動作確認用)
 RC0 = LCD 4bit制御
 RC1 = LCD 4bit制御
 RC2 = LCD 4bit制御
 RC3 = LCD 4bit制御
 RC4 = LCD E 制御
 RC5 = LCD RS 制御




 プログラムの処理
 処理はTimer0で約33ms毎に割り込みを発生させ、発生毎にカウントし、カウントに応じた処理を行います。
 ※数字はカウント数です
 ・1 = RA0のA/D変換開始
 ・2 = A/D変換値の7bit(0〜127)加工、変換値の格納
 ・3 = 押しボタンのチェック
 ・4 = 変換値、設定値のキャラクタ変換、出力判定
 ・5 = なし
 ・6 = LCDの表示変更
 ※6が終わったら、また1に戻ります。