2012年1月11日水曜日

USB Host Shield と LCD (GPIO 接続)


先日紹介した USB Host Shield Library 2.0 ですが、最新アップデートで Arduino 1.0 IDE に対応しました! 今後はArduino 1.0 IDE でADK 開発を行なう事が出来ます。

今回は以前のバージョンのライブラリを使った記事です。
Arduino IDE は0023 です。

Sparkfun の USB Host Shield は、Arduino のI/O ピン D13,D12,D11,D10, D9, D8, D7 を使っています。
このうち、D8, D7 はハードウェアを修正することで開放できます。(こちらの記事を参照してください。)

キャラクタ LCDモジュールを使用するには、通信モードによりますが、最低でも6pin 必要です。


USB Host Shield と標準 LCD ライブラリを組み合せて使う事に、大きな問題は無いのですが、
Arduino Uno を使った場合、この 2つだけで半分以上のI/Oピンを使用してしまいます。


使用可能なピンを増やすには、Arduino MEGA を使うのが手っ取り早いのですが、Sparkfun のUSB Host Shield は Arduino MEGA に対応していません。この問題の対処方法は次回紹介します。

今回は、USB Host Shield 上にある、GPIO を使って液晶モジュールを動作させる方法を紹介します。
USB Host Shield の開発元サイトである、Circuits@Home の記事を参考にしました。

実は、USB Host Shield のライブラリに、Max_LCD.h というファイルがありますが、これが、Max3421e のGPIO を使ったLCD のライブラリ(のヘッダ)になります。

使い方はほぼ、標準ライブラリの LiquidCrystal.h と同じです。
LiquidCrystal では、初期化時に使用するピン番号を指定しますが、

Max_LCD ではピンが固定なので、
GPOUT 2 > RS
GPOUT 3 > Enable
GPOUT 4 > D4
GPOUT 5 > D5
GPOUT 6 > D6
GPOUT 7 > D7
となっています。

後は LCD モジュールの +5V, GND, コントラスト, R/W(GND 固定) を接続すればOK です。
LCD モジュールについて詳しくは、この記事を参照して下さい。

この記事で紹介した3つのモジュールはこの方法で制御できました。
Max3421e は3.3V で動作しているため、本来は3.3V 用の LCDモジュールが必要です。
今回は信号線がすべて3.3V出し → 5V 受け のため、問題はありません。5V の信号をMax3421e に入力しないよう、注意してください。

USB Host Shield Library 2.0 にも、同様のファイルがあるのですが、まだ上手く動作させる事ができていません。
現時点でこの機能を使う場合は、旧バージョンを使う方が良いでしょう。



0 件のコメント:

コメントを投稿