このチュートリアルでは、4x4(16キー)キーパッドをATMEGA32Aマイクロコントローラーとインターフェースします。キーパッドは、エレクトロニクスプロジェクトで使用される最も重要な入力デバイスの1つであることを私たちは知っています。キーパッドは、電子システムにコマンドや指示を与える最も簡単な方法の1つです。
必要なコンポーネント
ハードウェア: ATMEGA32、電源(5v)、AVR-ISPプログラマー、JHD_162ALCD(16 * 2LCD)、100uFコンデンサ、100nFコンデンサ、10KΩ抵抗(8個)。
ソフトウェア: Atmel studio6.1またはAtmelstudio 6.2、progispまたはflashmagic。
回路図と動作説明
回路では、ATMEGA32のPORTBがデータポートLCDに接続されています。ここで、PORTCを通常の通信ポートとして使用したい場合は、ヒューズバイトを変更してPORTCまたはATMEGAのJTAG通信を無効にすることを忘れないでください。 16x2 LCDでは、バックライトがある場合は全体で16ピン、バックライトがない場合は14ピンになります。バックライトピンに電力を供給するか、そのままにしておくことができます。 14ピンには8つのデータピン(7-14またはD0-D7)、2つの電源ピン(1&2またはVSS&VDDまたはgnd&+ 5v)、コントラスト制御用の3番目のピン(VEE-文字の太さを制御します)があります。示されている)、および3つの制御ピン(RS&RW&E)。
回路では、2つの制御ピンしか使用していないことがわかります。これにより柔軟性が得られ、コントラストビットとREAD / WRITEはあまり使用されないため、グランドに短絡できます。これにより、LCDが最高のコントラストと読み取りモードになります。ENABLEピンとRSピンを制御して、それに応じて文字とデータを送信する必要があります。
LCD用に行われる接続を以下に示します。
PIN1またはVSSをアースに接続
PIN2またはVDDまたはVCCから+ 5v電源
PIN3またはVEEを地面に接続(初心者に最適な最大のコントラストを提供)
PIN4またはRS(レジスタ選択)をuCのPD6に
PIN5またはRW(読み取り/書き込み)をグランドに接続(LCDを読み取りモードにすると、ユーザーの通信が容易になります)
PIN6またはE(有効)からuCのPD5
uCのPIN7またはD0からPB0
uCのPIN8またはD1からPB1
uCのPIN9またはD2からPB2
uCのPIN10またはD3からPB3
uCのPIN11またはD4からPB4
uCのPIN12またはD5からPB5
uCのPIN13またはD6からPB6
uCのPIN14またはD7からPB7
回路では8ビット通信(D0-D7)を使用していることがわかりますが、これは必須ではなく、4ビット通信(D4-D7)を使用できますが、4ビット通信プログラムでは少し複雑になります。したがって、上記の表を単に観察するだけで、LCDの10ピンをコントローラーに接続します。8ピンはデータピンで、2ピンは制御用です。
次に、キーパッドについて説明します。キーパッドは多重化されたキーに他なりません。ボタンは多重化された形で接続され、制御システムのピン使用量を削減します。
4x4のキーパッドがあるとします。このキーパッドには16個のボタンがあり、通常は16個のボタンをインターフェイスするために16個のコントローラーピンが必要ですが、これは制御システムの観点からは適切ではありません。ボタンをマルチプレックス形式で接続することにより、このピン使用量を減らすことができます。
たとえば、16個のボタンがあり、それをコントローラーに接続してキーパッドを形成するとします。これらのキーは、図に示すように配置されています。
これらのボタンは、図に示すように共通の列で接続されています。
図に示すように、4つのボタンごとにマークされていない端をドラッグして列を形成するため、16個のキーに対して4つの列があります。
上記の列の接続を忘れて、4つのボタンごとに共通のマークされた端を接続して行を形成した場合:
図に示すように、16個のキーの場合、図に示すように4つの行があります。
両方を一緒に見ると、次のような回路になります。
ここでは、コントローラーのピン使用量を減らすために、16個のキーを多重化された形式で接続しました。接続された16キーの最初のケースと比較すると、コントローラーに16ピンが必要でしたが、多重化後、16キーを接続するために必要なコントローラーは8ピンだけです。
通常、これはキーパッド内に表示されるものです。
上の図に示すように、上のキーパッドには16個のキーがあり、これらの各キーは多重化ボタン構成のボタンを表しています。また、上の図に示すように、多重化接続を表す8ピン接続があります。
今働くために:
ここのキーパッドには4つの列と4つの行があり、押されたボタンを識別するために、相互参照方法を使用します。ここでは、最初にすべての列またはすべての行をvccに接続するため、行が共通のvccに接続されている場合は、列をコントローラーへの入力として使用します。
ここで、図に示すようにボタン1を押すと、次のようになります。
その後、下の図に示すように、回路に電流が流れます。
つまり、ボタンを押すためのC1が高くなっています。この瞬間に、電源ポートと入力ポートをシフトします。つまり、列に電力を供給し、行を入力として受け取ります。
これにより、下の図に示すような電力の流れが発生します。
したがって、行にはR1が高くなります。
現在のところ、最初のケースではC1が高く、2番目のケースではR1が高いため、ボタンのマトリックス位置があり、番号は「1」です。
2番目のボタンを押すと、列としてC1が使用されますが、共通の列で取得される上位ロジックは「R2」になります。したがって、C1とR2があり、2番目のボタンのマトリックス位置があります。
これがプログラムの書き方です。8ピンのキーパッドを8ピンのコントローラーに接続します。そして、最初に、4列のキーパッドに電力を供給するためにコントローラーの4つのピンに電力を供給します。この時点で、他の4つのピンは入力として使用されます。ボタンを押すと、対応する列ピンが引き上げられ、コントローラーピンが引き上げられます。これは、入力を電源に、電源を入力に変更するために認識されるため、入力として行があります。
これにより、ユーザーがボタンを押すことができます。このマトリックスアドレスは対応する番号に向けられ、この番号はLCDに表示されます。
avrマイクロコントローラーとインターフェースするキーパッドの動作は、以下に示すCコードで段階的に説明されています。また、チェックすることもできます:8051マイクロコントローラーとインターフェースするキーパッド。