このプロジェクトでは、ATMEGA8マイクロコントローラーを使用して低レンジ電流計を作成します。ATMEGA8では、これを行うために10ビットADC(アナログ-デジタル変換)機能を使用します。回路から電流パラメータを取得する方法は他にいくつかありますが、抵抗ドロップ法を使用します。これは、電流パラメータを取得する最も簡単で簡単な方法だからです。
この方法では、測定する必要のある電流を小さな抵抗に流します。これにより、抵抗を流れる電流に関連する抵抗の両端で降下が発生します。この抵抗両端の電圧は、ADC変換のためにATMEGA8に供給されます。これにより、16x2LCDに表示されるデジタル値の電流が得られます。
そのために、分圧回路を使用します。完全な抵抗分岐に電流を供給します。分岐の中点が測定されます。電流が変化すると、それに線形な抵抗の低下が変化します。したがって、これにより、直線性によって変化する電圧が得られます。
ここで注意すべき重要なことは、ADC変換のためにコントローラーが受け取る入力が50µAmpと低いことです。分圧器のVoutから引き出される電流がエラー率を増加させるため、抵抗ベースの分圧器のこの負荷効果は重要です。今のところ、負荷効果について心配する必要はありません。
必要なコンポーネント
ハードウェア: ATMEGA8、電源(5v)、AVR-ISPプログラマー、JHD_162ALCD(16 * 2LCD)、100uFコンデンサ、100nFコンデンサ(4個)、100Ω抵抗(7個)または2.5Ω(2個)、100KΩ抵抗。
ソフトウェア: Atmel studio 6.1、progispまたはflashmagic。
回路図と動作説明
R2とR4の両端の電圧は完全に線形ではありません。うるさいものになります。ノイズを除去するために、図に示すように、分圧回路の各抵抗の両端にコンデンサが配置されています。
ATMEGA8では、PORTCの4つのチャネルのいずれかにアナログ入力を与えることができます。すべてが同じであるため、どのチャネルを選択してもかまいません。PORTCのチャネル0またはPIN0を選択します。ATMEGA8では、ADCの分解能は10ビットであるため、コントローラーはVref / 2 ^ 10の最小変化を検出できるため、基準電圧が5Vの場合、5/2 ^ 10 = 5mVごとにデジタル出力増分が得られます。したがって、入力が5mV増加するごとに、デジタル出力で1ずつ増加します。
次に、次の条件に基づいてADCのレジスタを設定する必要があります。
1.まず、ADCでADC機能を有効にする必要があります。
2.ADC変換の最大入力電圧は+ 5Vになります。したがって、ADCの最大値またはリファレンスを5Vに設定できます。
3.コントローラーにはトリガー変換機能があります。これは、ADCのレジスタを連続フリーランニングモードで実行するように設定する必要がないため、ADC変換が外部トリガーの後にのみ行われることを意味します。
4.どのADCでも、変換の周波数(アナログ値からデジタル値)とデジタル出力の精度は反比例します。したがって、デジタル出力の精度を高めるには、より低い周波数を選択する必要があります。通常のADCクロックの場合、ADCの先行販売を最大値(2)に設定しています。1MHZの内部クロックを使用しているため、ADCのクロックは(1000000/2)になります。
ADCを使い始めるために知っておく必要があるのはこれらの4つだけです。
上記の4つの機能はすべて、2つのレジスタによって設定されます。
赤(ADEN):このビットはATMEGAのADC機能を有効にするために設定する必要があります。
BLUE(REFS1、REFS0):これらの2ビットは、基準電圧(またはこれから与える最大入力電圧)を設定するために使用されます。基準電圧を5Vにしたいので、表でREFS0を設定する必要があります。
黄色(ADFR):ADCを継続的に実行するには、このビットを設定する必要があります(フリーランニングモード)。
PINK(MUX0-MUX3):これらの4ビットは、入力チャネルを通知するためのものです。ADC0またはPIN0を使用するため、表のようにビットを設定する必要はありません。
ブラウン(ADPS0-ADPS2):これらの3ビットは、ADCのプリスケーラを設定するためのものです。2のプリスケーラを使用しているため、1ビットを設定する必要があります。
DARK GREEN(ADSC):ADCが変換を開始するために設定されたこのビット。このビットは、変換を停止する必要があるときにプログラムで無効にすることができます。