ArduinoでグラフィックLCDを動かす(AQM1248A編)(13)

このページをスマホなどでご覧になる場合は、画面を横長にする方が読みやすくなります。
目次へ  前のページへ (9) (10) (11) (12) (13) (14) (15) (16) (17) 次のページへ
2016年05月21日 公開。
2016年06月03日 ダウンロードするMGLCDライブラリをVer. 0.40からVer. 0.41に変更した。

5.MGLCDライブラリを使ってAQM1248Aを制御する方法

7ページから12ページにかけて、AQM1248Aに直接コマンドやデータを送って画面描画するスケッチの作り方を説明しましたが、VRAMの構成や、各種コマンド、VRAMの二重化など、知っておくべきことが色々ありました。

AQM1248A用のライブラリを使うと、この様な細かい技術はライブラリ内に隠蔽されてしまい、スケッチの作者は、描画したい図形や文字列をライブラリに指定するだけで、簡単に描画できるようになります。

今回ご紹介するのは、MGLCDライブラリという、Arduino用のモノクログラフィックLCDモジュール制御用のライブラリです。このライブラリはAQM1248A以外にもいくつかのLCDモジュールの制御ができます。LCDモジュールの種類が変わっても、ほぼ同じスケッチで制御できるのが特徴です。

MGLCDライブラリVer 0.41でAQM1248Aを使う場合、表19に示す種類のArduinoが使用できます。対応Arduinoは、今後増える可能性があります。

表19、MGLCDライブラリVer 0.41でAQM1248Aを使う場合に使用できるArduino
8ビットArduino Arduino Uno、Arduino Leonardo、Arduino Mega 2560、Arduino Pro 328 5V 16MHz、Seeeduino V3.0(Atmega 328P)
32ビットArduino Arduino M0、Arduino Due

また、ArduinoとAQM1248Aの接続法は、ハードウェアSPI接続とソフトウェアSPI接続の両方に対応しています。

注1:ハードウェアSPI接続の場合は、対応Arduino IDEが1.6.Xと1.7.Xになります。Arduino IDE 1.0.Xは使えません。また、Arduino M0を使う場合はArduino IDE 1.7.10以降を使ってください。(Arduino IDE 1.7.9以前のArduino IDEではArduino M0のSPIライブラリに不具合があるため)

注2:ソフトウェアSPI接続の場合は、Arduino IDEの1.0.X、1.6.X、1.7.Xが利用できます。

それでは、MGLCDライブラリを使ったAQM1248Aの制御について説明します。

5-1.MGLCDライブラリのインストール方法

MGLCDライブラリは、MGLCDライブラリのページでダウンロードできます。

今回はVer. 0.41を使います。MGLCDライブラリのページの表2MGLCD_041.zipMGLCD_SPI_041.zipの2つのファイルをダウンロードしてください。

ダウンロードした2つのファイルをArduino IDEにインストールする方法は、MGLCDライブラリユーザーマニュアルに書いてありますので、そこに書いてある指示に従ってください。

広告

5-2.MGLCDライブラリを使ってHello, World! (ハードウェアSPI編)

ハードウェアSPI接続でArduinoとAQM1248Aを接続し、MGLCDライブラリを使って"Hello, World!"と表示する方法を説明します。

5-2-1.ArduinoとAQM1248Aの配線

まず、以下の説明を読んで、ArduinoとAQM1248Aを接続してください。

5-2-1-1.5VのArduinoの場合

Arduino Uno、Arduino Leonardoなど、I/O電圧が5VのArduinoを使う場合は、レベル変換回路が必要になります。4ページ5ページ、および6ページを読んで、配線を行ってください。

具体的には図12(抵抗分圧を使う方法)、図32(74AHC244を使う方法)、図35(HD74LVC541などを使う方法)、図38(74HC4050を使う方法)のいずれかで、配線を行ってください。どの方法が良いかは、手持ちの部品や、部品を購入する場合は部品の入手しやすさ、半田付けのしやすさ(図35では表面実装部品を使う)などを考慮して決めてください。

これらの図を再掲します。

