VRの値を読み取る
VR値を利用して何かをするにはA/D変換しますが簡単に出来ると便利です。そこで端子入力スレッショルドを利用してCRの時定数を読み出させてみました。サンプルとして10KΩVRと103を使いました。
始め、100μSecのWaitを入れたらまったく作動しなかった、次に40μSecを入れたがこれもだめ。
念の為Waitを取り外してみたら"8"という数字が出ました、しめしめという所。どうもCRの定数が多過ぎたようです、念の為473に交換したら"36"と出て納得!まあ数字が出れば何とか使えるという事でもう少し詳しく調べました。
次のグラフは手持ちの抵抗値を変化させて調べた物です
10KΩ以下とそれ以上の2つにしましたが、低い方は良く見えなくなってしまうので拡大表示させています。
数字をエクセルに入れグラフにしました、これでおよその動作が分かると思います。あまっている端子2個で利用可能です!
直線性は少し悪いですが、それを理解して使えば結構使えそうです。
プログラムは次の通り簡単です(初期設定とLCD表示は略しました、この程度なら書かなくても良い感じもしますが・・・)。LOOP INCF TEST1,F ;1step BTFSS PORTA,3 ;1 GOTO LOOP ;2RA2は出力、RA3は入力でRA2がセットでSTART、RA3がセットされれば終了です。そこでTEST1レジスタを読み出してLCDに出させる仕組みで調べました。
右上図のようにRA2/RA3間は10KΩ、RA3とGND間はコンデンサです。グラフで左側の数字がループ回数です。1回が4Steps(4MHz=1μSec)で、10KΩでは31μSecが測定時間となりました(Cは誤差が生じるのでこの前後と思って下さい)。
VRの値とか角度なんかが大体確認出来そうです、また電車や自動車の速度コントロール程度なら使えるかも知れません。
片方(RA2)は10KΩが付いているので、外の用途と端子が兼用出来るかも知れません。2007/MAY/14
もどる [MAIN MENU]