このチュートリアルでは、ジョイスティックモジュールをatmega8マイクロコントローラーとインターフェースさせます。 Aジョイスティックは、通信に使用される入力モジュールです。基本的にユーザーのマシン通信が容易になります。下の図にジョイスティックを示します。
ジョイスティックモジュールには2つの軸があります。1つは水平で、もう1つは垂直です。ジョイスティックの各軸は、ポテンショメータまたはポットまたは可変抵抗に取り付けられています。中間点はRxとRyとして下げられます。これらのピンは、ジョイスティックの出力信号ピンとして使用されます。供給電圧が存在する状態でスティックを水平軸に沿って移動すると、Rxピンの電圧が変化します。
Rxの電圧は前方に移動すると増加し、Rxピンの電圧は後方に移動すると減少します。同様に、Ryの電圧は上に移動すると増加し、Ryピンの電圧は下に移動すると減少します。
したがって、2つのADCチャネルに4つの方向のジョイスティックがあります。通常の場合、通常の状況では各ピンに1ボルトがあります。スティックを動かすと、各ピンの電圧が方向に応じてハイまたはローになります。したがって、x軸の4つの方向(チャネル0の0V、5V)。(チャネル1で0V、5V)y軸用。
ATMEGA8の2つのADCチャネルを使用して作業を行います。チャネル0とチャネル1を使用します。
必要なコンポーネント
ハードウェア: ATMEGA8、電源(5v)、AVR-ISPプログラマー、LED(4個)、1000uFコンデンサー、100nFコンデンサー(5個)、1KΩ抵抗(6個)。
ソフトウェア: Atmel studio 6.1、progispまたはflashmagic。
回路図と動作説明
ジョイスティックの両端の電圧は完全に線形ではありません。うるさいものになります。ノイズを除去するために、図に示すように、回路内の各抵抗の両端にコンデンサが配置されます。
図に示すように、回路には4つのLEDがあります。各LEDは、ジョイスティックの各方向を表します。スティックをある方向に動かすと、対応するLEDが点灯します。
先に進む前に、ATMEGA8のADCについて話す必要があります。
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が変換を開始するために設定されたこのビット。このビットは、変換を停止する必要があるときにプログラムで無効にすることができます。