avr atTINY13a 6:コンパレータ


 アナログ・コンパレータ 

 ATTiny13aは「アナログ・コンパレータ (Analog Comparator)」を搭載しており、利用することが出来ます。簡単なので使い道も多い。
 動作は、2つのピンを持ち「一方を固定し、片方がその電圧より上がればそれを知る事が出来ます。」

例:充電器では「電池電圧を調べ規定の電圧まで上昇すれば終了」というような動作です。
アナログコンパレータの動作!

@ ポートを入力にする。
 DDRBの0.1bitを[0]にする。(初期設定は0なので選択されている、この為コマンドは省略出来る。)
A AC(Analog Comparator)ピンは初期設定でディジタルになっているので、AC動作をさせる為にDIDR0のAIN1D/AIN0Dビットに[1]を書き込むと、アナログ動作になる。
B LEDをコントロールする為にDDRBの3_bitを出力に[1]設定する。
C 念の為、LED端子に[0]を書き込んでLEDを消す。
 この状態でピンはACは動作状態になり、PB0>PB1の電圧関係が成立すれば出力が変わります。つまりACObitは[0]から[1]にセットされ変わります。
D 具体的にはサンプルプログラムを参考にして下さい。
[ VRを回すとLEDをON ]
[回路図]

 10KΩのバリオーム(VR)を回して電圧を変化させ端子に加え、結果をLEDの点滅で知らせる物です。
 これは基本的動作で動いて当たり前なのですが、この様な「簡単な物が確実に動くことが大事」で動かないと話にならないわけです。

 という事で実験をして見ました(動きました)。プログラムは下の方に入れました。


[ CPの動作 ]
[動作図]

 コンパレーターですが、一般に端子は2つあって[+]と[-]の符合が付きます。
 [+]の符合端子は[-]の符合端子に比べ電圧が高いと出力は[+]になります。図ではACO端子の所でSOFTでチエック出来ます。

 この逆の動作をさせたい場合、次の2つの方法があって、どちらでも良いのですがIC側では[2]の方法が取り易いです。
1]電圧を端子に逆に加える方法
2]出力をSOFTで逆にする方法

 普通は[1]の方が簡単ですが、MCUではSOFT処理として良く[2]の方法が使われるので、慣れる必要があるかも知れません。
 SOFTを調べる場合、うっかりするので注意が必要です。

 図では分かり難いのですが、他に4つの端子を入力として(A/D多重器出力)選んで使う事も出来ます。

[ 動作は簡単! ]

 今回の実験は1.1Vを基準として、バリオームを変化させ電圧が越えるとLEDを逆転させる動作です。
 基準の電圧は内臓の電圧なので、電池の電圧変動などに影響されません。電池動作の電源チエックなどに使えます。

 使い道はアイデア次第という事になります。ICの値段が安いので色々な所に気にせず使えます。数台作るのでしたら半田付けなども直接してもよさそうです(壊したら交換すれば良い!ソケット代の節約…)。


 [プログラム]はこれです。つぎの物がICDATAです。

:1000000009C0FECFFDCFFCCFFBCFFACFF9CFF8CFA1
:04001000F7CFF6CF61
:10001400BFE9BDBFB0E0BEBFB8EDB7BBB4E2B8BB8B
:10002400B8B1BF77B8B9B8B1B064B8B9B3B1BF7B30
:10003400B3B9B4B3B260B4BBB8B1B5FF04C0B8B31C
:10004400B860B8BB03C0B8B3B77FB8BBF5CFFFCFB8
:00005400AC
:00000001FF

製作 2013/11/24 


 [MAIN MENU へ戻る]

inserted by FC2 system