電子工作112  PICのコンパレータを使う点滅式LED防犯ライト

Electronics Project 112 – PIC-Comparator Based Flashing LED Warning Light

 

概要    Introduction

   点滅式LEDを使って、暗くなったら自動的に点灯し、窓の外から点滅が見えるように設置して防犯に役立つような簡単な装置を製作した。今回は12F629に内蔵されているコンパレータを使う。すなわち。3Vの電源電圧をもとに設定したコンパレータ電圧と、外部の明るさに対応する電圧を比較させ、点滅式LEDを点灯させるかどうかを決めさせようとするものである。

 

A simple flashing-LED warning device set behind window for its use was made using the comparator of 12F629. That is, a comparator voltage that is set up by selecting various related parameters is compared with a voltage generated from the surrounding light intensity through a CdS sensor. The result decides the turning ON or OFF of the flashing LED.

 

回路図   Circuit Diagram

下図のように回路は簡単で、12F629には比較するアナログ入力ピン(GP1)と内部からの比較結果デジタル出力ピンGP2)が備わっている。入力の感度はVR=50Kで調整できる。プログラムで設定した内部標準電圧と入力電圧が比較されて出力ピンにH(3V)またはL(0V)の信号が出る。GP3を10Kの抵抗を介してHにしておかないと(Reset)装置が暗くなっても起動しない問題が起きる。この回路では、LED点滅時、非点滅時を問わず約0.3mAの電流を消費する。アルカリ単三電池(2000mAh)2本で6−7ヶ月持つはず

 

The following circuit diagram was formed through experiment. The flashing LED was used because its power consumption was nearly one third of that of a conventional LED. GP3 needs to be pulled up via 10K to Vdd (3V) for Reset, which ensures the startup of the device. The device consumed approximately 0.3mA regardless of the flashing LED being ON or OFF. Two AA alkaline batteries (2000mAh) should easily last more than 6 months.

 

 

ブレッドボードでの実験

Experiment of the device on breadboard

 

完成した装置

Completed device

 プログラム    Program

12F629の中にはコンパレーラが1個入っている。入力電圧CIN- (GP1) を、プログラムで設定できる内部標準電圧CVref と比較して、高いか、低いかによって、COUT (GP2) に、HighLED ON)またはLow LED OFF の信号を出すことができる。したがって、入力電圧のレベル検知に利用できる。今回は、「おもしろいPICマイコンPIC 12F675を使いこなす」中尾真治 著 株式会社オーム社 平成16年発行 27 コンパレータ p122-136を参考にささせて貰った

作成したプログラムは数行の簡単なものであるが、CMCONVRCONレジスタという2つの設定が結構複雑で難しい。先ず、GPIO.1GPIO.2をそれぞれ、Light入力と、コンパレータ出力のCOUTに割り当てる。 TRISIObit1GPIO.1)を入力、他はすべて出力に設定する。CMCONbit2-bit0の設定011は “CIN- ピンとコンパレータ基準電圧 CVref を比較し、コンパレータ出力結果COUTGP2から出すということを意味し、bit4 0 でコンパレータからの出力の反転はない。 一方、VRCONレジスタはコンパレータ基準電圧を設定するもので、今回の設定したVRCON=%10100111の場合は、コンパレータリファレンスの電源をONVRR1VR0-3ビットは0111なので、基準出力電圧=((VR0-3の内容)/24)xVdd で表され、CVref=((b111=d7)/24)x3V=(7/24)x3=0.875V(標準電圧)と計算できる。実際にCdSを覆ってGP1(ピン6)の電圧が0.87V近辺に上昇するとLEDが点滅を始める。暗くなってくるとCdS分圧回路からGP1に入る電圧は上がる。そして0.875V位に達するとLEDが点灯する。下の3行のプログラムと上記の回路図の組み合わせで、暗くなったら点滅LEDが動き出す。

'****************** Programming Info********************

'Comparator629.pbp  2020.2.12  worked OK!

'When the light intensity exceeds a set value (about 0.87V),

' (adjustable by VR), LED turns OFF from its ON-state.

PicBasic Pro 3.1, 12F629 used

'*************** Program ***************

 

        TRISIO=%000010      'GP1=Light-voltage INPUT; GP2=Comparator OUTPUT

        CMCON=%00000011   'GP1/CN-pin=light input; GP2/COUT=Comp.output

                                       'bit4=0 means Comp.output not reversed.

        VRCON=%10100111   'Low voltage; VR3:VR0=0111 (7 in 15; CVref=0.875V)

       

   End                                                      

****************** End of Program ********************

 'Note:

   'Melabs U2 Programmer's configuration:

   'FOSC - INTOSC(GP4:I/O); WDTE - Enable; PWRTE - Disable

   'MCLR - Used (MCLR-resistor-+Vdd connection but no SW for GND);

   'BODEN - Enable; CD - Disable; CDP - Disable.

'***********************************************************

 

 

