AQM1248Aを使ったArduino用シールド2種(1)

このページをスマホなどでご覧になる場合は、画面を横長にする方が読みやすくなります。
目次へ  前のページへ (1) (2) 次のページへ
2016年06月07日 公開。
製作したシールドでゲームを動作させた例
↑ 画像をクリックすると拡大
製作したシールドでゲームを動作させた例

秋月電子で販売されている、人気の小型グラフィックLCDモジュールAQM1248Aを、Arduinoのシールドの形にして、使いやすくしてみました。AQM1248Aは3.3Vで動作するLCDモジュールですので、5VのArduinoで使用するにはレベル変換回路を付ける必要がありますが、抵抗分圧型レベル変換回路を使ったシールドと、74AHC244を用いたレベル変換回路を使ったシールドの2種類を作りました。

目次

1. 製作した2種類のシールドの特徴 … 1ページ
2. 抵抗分圧型レベル変換回路を用いたシールド … 1ページ
2-1. 回路図と部品表 … 1ページ
2-2. シールドの組み立て方 … 1ページ
2-3. 回路の説明 … 1ページ
2-4. サンプルスケッチ(落ち物ゲーム) … 1ページ
3. 74AHC244を用いたレベル変換回路を使ったシールド … 2ページ
3-1. 回路図と部品表 … 2ページ
3-2. シールドの組み立て方 … 2ページ
3-3. 回路の説明 … 2ページ
4. 組み立てたシールドの動作試験をするためのスケッチについて … 2ページ
5. LCDの画面を制御するスケッチの作り方 … 2ページ

1.製作した2種類のシールドの特徴

AQM1248Aと5V→3.3Vのレベル変換回路を搭載した、Arduino用のシールドを2種類製作しました。一方は抵抗分圧型レベル変換回路を使用しており、他方は74AHC244を用いたレベル変換回路を使用しています。それぞれのシールドの特徴を表1に示します。

表1、製作した2種類のシールドの特徴
シールドの種類 長所 短所
抵抗分圧型レベル変換回路を使ったシールド
  • レベル変換回路が抵抗だけで作れる。
  • タクトスイッチを4つ(リセット用を含めれば5つ)搭載している。
  • 5VのArduinoでしか使えない。
  • SPIヘッダの信号が使えず、ハードウェアSPI接続できない。(ただしArduino UnoならハードウェアSPI接続可能)
74AHC244を用いたレベル変換回路を使ったシールド
  • 5VのArduinoと3.3VのArduinoの両方で使える。
  • 信号を取るヘッダが、標準のヘッダとSPIヘッダから選択でき、ハードウェアSPI接続と、ソフトウェアSPI接続の両方に対応している。
  • 74AHC244がやや入手しにくい。
  • タクトスイッチはリセット用の物しかない。

参考:ハードウェアSPI接続とソフトウェアSPI接続の違いについては、ArduinoでグラフィックLCDを動かす(AQM1248A編)(3)を参照してください。

2種類のシールドをArduino Unoに装着した様子を、それぞれ写真1と写真2に示します。

写真1、抵抗分圧型レベル変換回路を使ったシールドをArduino Unoに装着した様子
↑ 画像をクリックすると拡大
写真1、抵抗分圧型レベル変換回路を使ったシールドをArduino Unoに装着した様子
写真2、74AHC244を用いたレベル変換回路を使ったシールドをArduino Unoに装着した様子
↑ 画像をクリックすると拡大
写真2、74AHC244を用いたレベル変換回路を使ったシールドをArduino Unoに装着した様子

これらのシールドを動かすスケッチは、、MGLCDライブラリおよびMGLCD_SPIライブラリを使えば簡単に作れます。詳しい話はArduinoでグラフィックLCDを動かす(AQM1248A編)(13) をご覧ください。

2.抵抗分圧型レベル変換回路を用いたシールド

ArduinoでグラフィックLCDを動かす(AQM1248A編)(4)図13に示した抵抗分圧型のレベル変換回路と、AQM1248Aと、5つのタクトスイッチ(内1つはリセット用)とを搭載したシールドを製作しました。

2-1.回路図と部品表

製作したシールドの回路図を図1に、部品表を表2に示します。

