IchigoJamで有機ELキャラクタディスプレイモジュールを制御
IchigoJamで秋月電子で販売されている有機ELキャラクタディスプレイモジュールを
制御してみました(型番はSO1602AWWB-UC-WB-Uという製品)。
IchigoJamのファームウェアは1.2.1を使っています。
IchigoJamからはI2C接続にて制御しています。
さすが有機EL、表示が綺麗ですね。
この有機ELキャラクタディスプレイモジュール(以後長いのでOLEDと略)の使い方は
製品ページリンクのデータシートよりも、製品についてる説明書(日本語)の方が分かり
易いです。
結線
製品についてる説明書の「マイコンとの接続例」に従って結線するだけです。
プログラムソース
1 'OLED Character Display DEMO
10 CLV
20 GSB @ショキカ
30 [0]="IchigoJam World"
40 [1]="ネ・コ・ニ・コ・ン・バ・ン・ワ"
50 X=0:Y=0:S=[0]:GSB @ヒョウジ
60 X=0:Y=1:S=[1]:GSB @ヒョウジ
70 END
500 @ショキカ
510 POKE #700,0,1,2,#C,1,#40
520 FOR M=#701 TO #704
530 R=I2CW(#3C,#700,1,M,1)
540 NEXT
550 RTN
600 @ヒョウジ
610 L=LEN(S)
620 POKE#706,#80+Y*32+X
630 R=I2CW(#3C,#700,1,#706,1)
640 FOR I=0 TO L-1
650 R=I2CW(#3C,#705,1,S+I,1)
660 NEXT
670 RTN
プログラムはわりと短めですね。使いやすいモジュールです。
(GSBはGOSUBの省略形、RTNはRETURNの省略形です)
簡単な解説
OLEDの利用のために2つのサブルーチン(GOSUBで呼び出し)を定義しています。
初期化処理(500行 @ショキカ)と、表示処理(600行 @ヒョウジ)です。
・初期化処理(500行 @ショキカ)
OLED対する命令は2バイト構成(コマンドコード+データ)です。
510行でそのコマンドとデータをメモリ上に定義しています。
520行~540行でそのデータをI2Cアドレス#3CのOLEDに送っています。
具体的には
#00, #01 : Clear Display (表示部をクリア)
#00, #02 : Return Home (カーソル位置を先頭に移動)
#00, #0C : Send Display on command (表示ON、カーソル表示なし)
#00, #01 : Clear Display (表示部をクリア、取りあえず説明書通りにもう一度クリア)
という4つの命令を送っています。
・表示処理(600行 @ヒョウジ)
引数(値を渡す変数)としてS、X、Yを使用しています。
表示位置横 X(0~15)
表示位置縦 Y(0~1)
610行が表示する文字列の長さを変数Lに設定、
620行が表示位置アドレス (OLEDの内部アドレス)をメモリアドレス#706に設定
しています。630行でその表示位置をOLEDに送信しています。
具体的には次の2バイトを送信しています。
#00, #80+表示位置アドレス(=#80+Y*32+X) : Set DDRAM Address
表示を行っています。
これらのサブルーチンを10行から70行で利用しています。
« LPC810を使ったUART-I2Cブリッジの機能拡張の検討中 | トップページ | LPC810を使ったUART-I2Cブリッジの改良版が出来ました »
「IchigoJam」カテゴリの記事
- Ichigojam Rが届きました(2021.02.05)
- β版 IchigoJam Rを予約注文しました(2021.01.23)
- IchigoJamのファームウェア 1.4.1が正式に公開されました(2019.12.10)
- 「ichigoツール」をGithubにて公開しました(2019.11.09)
- ichigojamのファームウェアを1.4b13にアップデートしました(2019.11.06)
「表示器制御関連」カテゴリの記事
- NeoPixel(WS2812B)の制御 その5(2024.09.15)
- Arduino用 美咲フォントライブラリを更新しました(2024.03.21)
- Raspberry Pi Pico(MicroPython)でLEDドットマトリックスを使ってみる(2024.03.14)
- Raspberry Pi Pico MicroPython用のマルチフォントライブラリ(2023.02.09)
- MicroPython(Raspberry Pi pico)で8x8ドットNeoPixcel文字表示(2023.02.08)
« LPC810を使ったUART-I2Cブリッジの機能拡張の検討中 | トップページ | LPC810を使ったUART-I2Cブリッジの改良版が出来ました »
コメント