AQM1248Aは128×48ピクセルで画像表示できる安価な小型液晶ボードです。Raspberry Pi PicoからはSPI通信を利用して制御することができます。本稿ではRaspberry Pi PicoからAQM1248Aに”hello world!”と表示してみたいと思います。
使用する電子部品
本稿で使用するのはラズパイピコとAQM1248Aのみです。AQM1248Aの電極は1.27mmピッチで、そのままでは扱いにくいため、ピッチ変換キット(AE-AQM1248A)を使用しています。LCDモジュールの動作に必要なコンデンサが基板に実装されており、2.54mmのピッチに変換されます。
電子部品 | 個数 | 備考 |
![]() | 1個 | Raspberry Pi Pico |
![]() | 1個 | AE-AQM1248A AE-AQM1248Aは、AQM1248Aにピッチ変換キットが付属したものです。変換キットには自分でハンダ付けするのですが、AQM1248Aの電極は1.27mmピッチなので、ちょっと細かい作業になります。 |
配線図
AE-AQM1248Aを使う場合、各電極の内容は以下の通りです。ピコとAE-AQM1248Aの通信には、SPI(Serial Peripheral Interface)を使います。
番号 | 名称 | ラズパイピコへの接続先 |
1 | VDD | 3.3V電源です。ピコの36番ピン(3.3V(OUT))に接続します。 |
2 | CS | チップセレクト(マスターとスレーブを決定する)です。ピコの2番ピン(SPI0 CSn)に接続します。 |
3 | RESET | 本稿ではつないでいません。 |
4 | RS | ピコの適当なGPIOに接続します。本稿ではピコの32番ピン(GP27)に接続します。 |
5 | SCLK | シリアルクロック(SPI通信のタイミングを制御する)です。ピコの4番ピン(SPI0 SCK)に接続します。 |
6 | SDI | データ送信用(MOSI=Master-Out, Slave-In)のピンです。ピコの5番ピン(SPI0 TX)に接続します。 |
7 | GND | グランドです。本稿ではピコの28番ピンに接続しました。 |
ピン番号だと分かりづらいですね。下記のように配線しています。

ちなみに上記のfritzingのAE-AQM1248のパーツは現物を見ながら自分で描いてみました。折角なので公開します。
MicroPythonのコード
AE-AQM1248Aの利用にはGitHubに公開されているこちらのライブラリにある、fonts.py, aqm1248chrlcd.py, aqm1248largechrlcd.py, aqm1248midchrlcd.pyを使います。これらのファイルをRaspberry Pi Picoにコピーし、以下のコードで表示します。
import machine
import aqm1248chrlcd
#import aqm1248midchrlcd
#import aqm1248largechrlcd
hspi = machine.SPI(0)
lcd = aqm1248chrlcd.ChrLcd( hspi, cs_pin=1, rs_pin=27)
#lcd = aqm1248midchrlcd.MidChrLcd( hspi, cs_pin=1, rs_pin=27)
#lcd = aqm1248largechrlcd.LargeChrLcd( hspi, cs_pin=1, rs_pin=27)
#画面表示をクリア
lcd.clear()
#画面に文字列を表示
lcd.write( 'hello world!' )
aqm1248chrlcd、aqm1248midchrlcd、aqm1248largelcdの順で、表示される文字列が大きくなります。表示させる内容に応じて文字サイズを変えれば良いです。
コメント