回答:
はい、すべてのマイクロコントローラーには、ファームウェアによって制御される電圧信号を生成する方法がいくつかあります。力ずくの方法は、マイクロがデジタルアナログコンバーター(D / A)を含めることです。ファームウェアはD / Aに数値を書き込み、その数値に比例した電圧を生成します。
D / Aの重要な仕様の1つは、そのビットのビット数です。これにより解像度が決まります。数値にNビットがある場合、D / Aは2 Nの異なる値を生成できます。たとえば、8ビットD / Aは256の異なる電圧レベルを生成できます。通常のデジタル出力ピンは1ビットD / Aと考えることができます。数値には2つの状態、0と1があり、出力電圧は高いまたは低いです。
ほとんどのマイクロには、需要がほとんどないため、マルチビットD / Aが組み込まれていません。通常、プロセスのできるだけ早い段階でアナログ値をデジタルに変換し、デジタルで操作を行ってから、パルスで制御します。マイクロでアナログ電圧を生成するのは珍しいことです。あなたが本質的にアナログ信号についてであると考えるかもしれないオーディオのようなアプリケーションでさえ、物事はしばしばデジタル的にまたは最後にパルスで処理されます。それが基本的にD級アンプです。
D / Aが組み込まれている限定されたマイクロのセットの1つを使用したくない場合は、外部で追加できます。たとえば、microがSPIバスを介して駆動できる多くのD / Aがあります。
ただし、高速出力が必要でない限り、マイクロのPWM出力をローパスフィルター処理すると、優れたアナログ信号が得られます。マイクロはよく制御されたパルスシーケンスを生成するのが得意で、多くの場合、この目的のためにハードウェアが組み込まれています。たとえば、1 µsごとに(1 MHzのレートで)変更できるデジタル出力を考えてみます。1 µsのタイムスライスを1023のブロックにグループ化するとします。各ブロックで、スライスの0〜1023のいずれかを高くできます。これを平均すると、1024レベルのアナログ値が得られます。これは、10ビットのD / Aから得られるものです。生信号には、必要な平均値に加えて、1 MHz / 1023 = 978 Hzから始まる高周波が含まれます。ローパスフィルタリングのいくつかの極を適用することにより(極ごとに1つの抵抗とコンデンサ)、
このタイプのA / Dには、非常に線形で単調で、2つのグリッチ出力の累乗がないという優れた特性があります。唯一の欠点は通常、帯域幅です。ローパスフィルターを形成するいくつかの単純な抵抗器とコンデンサーでは、数十Hzより速いアナログ信号を取得することはおそらくできません。
ブロックごとに1023スライスを使用することは、任意の選択であったことに注意してください。より高い解像度が必要な場合は、ブロックを大きくしますが、その後、フィルター処理された出力の変化を遅くする必要があります。ただし、多くのマイクロは、1 MHzスライスレートよりもはるかに速いハードウェアでPWM生成を実行できます。
外部D / Aに進む前に、PWMメソッドが機能するかどうかを確認してみます。
設計しようとしているのはデータ収集システムです
Digital-to-Analog(DAC)コンバーターがある場合は、それを実行できます。それ以外の場合は、外部DACを取得し、マイクロコントローラーが可能な限り(I2C、SPI、UARTなど)を介してそれに通信するようにします。
マイクロチップにタグを付けたことに注意してください。それらには、シンプルなもの(pic12f752、pic16f753、782)から高度なもの(dsPIC33fj16GS504,502,302)などのDACを備えたマイクロコントローラーがあります。これらはhttp://www.microchip.com/maps/microcontroller.aspxから入手できます。
システムによって引き出される電流によっては、DACとして抵抗ラダーを使用してこれを実行できる場合があります。http://en.wikipedia.org/wiki/Resistor_ladder
少数の特定の電圧値が必要な場合は、2 ^ nの等間隔の値の通常のシステムではなく、それらを正確に放出するように抵抗ラダーを設計することもできます。
それが重要な電流を引き出す場合、出力としてバッファとして構成されたオペアンプが必要になります。オペアンプが0V付近の適切な直線性で動作することを確認してください。これには負の電源が必要になる場合があります。
PWMに問題がない場合は、Arduinoのアナログ出力が問題なく機能します。パルスは非常にノイズが多いため、ローパスフィルターの追加を検討することもできます。
よりクリーンなソリューションが必要な場合は、DACモジュールに付属のマイクロコントローラーを見つけてください。一部のMSP430マイクロコントローラーには、使用できるDAC(23ページを参照)があります。あなたは彼らのデータシートを調べる必要があります。
DACのないマイクロコントローラーに制約されている場合は、DACチップの入手を検討できます。このチップは、SPIまたはI2Cを介して簡単に制御でき、安価です。ここだ12ビットDACドルを少し超えるがかかります。
お役に立てれば。