コンパレータをON/OFFしてLEDの点灯モードを変える試み (2020.2.16)

  上記の回路では、暗くなると点滅LEDが同じ間隔で点滅を続ける。単調過ぎるので、スイッチを12F629(GP5)に付けて、単純点滅(H)ON3秒間とOFF3秒間の繰り返し点滅(L)の2つのモードを選択出来るようにした。下に回路図を示す。アイデアは良かったが、この回路の消費電流がLEDの点滅状態で、0.75mA、 非点滅状態で1.1mAに達することが分かった。電池は2ヶ月位しか持たない計算になる

 

By adding an external switch to GP5 of the above-mentioned circuit, it becomes possible to select either the simple flashing mode or the 3-seconds flashing + 3 seconds-no flashing period mode for the flashing LED.

However, it was found that this circuit consumed more current (about 0.7-1mA) or three times more compared with the above-mentioned circuit (0.3mA). Two AA alkaline batteries will last approximately two months.

 

LEDの点滅モードを変えられるようにした装置

Modified device with two LED-flashing modes

 

 

ブレッドボードでの実験

Experiment of the device on breadboard

 

 

プログラム   Program

  前のプログラム(Comparator629.pbp)に改良を加え、GP5からの入力を受け付けるようにした。SelectSW に GPIO.5を割り当てる。このSWからの入力がH(3V)かL(0V)かを読み込んで、もし、入力がH(1)ならLEDが単純に点滅を繰り返し、L(0)なら単純点滅が約3秒続き、次いで約3秒間その点滅が停止するパターンを繰り返す。プログラム中でCMCONレジスタの内容を変えられるということを習得出来たのは収穫。CMCON=%00000011はコンパレータ使う際の設定だが、CMCON=%00000111―>CMCON=7とするとコンパレータの電源がOFFになり、その機能を停止する。そして、12F629のGP0とGP1はデジタI/Oモードとなる。プログラムの下から4行目にCMCON=7を入れてコンパレータを3秒間停止させ(点滅なし)、ループで元に戻ってCMCON=%00000011で機能を回復させ(点滅開始)、3秒間点滅を続けさせる、という繰り返しをさせている。

 

'****************** Programming Info********************

'Program Name: Comparator629mod1.pbp   2020.2.11  worked OK!

'PicBasic Pro v 3.1 and 12F629 used

'Focused in the use of the Pic's comparator

'Self-flashing LED used

'LED's flashing has two modes or simple flashing (H) and intermittent (L).

'*************** Program ***************

      SelectSW var GPIO.5  'LED flashing-mode Select SW

       

        TRISIO=%101010    'INPUT; GP1=Light-voltage, GP3=Input pin,

                          'GP5=Mode select, Input., GP2=Comparator output

        VRCON=%10100111   'Low voltage; VR3:VR0=%0111 (=d7)

       

        RepeatA:

        IF SelectSW=1 Then

        CMCON=%00000011

        Goto RepeatA

        Else

        Endif

    

        CMCON=%00000011   'GP1/CN-pin=light input; GP2/COUT=Comp.output

                                       'bit4=0 means Comp.output not reversed.

        Pause 3000  '3sec

        CMCON=7     'stop comparator's function (=CMCON=%00000111)

        Pause 3000  '3sec

        Goto RepeatA

       

   End                                                      

 

'Note:

   'Melabs U2 Programmer's configuration:

   'FOSC – INTOSC (GP4:I/O); WDTE - Enable; PWRTE - Disable

   'MCLR - Input pin, (so no MCLR-resistor-+Vdd connection

   'required!! ); BODEN - Enable; CD - Disable; CDP - Disable.

 

 

コメント   Comment

1)    電源DC3Vで、抵抗4.7Kを介して点滅LEDをつなげてみると消費電流は0.04mA、一方通常の赤色LEDの消費電流は0.33mA位であることが分かった。電流消費の低い点滅LEDが電池駆動の場合断然有利である。この点滅LEDの電流消費に12F629で消費される電流が加わったものが各装置の電流消費になる。

2)    12F629のコンパレータが一応利用できたのが、それにしても難しい。

3)    CMCONレジスタだけでなく、基準電圧などが変えられるVRCONレジスタなどをいじくればいろんな事ができそうである。

4)   Flashing LED, which is connected to DC3V via a 4.7K resistor, consumes 0.04mA, while a conventional LED (red) consumes approximately 0.3mA. A big difference!

5)   It was a new experience for me to set up and partly manipulate the comparator of 12F629 or turning OFF and ON it in the flow of the program (Comparator629mod1.pbp).

 

 

 