図1、抵抗分圧型レベル変換回路を使ったシールドの回路図
↑ 画像をクリックするとPDFファイルで表示
図1、抵抗分圧型レベル変換回路を使ったシールドの回路図
表2、抵抗分圧型レベル変換回路を使ったシールドの部品表
部品番号 数量 品名 型番/仕様 備考
R1~R4 4 カーボン抵抗 510Ω±5%、1/6W
R5~R8 4 カーボン抵抗 1kΩ±5%、1/6W
SW1~SW5 5 タクトスイッチ 6㎜角
CN1、CN2 2 ピンソケット 2.54mmピッチ、1×6ピン、リード長10mm
CN3、CN4 2 ピンソケット 2.54mmピッチ、1×8ピン、リード長10mm
CN5 1 丸ピンICソケット 2.54mmピッチ、7ピン、シングル
CN6 1 ピンヘッダ 1×7ピン、2.54mmピッチ 1×40ピンのピンヘッダを切断して使用。このピンヘッダは、AQM1248Aの信号線をロジックアナライザで観察するために使用する。
1 丸ピンIC連結ソケット 2.54mmピッチ、1列、7ピン 1列、14ピンの丸ピンIC連結ソケットを切断して使用。超小型グラフィックLCDピッチ変換キットをCN5に接続するのに使う。
1 ピンソケット 2.54mmピッチ、1×3ピン 超小型グラフィックLCDピッチ変換キットの固定用のスペーサとして使用する。電気的なコネクタとしては使わない。
1 LCDモジュール 超小型グラフィックLCDピッチ変換キット AQM1248A超小型グラフィックLCD用ピッチ変換基板のセット。CN5に装着。付属のピンヘッダは使わずに丸ピンIC連結ソケットを使う。
1 ユニバーサル基板 UB-ARD01WH サンハヤト製。Arduinoのシールド用。

2-2.シールドの組み立て方

製作したシールドの外観を写真3~写真5に示します。

写真3、抵抗分圧型レベル変換回路を使ったシールドの外観(上面)
↑ 画像をクリックすると拡大
写真3、抵抗分圧型レベル変換回路を使ったシールドの外観(上面)
写真4、抵抗分圧型レベル変換回路を使ったシールドの外観(下面)
↑ 画像をクリックすると拡大
写真4、抵抗分圧型レベル変換回路を使ったシールドの外観(下面)
写真5、抵抗分圧型レベル変換回路を使ったシールドの外観(側面)
↑ 画像をクリックすると拡大
写真5、抵抗分圧型レベル変換回路を使ったシールドの外観(側面)
左隅に写っているのは、基板を固定するためのクリップ。

このシールドは、丸ピンICソケットによりLCDモジュールが取り外しできる様になっています。LCDモジュールを取り外した状態の基板の写真を写真6に示します。

写真6、LCDモジュールを取り外した状態の基板
↑ 画像をクリックすると拡大
写真6、LCDモジュールを取り外した状態の基板
写真には部品番号やピン番号を記入しておいた。

シールドは、サンハヤトのUB-ARD01WHというArduinoのシールド用ユニバーサル基板を使って作りました。配線は、0.4mmのすずめっき線と0.2mmのUEW(ポリウレタン線)を使いました。(写真4と写真7を参照)

写真7、すずめっき線とUEW(ポリウレタン線)
↑ 画像をクリックすると拡大
写真7、すずめっき線とUEW(ポリウレタン線)

基本的にはユニバーサル基板上に回路図通り配線をしていけば、シールドが完成しますが、AQM1248Aの取り付けには注意が必要です。

AQM1248Aはピンピッチが1.27mmですので、直接ユニバーサル基板に実装できません。そこで超小型グラフィックLCDピッチ変換キットを使います。超小型グラフィックLCDピッチ変換キットを使うと、AQM1248Aを動かすのに必要な、数個のチャージポンプ用コンデンサやプルアップ抵抗なども、キット内に内蔵されているので、便利です。(ArduinoでグラフィックLCDを動かす(AQM1248A編)(2)を参照)

また、超小型グラフィックLCDピッチ変換キットには、7ピンのピンヘッダが付属していますが、今回はこれを使わず、7ピンの丸ピンICソケットと7ピンの丸ピンIC連結ソケットを使い、AQM1248Aをシールドから取り外せるようにしました。AQM1248AをCN5から取り外している様子を写真8に示します。

