フォト
2025年4月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      
無料ブログはココログ

« LPC810を使ったUART-I2Cブリッジの機能拡張の検討中 | トップページ | LPC810を使ったUART-I2Cブリッジの改良版が出来ました »

2016年7月16日 (土)

IchigoJamで有機ELキャラクタディスプレイモジュールを制御

IchigoJamで秋月電子で販売されている有機ELキャラクタディスプレイモジュール
制御してみました(型番はSO1602AWWB-UC-WB-Uという製品)。
IchigoJamのファームウェアは1.2.1を使っています。

IchigoJamからはI2C接続にて制御しています。

Dscn5417

さすが有機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

プログラムはわりと短めですね。使いやすいモジュールです。
GSBGOSUBの省略形、RTNRETURNの省略形です)

簡単な解説

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行 @ヒョウジ)
  引数(値を渡す変数)としてSXYを使用しています。

     表示する文字列  S(文字列)
     表示位置横        X(0~15)
     表示位置縦        Y(0~1)
 
  610行が表示する文字列の長さを変数Lに設定、
  620行が表示位置アドレス (OLEDの内部アドレス)をメモリアドレス#706に設定
  しています。630行でその表示位置をOLEDに送信しています。
  具体的には次の2バイトを送信しています。
    #00, #80+表示位置アドレス(=#80+Y*32+X) : Set DDRAM Address
  表示アドレスは1行目が#00~#0F(左→右)、2行目が#20~#2F(左→右)となります。
  640行~660行が変数Sから1文字づつ文字を取り出して、OLEDに送信して
  表示を行っています。

これらのサブルーチンを10行から70行で利用しています。




« LPC810を使ったUART-I2Cブリッジの機能拡張の検討中 | トップページ | LPC810を使ったUART-I2Cブリッジの改良版が出来ました »

IchigoJam」カテゴリの記事

表示器制御関連」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: IchigoJamで有機ELキャラクタディスプレイモジュールを制御:

« LPC810を使ったUART-I2Cブリッジの機能拡張の検討中 | トップページ | LPC810を使ったUART-I2Cブリッジの改良版が出来ました »