CdS分圧回路の代りに太陽電池を明暗入力センサーとして使ってみる (2020.3.25)

  装置駆動用の電池の電流消費を減らす目的で、自分で発電する3Vと6V出力の小さい太陽電池を使ってみることにした。12F629のコンパレータに入力するので電圧だけが問題で、電流の大きさは極小でかまわない。コンパレータの標準電圧は0.87V程なので、太陽電池の電圧は2−3V以上あれば十分と思われる。6Vの太陽電池も安く入手できたの使ってみた。出力電圧が高い場合は、真っ暗にならないと標準電圧まで下がらない可能性があるが、その場合は電池の一部を黒い紙などで覆って電圧を下げればよい。実際、CdS分圧回路を使った場合に比べ、この回路では、7色LED点滅時(夜間)の電流消費は0.25mA位で、非点滅時(昼間)のそれは0.17mAと減少した。昼夜平均して0.2mA消費するとして計算すると、アルカリ単三電池(2000mAh)2本では、2000mAh/0.2mA=10000hrs、10000hrs/24hrs=417daysと1年以上持つはず

 

Here, a small solar panel (amorphous silicon, 3V or 6V output) was used instead of the conventional CdS Voltage Divider in order to reduce power consumption. As predicted, the current consumption of the system drops to about 0.25mA (at night when 7-color flashing LED is functioning) and 0.17mA (daytime when no 7-color flashing LED lights up), prolonging the battery life further, that is, two AA alkaline batteries (2000mAh) may last more than one year. The comparator reference voltage is 0.87V, so a solar panel with an output of over 2 volts is applicable. When a 6V solar panel is used, its output voltage can be reduced, if necessary, by partly covering its surface with black sheet.

 

実験中

7色点滅LED(3mm)はaitendoで購入した。

Experiment of the device on breadboard

 

 

太陽電池、左が出力6Vで下のキーホルダーから外したもの、右が手元にあった出力3V。両者ともアモルファスシリコン製。

Left: 6V panel taken from the key holder light shown below, Right: 3V panel. Both made from amorphous silicon.

 

V太陽電池の室内での電圧測定結果

Measuring the voltage of 6V panel

6V

 

 

ソーラーライトキーホルダーなどの名前で、街で¥150−160で売られている。明るくてなかなか優秀。ドライバーで分解出来、二ヶ所のはんだを熔かすとパネルが取り出せる。パネルの裏側の数字や記号をネットで検索すると特性が分かる。

Inside of a solar light key holder, it is inexpensive (150-160 Yen each) but capable of generating bright light. You can also see the backside of the panel, from which you can find the panel specification in the internet.

 

 

 

 

プログラム    Program

最初に作成したプログラムComparator629.pbpの一ヶ所だけ変えて、太陽電池入力に対応してある。以下のプログラムのCMCON=%00010011のbit4(右から5番目)を‘0’から‘1’に変えてコンパレータの出力を反転させてある。

 

To deal with the input from solar panel, one bit (bit4) of CMCON register in the above-mentioned program Comparator629.pbp is changed from 0 to 1 here.

'****************** Programming Info********************

'Program Name: Comparator629spanelab.pbp   2020.3.26  worked OK!

'Related program in MCStudio: NightLEDWarning629A.CE3

'PicBasic Pro v 3.1 and 12F629 used

'Focused in the use of the Pic's comparator

'Solar panel and 7-color flashing LED via 10K resistance used

 

'*************** Program **************

       

        TRISIO=%001010    'INPUT; GP1=Light-voltage, GP3=Input pin,

                           'GP5=Mode select, OUTPUT; GP2=Comparator

        VRCON=%10100111   'Low voltage; VR3:VR0=0111 (=d7)

       

        CMCON=%00010011   'GP1/CN-pin=Voltage input; GP2/COUT=Comp.output

                             'bit4=1 means Comp.output reversed. due to the use of solar panel input

End

****************** End of Program ********************       

'Note:

   'Melabs U2 Programmer's configuration:

   'FOSC - INTOSC; WDTE - Enable; PWRTE - Disable

   'MCLR - MCLR-10K resistor-+Vdd connection; BODEN - Enable;

   'CD - Disable; CDP - Disable.

****************** ***********************************.

 

 

上記の太陽電池を用いるシステム(2020.3.25)を更に省エネ化する方法を見つけた(2020.3.31)

Slightly More Power Saving Achieved (2020.3.31)

 

    回路図とプログラムComparator629spanelab.pbpは同じで、プログラムのConfigurationの設定でWDTE とBODENの両者をEnable からDisableに変更した。これで、電力消費が7色LED点滅時(夜間)の電流消費は0.25mA位から0.20mAへ、また、非点滅時(昼間)のそれは0.17mAから0.12mAに低下した。 設定の変更による不具合は今のところ起こっていない。

 

It was found that the change of configuration WDTE and BODEN of the program Comparator629spanelab.pbp from Disable to Enable can reduce the power consumption of the system, that is, in daytime (bright) from 0.25mA to 0.20mA and at night (dark) from 0.17mA to 0.12mA respectively. Here, the same circuit is used.

 

Menu Pageへ戻る    Return to Menu Page

Top of Pageへ戻る    Return to Top of Page