図12(再掲)、抵抗分圧型レベル変換回路を使ってAQM1248Aを5V動作のArduinoに接続する場合の配線図(ハードウェアSPI)
↑ 画像をクリックすると拡大
図12(再掲)、抵抗分圧型レベル変換回路を使ってAQM1248Aを5V動作のArduinoに接続する場合の配線図(ハードウェアSPI)
図32(再掲)、74AHC244を使ってAQM1248Aを5V動作のArduinoに接続する場合の配線図(ハードウェアSPI)
↑ 画像をクリックすると拡大
図32(再掲)、74AHC244を使ってAQM1248Aを5V動作のArduinoに接続する場合の配線図(ハードウェアSPI)
図35(再掲)、HD74LVC541A/HD74LV541A/TC74VHC541FTを使ってAQM1248Aを5V動作のArduinoに接続する場合の配線図(ハードウェアSPI)
↑ 画像をクリックすると拡大
図35(再掲)、HD74LVC541A/HD74LV541A/TC74VHC541FTを使ってAQM1248Aを5V動作のArduinoに接続する場合の配線図(ハードウェアSPI)
図38(再掲)、74HC4050を使ってAQM1248Aを5V動作のArduinoに接続する場合の配線図(ハードウェアSPI)
↑ 画像をクリックすると拡大
図38(再掲)、74HC4050を使ってAQM1248Aを5V動作のArduinoに接続する場合の配線図(ハードウェアSPI)
5-2-1-2.3.3VのArduinoの場合

Arduino M0、Arduino Dueなど、I/O電圧が3.3VのArduinoの場合は、レベル変換回路が不要で、ArduinoとAQM1248Aを直結できます。3ページの説明を読んで配線を行ってください。

3ページに載っている配線図(図6)を再掲します。

図6(再掲)、AQM1248Aを3.3V動作のArduinoと接続する場合の配線図(ハードウェアSPI)
↑ 画像をクリックすると拡大
図6(再掲)、AQM1248Aを3.3V動作のArduinoと接続する場合の配線図(ハードウェアSPI)

5-2-2.Hello, World!のスケッチ

次に、"Hello, World!"を表示するスケッチを入力します。Arduino IDEを起動して、リスト26を入力してください。

リスト26、MGLCDライブラリを用いたHello, World! (ハードウェアSPI接続)COPY
#include <MGLCD.h>
#include <MGLCD_SPI.h>
#include <SPI.h>

#define CS_PIN 10
#define DI_PIN  9
#define MAX_FREQ (1000*1000L)

MGLCD_AQM1248A_SPI MGLCD(MGLCD_SpiPin2(CS_PIN, DI_PIN), MAX_FREQ);

void setup() {
  MGLCD.Reset();
  MGLCD.print("Hello, World!");
}

void loop() {
}

このスケッチを実行すると、AQM1248Aの画面に"Hello, World!"と表示されます。その時の画面を写真33に示します。

写真33、AQM1248Aの画面に表示された"Hello, World!"
↑ 画像をクリックすると拡大
写真33、AQM1248Aの画面に表示された"Hello, World!"

リスト26のスケッチの動作の仕組みなどは、次のページで説明します。

5-3.MGLCDライブラリを使ってHello, World! (ソフトウェアウェアSPI編)

ソフトウェアSPI接続でArduinoとAQM1248Aを接続し、MGLCDライブラリを使って"Hello, World!"と表示する方法を説明します。

5-3-1.ArduinoとAQM1248Aの配線

まず、以下の説明を読んで、ArduinoとAQM1248Aを接続してください。

5-3-1-1.5VのArduinoの場合

Arduino Uno、Arduino Leonardoなど、I/O電圧が5VのArduinoを使う場合は、レベル変換回路が必要になります。4ページ5ページ、および6ページを読んで、配線を行ってください。

具体的には図13(抵抗分圧を使う方法)、図33(74AHC244を使う方法)、図36(HD74LVC541などを使う方法)、図39(74HC4050を使う方法)のいずれかで、配線を行ってください。どの方法が良いかは、手持ちの部品や、部品を購入する場合は部品の入手しやすさ、半田付けのしやすさ(図35では表面実装部品を使う)などを考慮して決めてください。

これらの図を再掲します。