写真8、AQM1248AをCN5から取り外している様子
↑ 画像をクリックすると拡大
写真8、AQM1248AをCN5から取り外している様子

AQM1248Aを左側のヘッダだけで固定するとぐらつくので、右側を3ピンのピンソケットで支える構造にしました。このピンソケットは、単なるスペーサとして使用しており、電気的な働きはありません。(写真8参照)

写真9、AQM1248Aの右側を3ピンのピンソケットで支えている様子
↑ 画像をクリックすると拡大
写真9、AQM1248Aの右側を3ピンのピンソケットで支えている様子

AQM1248Aを取り外して、ブレッドボードでの実験にちょっと使ってみる事ができる様になり、それなりに便利ですが、シールドからAQM1248Aがかなり浮いてしまって不格好ですので、ユニバーサル基板にはんだ付けしてしまって、取り外せない構造にする方が見た目は良くなります。

CN6の7ピンのピンヘッダには、AQM1248Aの制御信号がそのまま出ています。ロジックアナライザでAQM1248Aの信号を観察するために設けてありますが、普通はCN6は必要ないでしょう。

2-3.回路の説明

レベル変換回路の構成とArduinoへの結線については、 ArduinoでグラフィックLCDを動かす(AQM1248A編)(4)図13の通りなので、特に説明が必要ないと思います。

この結線ではSPIヘッダ(ICSPヘッダ)を使用していないので、Arduino LeonardoではソフトウェアSPI接続専用になります。

Arduino Unoでは、SPIヘッダ(ICSPヘッダ)のMOSI信号とSCK信号がそれぞれ11番端子と13番端子に、Arduino基板内部で接続されているので、ハードウェアSPI接続でもソフトウェアSPI接続でも使用できます。

シールド上には、5個のタクトスイッチを設けました。SW5はリセットスイッチです。SW1~SW4は、汎用の入力用スイッチです。SW1~SW4のスイッチと、対応するArduinoの信号線の関係を表3に示します。

表3、スイッチとArduinoの信号線の対応
スイッチの番号 対応する信号線
SW1 D8
SW2 D7
SW3 D4
SW4 D2

SW1~4のスイッチをONにすると、Arduinoの信号線をGNDにショートします。プルアップ抵抗はつけていないので、スイッチの状態を読み取るには、スイッチにつながった信号線をpinMode関数でINPUT_PULLUPと宣言して、マイコンの内蔵プルアップ抵抗を有効にしておく必要があります。

2-4.サンプルスケッチ(落ち物ゲーム)

上の動画が自動的に再生されない場合は、動画をクリックしてください。

サンプルスケッチとして、AQM1248Aと4つのタクトスイッチを使った、落ち物ゲームを作りました。ダウンロードは以下のリンクからできます。

AQM1248A用落ち物ゲーム Ver. 1.00 ochimono_AQM1248A_100.zip (15kB)

このスケッチの動作には、MGLCDライブラリおよびMGLCD_SPIライブラリのVer. 0.40以降が必要です。

このスケッチは、このページで紹介している抵抗分圧型のレベル変換回路を使ったシールドでは、Arduino UnoとArduino Leonardoで動作を確認しています。

参考:レベル変換回路を使わないか、3.3V入力でも動作する様なレベル変換回路を使えば、Arduino DueやArduino M0でも動作します。

スケッチのコンパイルは、Arduino IDE 1.0.1以降を使ってください。Arduino IDE 1.6.XやArduino IDE 1.7.X(Xは任意の数)でも結構です。

注意:Arduino IDE 1.0.0はINPUT_PULLUPに対応していないので使えません。

SW1~SW4のスイッチは、表4の様に機能が割り当てられています。

表4、各スイッチへの機能の割り当て
スイッチ番号 割り当てられた機能
SW1 ブロックを左に移動する。
SW2 ブロックを右に移動する。
SW3 ブロックを回転させる。
SW4 ブロックを落下させる。

次回は、74AHC244を用いたシールドの紹介をする予定です。続きを書くのはぼちぼちと。

目次へ  前のページへ (1) (2) 次のページへ

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

関連ページ

関連製品

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