私は、このインストラクターから取得したDIYフォースセンシティブレジスタ(FSR)を使用してアプリケーションを作成しています。このセンサーの抵抗は、通常、静止時の20kOhmから押されたときの9kOhmの範囲です。
これらの抵抗値を0vが静止状態に対応し、5vが「押された」状態に対応する信号に変換して、Arduinoで読み取ることができるようにするにはどうすればよいですか?
私は、このインストラクターから取得したDIYフォースセンシティブレジスタ(FSR)を使用してアプリケーションを作成しています。このセンサーの抵抗は、通常、静止時の20kOhmから押されたときの9kOhmの範囲です。
これらの抵抗値を0vが静止状態に対応し、5vが「押された」状態に対応する信号に変換して、Arduinoで読み取ることができるようにするにはどうすればよいですか?
回答:
0V〜5Vの信号範囲が必要です。みんなじゃないですか:-)?別のアプローチに進み、それが私たちをどこにもたらすか見てみましょう。
出発点:最も安価で最も簡単なソリューション。
それは分圧器を作成するための直列抵抗になります。それは絶対的な最小値です。私はちょうど10Kのような素敵なラウンド値迎え、人々はその抵抗に多くの考えを与えていないことに気付きました。しかし、これには最適な値があることがわかりました。
曲線が示す最小値と最大読み出し電圧差(9K と20K Ωの RESP。)(k個の直列抵抗の関数としてΩ)。確かに、それは最大値を持っています。それを覚えていれば簡単に見つけることができます
- V M I Nの違いは、
を 解くと
美しさ!
我々の場合には、直列抵抗が13.42kされるように、あなたがグラフ上でこれを確認することができます。抵抗を0Vから+ 5Vの間に配置すると、出力範囲は[2V、3V]になります。これが1つの抵抗(*)で取得できる最大範囲です。
それは十分か?Arduinoには10ビットADCがあるため、この範囲は200の離散レベルの範囲を提供します。これはDIYセンサーに十分な精度を与えるはずです。したがって、オペアンプのような他のコンポーネントは必要ありません。
(*)受け入れられた答えは1.9Vレンジを与えますが、それは間違った方程式を持っています。1つの抵抗と+ 5Vの電源のみで1Vより高い範囲を得るのは不可能です。