図13(再掲)、抵抗分圧型レベル変換回路を使ってAQM1248Aを5V動作のArduinoに接続する場合の配線図(ソフトウェアSPI)
↑ 画像をクリックすると拡大
図13(再掲)、抵抗分圧型レベル変換回路を使ってAQM1248Aを5V動作のArduinoに接続する場合の配線図(ソフトウェアSPI)
図33(再掲)、74AHC244を使ってAQM1248Aを5V動作のArduinoに接続する場合の配線図(ソフトウェアSPI)
↑ 画像をクリックすると拡大
図33(再掲)、74AHC244を使ってAQM1248Aを5V動作のArduinoに接続する場合の配線図(ソフトウェアSPI)
図36(再掲)、HD74LVC541A/HD74LV541A/TC74VHC541FTを使ってAQM1248Aを5V動作のArduinoに接続する場合の配線図(ソフトウェアウェアSPI)
↑ 画像をクリックすると拡大
図36(再掲)、HD74LVC541A/HD74LV541A/TC74VHC541FTを使ってAQM1248Aを5V動作のArduinoに接続する場合の配線図(ソフトウェアウェアSPI)
図39(再掲)、74HC4050を使ってAQM1248Aを5V動作のArduinoに接続する場合の配線図(ソフトウェアSPI)
↑ 画像をクリックすると拡大
図39(再掲)、74HC4050を使ってAQM1248Aを5V動作のArduinoに接続する場合の配線図(ソフトウェアSPI)
5-3-1-2.3.3VのArduinoの場合

Arduino M0、Arduino Dueなど、I/O電圧が3.3VのArduinoの場合は、レベル変換回路が不要で、ArduinoとAQM1248Aを直結できます。3ページの説明を読んで配線を行ってください。

3ページに載っている配線図(図7)を再掲します。

図7(再掲)、AQM1248Aを3.3V動作のArduinoと接続する場合の配線図(ソフトウェアSPI)
↑ 画像をクリックすると拡大
図7(再掲)、AQM1248Aを3.3V動作のArduinoと接続する場合の配線図(ソフトウェアSPI)

5-3-2.Hello, World!のスケッチ

次に、"Hello, World!"を表示するスケッチを入力します。Arduino IDEを起動して、リスト27を入力してください。

リスト27、MGLCDライブラリを用いたHello, World! (ソフトウェアSPI接続)COPY
#include <MGLCD.h>

#define SCK_PIN  13
#define MOSI_PIN 11
#define CS_PIN   10
#define DI_PIN    9
#define WAIT      0

MGLCD_AQM1248A_SoftwareSPI MGLCD(MGLCD_SpiPin4(SCK_PIN, MOSI_PIN, CS_PIN, DI_PIN),WAIT);

void setup() {
  MGLCD.Reset();
  MGLCD.print("Hello, World!");
}

void loop() {
}

このスケッチを実行すると、AQM1248Aの画面に"Hello, World!"と表示されます。その時の画面を写真33に示します。

写真33(再掲)、AQM1248Aの画面に表示された"Hello, World!"
↑ 画像をクリックすると拡大
写真33(再掲)、AQM1248Aの画面に表示された"Hello, World!"

リスト27のスケッチの動作の仕組みなどは、次のページで説明します。

次のページでは、MGLCDライブラリでスケッチを作るのに必ず必要になる、ヘッダファイルのインクルード、オブジェクト変数の宣言、およびAQM1248Aの初期化について説明します。

目次へ  前のページへ (9) (10) (11) (12) (13) (14) (15) (16) (17) 次のページへ

このページで使われている用語の解説

関連ページ

関連製品

122X32モノクログラフィックLCDシールド 商品名 122X32モノクログラフィックLCDシールド
税抜き小売価格 3333円
販売店 スイッチサイエンス
サポートページ
GLCD学習シールドキット 商品名 GLCD学習シールドキット
税抜き小売価格 1410円
販売店 スイッチサイエンス
サポートページ
Arduino 電子工作
このサイトの記事が本になりました。
書名:Arduino 電子工作
ISBN:978-4-7775-1941-5
工学社の書籍の内容の紹介ページ
本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。