A ポテンショメータ (999ポット >)は、抵抗を変えるために回すことができるノブ付きの電子可変抵抗器です。さまざまなタイプのポットは、BASIC Stampプロジェクトの入力デバイスとしてよく使用されます。たとえば、簡単なポットを使用して、点滅しているLEDの速度を制御することができます。ポットのつまみを回すと、LEDの点滅速度が変わります。ここでは、10kΩのポットが0.1μFのコンデンサと並列に配置されています。さらに、220Ωの抵抗がポットと直列に配置されています。これは、ポットのノブを回してポットの抵抗がゼロになるようにBASIC Stampを保護するために行われます。
<! - 1 - >
この回路のコンデンサは十分に小さく(0.1μF)、回路が充電して非常に高速に放電します。ポットノブの設置場所によっては約1ミリ秒以内です。したがって、コンデンサが放電するのを待っている間は、プログラムが大幅に遅れず、ポットの抵抗を決定できます。<! - 2 - >
この回路を考えると、どのようにポットの抵抗を測定するのですか?答えには巧妙なプログラミングが必要です。まず、ピン13をHIGHに設定して、コンデンサを充電します。次に、ピン13の入力ステータスを監視するループを設定します。ピン13のステータスを確認するたびに、カウンタに1を加算します。コンデンサが放電すると、ピン13はLOWになります。ピン13がLOWのとき、ループは終了し、カウンタはコンデンサを放電するのに要した時間を示します。コンデンサのサイズとコンデンサの放電に要した時間の長さを知っているので、ポットの抵抗を計算することができます。
<! - 3 - >
幸いにも、PBASICにはRCTIMEというコマンドが含まれています。あなたがしなければならないのは、RC回路がどのピンに充電されているかを測定したいかどうか、またその結果の時間計算を保存する変数の名前をRCTIMEコマンドに伝えるだけです。 RCTIMEコマンドを使用して、13ピンのRC回路が放電するまでの時間を決定し、その答えをTimerという名前の変数に格納する方法は次のとおりです。RCTIME 13,1、Timer
このRCTIMEコマンドは、 RC回路を放電させるのにどれくらい時間がかかったかを示す値にTimerという名前の変数を追加します。このコマンドの直前に、I / Oピン(この場合は13ピン)をHIGHに設定してコンデンサを充電する必要があります。また、回路を充電できるようにするには、短時間(通常1msで十分です)休止する必要があります。
この手法を使用してポットの実際の抵抗を計算することはできますが、通常は正確な抵抗を知る必要はありません。代わりに、通常、ポットの抵抗が増加するとカウンタが増加することを知ることで十分であり、ポットの抵抗が減少するとカウンタが減少することを知ることは通常十分である。この回路では、RCTIMEコマンドは、ポットの抵抗が最大値(10kΩ)にあるときに、ポットの抵抗が0に近いときの約12から約54までの時間値を計算する。
以下のプログラムは、ピン0と2に接続されたLEDを交互に点滅させます。LEDが点滅する速度は、ピン13のRC回路のポットによって設定されます。プログラムは、RCTIMEコマンドで計算された時間値に、フラッシュの間にプログラムを一時停止する時間を決定します。ポットのつまみを回すと、ポットの抵抗が減少し、LEDがより速く点滅します。
'Potentiomter LED点滅プログラム' Doug Lowe '2011年7月10日「このプログラムはピン0と2に接続されたLEDをピン13のRC回路で決まる速度で点滅させます。' {$ STAMP BS2} '{$ PBASIC 2. 5}時間VARワードLed1 PIN 0 Led2 PIN 2ポットPIN 13 DO HIGHポットRCTIMEポット、1、時間HIGH Led1 Led Led2 PAUSE時間* 10 LOW Led1 HIGH Led2 PAUSE時間* 10 LOOP
コードをテストできるように10kΩのポテンショメータとコンデンサを含む回路を構築してください。これは完成した回路を示しています。