ボクにもわかる
IchigoJam用
I2Cキャラクタ液晶LCDの接続方法 Ver.1

[IchigoJam メニューへ戻る]

I2Cキャラクタ液晶の接続例 (右下はIchigoJam BASICを書き込んだマイコンボード)

最新版はこちら

 ここでは秋月電子で売られているI2C接続小型キャラクタLCDモジュール用ピッチ変換キットAE-AQM0802をIchigoJamに接続する方法について説明します。また、後半では通常のHD44780を使った液晶との接続方法について述べます。
 さらに、I2C-パラレル変換インタフェースPCF8574を使用した液晶についてはブログ(I2C接続の20桁x4行の液晶にIchigoJamを接続する )を、I2Cインタフェースについてのより詳しい情報については「ボクにもわかる I2C(IIC) インタフェース方式」を>ご覧ください。

液晶の種類
タイプ 主要な商品 I2C部 LCD部 備考
1 AQM0802A-RN-GBW, AQM1602A ST7032 本ページ内サンプルA
2 SC1602BS-B(HD44780互換) なし HD44780 本ページ内サンプルBとC
3 I2C変換ボードつきLCD PCF8574 HD44780 ブログを参照

I2C液晶 AE-AQM0802A-RN-GBW, AQM1602A

 液晶モジュールのクロックSCLをIchigoJamのEX1に、データSDAをIN3に、電源VDD、VSSをそれぞれVCCとGNDに接続します。クロックとデータ信号にはプルアップ抵抗も必要です。下図に回路図を示します。液晶との接続以外の回路は省略してあります。


I2Cキャラクタ液晶の接続回路図(LCD接続以外の回路は省略)

 下図はIchigoJam用に自作した基板に、I2C液晶を接続して動かした時の様子です。もちろん純正のIchigoJamでも同様に動かすことが出来ます。


I2Cキャラクタ液晶の接続例

 接続したら、デモソフトを動かしてみましょう。

I2C液晶用デモソフト download/CQ_DEMO.zip


YouTube 動画(音が出ます)

秋月電子 I2C小型液晶 AE-AQM0802 用ドライバ

 下記のプログラムA1はメインプログラムと組み合わせて使用するドライバ部です。容量節約のためにプログラムが読みにくくなっていますが、解読していただく必要はありません。たいていの場合、コピーして使っていただくだけで良いと思います。

使い方:
 gosub 800でI2C液晶を初期化します。初期化時に送信するコマンドは最小限のコマンドに絞っています。通信中にエラーが発生した場合などには、うまく初期化できない状態になる場合があります。その場合は、一度、I2C液晶の電源を切ってから再起動してください。
 gosub 900でテレビの左上の8桁×2行をI2C液晶に転送します。つまり画面の左上の一部分だけを使ったプログラムを作成し、行番号900を呼び出せば、I2C液晶に文字を表示することができるというからくりです。なお、IchigoJam BASICのバージョン1.0.1と1.1.1で動作確認を行いました。

プログラムA1 I2C LCD Driver for ichigojam
rem I2C LCD Driver for IchigoJam
rem CC BY (c) 2015 Wataru KUNINO @ IchigoJam-FAN(facebook)
rem https://bokunimo.net/bokunimowakaru/q/15/

800 'LCD INIT
810 poke#700,64,0,2,#C0,57,17,#70,86,#6C,56,12
820 ifi2cw(62,#701,1,#704,5)?"E"
830 wait12
840 ifi2cw(62,#701,1,#709,2)?"E"
900 'LCD OUT
910 ifi2cw(62,#701,1,#702,1)+i2cw(62,#700,1,#900,8)+i2cw(62,#701,1,#703,1)+i2cw(62,#700,1,#920,8)?"E"
920 return


 また印刷可能なQRコードでも配布します。配布物、出版物などにご利用いただけます。QRコードはデンソーウェーブの登録商標であり、さらに同社は買い取ったものも含めて多数の特許権を有していますが、生成したQRコードの配布は商用を含めて誰もが自由に行うことが出来ます。


I2C液晶ドライバ部

 次にI2C液晶のサンプルプログラムA2を紹介します。キーボードから入力した文字(キャラクタ)および文字コードをテレビ画面とI2C液晶画面に表示します。独自キャラクタなどテレビに表示される文字と液晶に表示される文字とで異なるので確認のための実用的なプログラムです。

プログラムA2 II2C LCD Example for IchigoJam
rem I2C LCD Example for IchigoJam
rem CC BY (c) 2015 Wataru KUNINO @ IchigoJam-FAN(facebook)
rem https://bokunimo.net/bokunimowakaru/q/15/

100 cls:?"LCD DEMO"
110 gosub 800
200 'MAIN
210 I=INKEY():if I=0 goto 210
220 lc 0,1:?I;"[";chr$(I);"] "
230 gosub 900:goto 200

800 'LCD INIT
810 poke#700,64,0,2,#C0,57,17,#70,86,#6C,56,12
820 ifi2cw(62,#701,1,#704,5)?"E"
830 wait12
840 ifi2cw(62,#701,1,#709,2)?"E"
900 'LCD OUT
910 ifi2cw(62,#701,1,#702,1)+i2cw(62,#700,1,#900,8)+i2cw(62,#701,1,#703,1)+i2cw(62,#700,1,#920,8)?"E"
920 return

 ところで、このドライバの行番号820などに「ifi2cw」という命令のようなものがあります。これは「if」と「i2cw」を続けて表記したため新しい命令に感じただけで、単なる「if」分です。I2Cの応答が無かった場合は「エラー」の「E」をテレビに表示します。

本ドライバが使用するメモリマップ#700〜#70A
Address[11] Functions[5]
#700 com_SendDisplayData[1]={0x00}
#701 com_SettingLCD[1]={0x40}
#702 LcdCls[1]={0x02}
#703 LcdHome[1]={0xC0}
#704-#70A LcdInitData[7]={0x39,0x11,0x70,0x56,0x6C,0x38,0x0C}

プログラムA3 液晶ゲーム JUMPING KING LCD

 この液晶ゲームはIchigoJam-FAN(Facebook)の斎藤史郎さんがゲームの作り方として紹介されたジャンプゲームを液晶用に移植したものです。
 キャラクタ「−」を操作し、右から左へ迫ってくる「.」を方向キーのジャンプで避けます。ここではジャンプ中の空中移動も可能です。

JUMPING KING LCD
' CC BY (c) 2015 Wataru KUNINO @ IchigoJam-FAN(facebook)
' https://bokunimo.net/bokunimowakaru/q/15/
cls:new
1 'JUMPING KING LCD
10 CLS:BEEP:GOSUB 800
20 X=2:'ヨコ
30 Y=0:'タテ
40 P=0:'テンスウ
50 D=0:'ソクド
60 LET [0],95,45,95,45,255
100 'GAME
110 GOSUB 700:'Key
120 IF K=1 AND X>0 THEN X=X-1
130 IF K=2 AND X<7 THEN X=X+1
140 IF K/2=1 AND Y=0 THEN D=1
150 Y=Y+D:W=W+1
160 if Y=3 then D=-1:P=P+1
170 if Y=0 then D=0
180 IF W<5-P/5 GOTO 210
190 SCROLL 3:W=0
200 IF RND(8)=0 LC 7,1:? "."
210 T=VPEEK(X,Y<2)
220 IF T=46 GOTO 400
230 LC 5,0:?" ";P
240 LC X,Y<2:? CHR$([Y])
250 GOSUB 900
260 LC X,Y<2:? CHR$(T)
270 GOTO 100
400 'END
410 LC X,1:? "X":GOSUB 900
420 BEEP 50
430 GOSUB 700:IF K<5 GOTO 430
440 IF K=7 CLS:END
450 GOTO 1

700 'KEYPAD
710 K=inkey():letK,K&3+1:return
800 'LCD INIT
810 poke#700,64,0,2,#C0,57,17,#70,86,#6C,56,12
820 ifi2cw(62,#701,1,#704,5)?"E"
830 wait12
840 ifi2cw(62,#701,1,#709,2)?"E"
900 'LCD OUT
910 ifi2cw(62,#701,1,#702,1)+i2cw(62,#700,1,#900,8)+i2cw(62,#701,1,#703,1)+i2cw(62,#700,1,#920,8)?"E"
920 return



テレビにも表示する

 次は液晶と同じ文字をテレビに拡大表示するプログラムです。以下の行番号700台がテレビ表示用のドライバです。ただし、テレビ表示の方は表示が完了するまでに30秒ほどの時間を要するので少なくともゲームには使用できません。温度や湿度センサーの表示、時刻表示など30秒の表示遅延が生じても問題が無いような用途で利用することができるでしょう。

プログラムA4 II2C LCD Example for IchigoJam
rem I2C LCD Example for IchigoJam
rem CC BY (c) 2015 Wataru KUNINO @ IchigoJam-FAN(facebook)
rem https://bokunimo.net/bokunimowakaru/q/15/

1 'I2C LCD + TV
2 CLS
10 ?"IchigoJm"
20 ?"LCD + TV"
30 gosub 800
40 gosub 700
50 end

700 'TV
710 lc0,5:forY=0to15:forX=0to31:Z=X%4:ifZgoto730
720 C=vpeek(X/4,Y/8):ifCletC,peek(C*8+Y%8)
730 D=C>>(6-Z*2):D=D&3:ifD=0?" ";
740 ifD=1?chr$(#8A);
750 ifD=2?chr$(#85);
760 ifD=3?chr$(#8F);
770 next:next:return

800 'LCD INIT
810 poke#700,64,0,2,#C0,57,17,#70,86,#6C,56,12
820 ifi2cw(62,#701,1,#704,5)?"E"
830 wait12
840 ifi2cw(62,#701,1,#709,2)?"E"
900 'LCD OUT
910 ifi2cw(62,#701,1,#702,1)+i2cw(62,#700,1,#900,8)+i2cw(62,#701,1,#703,1)+i2cw(62,#700,1,#920,8)?"E"
920 return

テレビ表示部の参考資料:(facebook)IchigoJam-FAN 2015/5/4 19:05 志賀様による投稿プログラム


テレビ表示ドライバ部

AE-AQM1602Aに表示する

 同じI2C対応LCDドライバを使用した液晶の中に16桁×2行表示のタイプのものもあります。LCDドライバICは同じものが使われているので、使用するコマンドは同じです。以下に変更点を示します。転送するデータ数が変わっただけです。

16桁×2行のAQM1602Aに対応する方法
910 ifi2cw(62,#701,1,#702,1)+i2cw(62,#700,1,#900,16)+i2cw(62,#701,1,#703,1)+i2cw(62,#700,1,#920,16)?"E"

 プログラムA1〜A4の910行目を上記のように修正すると、16桁対応になります。ただし、表示する内容のほうも16桁分の情報に修正する必要があります(自分で対応してください)。



ボクにもわかる
IchigoJam(R) マイコンボード用
キャラクタ液晶LCDの接続方法

[IchigoJam メニューへ戻る]

[I2C液晶ドライバへ戻る]

IchigoJam用キャラクタ液晶LCDの接続

 こどもパソコン(マイコンボード)IchigoJamにキャラクタ液晶を接続し、文字を表示するハードウェアおよびサンプルプログラムを紹介します。
 写真では自作のIchigoJam用マイコンボードを使用していますが、純正IchigoJamでも利用可能です。

IchigoJam + キャラクタ液晶
IchigoJam用I2Cキャラクタ液晶LCDの接続

秋月電子 SUNLIKE SSC1602BSLB を接続する

 ここでは秋月電子通商で販売されているSUNLIKE社のキャラクタ液晶ディスプレイ SC1602BS-B または SSC1602BSLBを用います。日立HD44780互換IC搭載品であれば他のキャラクタ液晶に接続することも可能ですが、電源電圧や電源端子の位置が異なる場合があるので十分に注意してください。例えば、3.3V動作の液晶モジュールの電源は、マイコンの3.3Vの電源端子からとると良いでしょう。
 必要な部品は以下のとおりです。IchigoJamにはGND端子が2つしか無いので小型のブレッドボードがあったほうが便利です。

キャラクタ液晶を接続するために必要な部品のリスト
部品名 数量 参考価格 備考
キャラクタ液晶 SUNLIKE SC1602BS-B 1個 500 日立HD44780互換IC搭載品
ブレッドボードジャンパーワイヤー 20本程度 100 端子オス/オスは液晶側のソケット等に合わせる
半固定ボリューム(可変抵抗) 10kΩ 1個 50 コントラスト調整を行いたい場合
小型ブレッドボード 1個 250 EIC-15010 等

 次にIchigoJamとの接続回路図を示します。(IchigoJamの回路図は省略しています。)
 キャラクタ液晶ディスプレイの電源は5Vです。IchigoJamは3.3V動作なので、IchigoJam基板上でUSBの5Vをレギュレータで3.3Vに変換しています。このレギュレータの電源入力(USBの電源端子)の5Vにジャンパーワイヤーを半田付けして取り出し、キャラクタ液晶に接続します。

キャラクタ液晶
キャラクタ液晶とIchigoJamとの接続の回路図

 液晶のコントラスト調整用の可変抵抗は液晶を見やすく調整するための部品です。使用しない場合はGNDに接続してください。ただし、キャラクタ液晶によっては調整が必須のタイプもあります。

CQ出版社のPersonal Computer基板を利用する

 さらに、CQ出版社の雑誌「1行リターンですぐ動く! BASIC I/Oコンピュータ IchigoJam入門」の別売パーツセットに含まれるPersonal Computer基板に、DF ROBOT製の液晶シールドを接続する方法もあります。
 プリント基板に部品を半田付けすることで製作できるので、より簡単に製作することができます。

キャラクタ液晶
CQ出版社Personal Computer基板 + DF ROBOT製の液晶シールド

サンプルプログラムB・液晶ドライバ

 まずは簡単なサンプルプログラムです。テレビと液晶に文字を表示し、3秒ごとに表示を切り替えます。表示の転送には1画面につき0.5秒程度の時間を要します。(I2C液晶に比べると転送に時間がかかります。)
 動作を理解する必要があるのは行番号170までです。行番号900以降は液晶ドライバ部です。

HD44780互換IC用サンプルプログラムB
rem LCD Library for IchigoJam (488 bytes)
rem Copyright (c) 2015-2016 Wataru KUNINO
rem https://bokunimo.net/bokunimowakaru/q/15/
'
' int Z // 内部利用
new

1 CLS:?"IchigoLCD for IJ":?" by Watt Kunino"
100 GOSUB 900
110 WAIT 180
120 CLS
130 ?" HELLO!"
140 ?" IchigoJam"
150 GOSUB 900
160 WAIT 180
170 RUN

900 'LCD
910 out35:out3:wait3:out35:out3:out35:out3:out34:out2
920 out34:out2:out40:out8:out32:out0:out44:out12
930 out32:out0:out33:out1:out32:out0:out38:out6
940 forZ=#900to#90F:gosub960:next:out44:out12:out32:out0
950 forZ=#920to#92F:gosub960:next:return
960 ifpeek(Z)outpeek(Z)>>4+48:out6,0
970 ifpeek(Z)outpeek(Z)&15+48:out6,0
980 return

 このサンプルプログラム・液晶ドライバは、行番号170までを書き換えることで、様々な目的に利用することができます。しかし、画面を書き換えるたびに0.5秒が必要であり、ゲームなどで使用することが出来ません。


LCD制御ライブラリ

 ここからは、1文字ずつ制御が可能な液晶ドライバを紹介します。ゲームなどで使用する場合は、毎回、全画面を書き換えるのではなく、必要なキャラクタだけを動かすことが多いでしょう。そこで、X座標とY座標、表示文字を変数に代入して、LRUNで実行するライブラリを作成しました。
サンプル1は、キーボードやシリアルから入力した文字を1文字ずつ液晶に表示するプログラムです。


サンプルプログラムC1 キーボード/シリアル入力文字の表示

 このサンプルプログラムC1はキーボードから入力した文字をキャラクタ液晶に表示するサンプルです。また、当サイトで製作したIchigoJam の互換機を使った場合はキーボードだけでなくシリアルで受信した文字を表示することが出来ます。
 プログラムを動かす(「RUN」を実行する)と、キーボードから入力した文字が液晶に表示されます。カタカナは「かな」キーを押してからローマ字で入力します。
 またIchigoJam互換機ではシリアルから入力することも可能です。カタカナは半角カタカナの文字コードを送信します。ターミナルソフトを用いる場合は漢字-送信の設定を「JIS」または「SJIS」に設定しておく必要があります。
 IchigoJam BASICのファームウェアはFOR〜NEXT命令をサポートしたVer.0.9.9以降で動作します。(Ver.0.9.9-rc4にて動作確認を行いました。)
 改行コード(0x0A)が入力されると文字列の終わりと判断します。この時点では画面を消去せず、次の文字が入力された時に画面を消して新しい文字列の表示を開始するように工夫しました。
 以下にソースコードを示します。使用する際はコピーしてターミナルソフトなどでIchigoJamへ転送してください。ターミナルソフトの設定で送信遅延を25ms/字、250ms/行にしないとIchigoJam側の処理が追いつきません(
詳細はこちらを参照ください)。またプログラムが長いので転送には若干の時間がかかります。

HD44780互換IC用サンプルプログラムC1
rem LCD Driver for IchigoJam (606 bytes)
rem Copyright (c) 2015 Wataru KUNINO
rem https://bokunimo.net/bokunimowakaru/q/15/
200 rem LCD
210 A=0
220 X=0:Y=0:gosub400
230 ifA=0gosub550
240 ifA=10gosub550:goto220
250 ifA<#20thenA=0:goto230
260 B=A>>4:C=A&#F
270 outB+#30:outB+#10
280 outC+#30:outC+#10
290 X=X+1
300 ifX=16gosub500
310 ifY=2andX=1goto220
320 A=0
330 goto230
400 rem CLS
410 out#23:out#03:wait3
420 out#23:out#03:wait1
430 out#23:out#03
440 out#22:out#02
450 out#22:out#02:out#28:out#08
460 out#20:out#00:out#2C:out#0C
470 out#20:out#00:out#21:out#01
480 out#20:out#00:out#26:out#06
490 return
500 rem ROW
510 out#00:X=0:Y=Y+1:wait1
520 out#2C:out#0C:out#20::out#00
530 return
550 rem INKEY
560 A=inkey():ifA=0goto560
570 return

 「RUN」でプログラムを実行すると液晶画面が消去され、キーボードやシリアルからの文字入力待ち受け状態になります。この状態で文字を入力すると液晶画面に文字が表示されます。

 ここから上記のプログラムの説明を行います(BASICに詳しい方は読まなくて結構です)。200行から330行が入力文字のメイン処理部分です。400行以下はサブルーチンです。
 実行すると変数を初期化し、400行目の液晶設定の初期化サブルーチンを実行します。初期化が終わると550行目の文字入力の待ち処理サブルーチンを実行し、入力されるとメインルーチンで文字コードを処理し、液晶に転送します。500行目は液晶の表示文字が1行目の最後の桁を超過したときに2行目に文字を表示するためのカーソル移動処理です。


サンプルライブラリC2 キャラクタ液晶表示用BASICライブラリ

 本節と次節では液晶表示用のBASICライブラリC2について紹介します。このライブラリは変数C(コマンド)に0を代入して実行すると初期化および画面の消去を実行し、C=1と変数Aに文字を入力すると文字を順次表示します。C=2と変数X,Yに座標を入れると指定した座標に文字を表示します。

キャラクタ液晶表示用BASICライブラリ入出力変数
変数 方向 記述
C 入力 コマンド 0初期化と消去 1順序表示 2位置指定表示
R 入力 本ライブラリの終了時に実行する戻りファイル番号(9で戻りなし)
A 入力 液晶に表示する文字
X,Y 入力 液晶の座標入力(C=2の時に指定する)
B,I 破壊 ライブラリ内で使用するので保持されません

 次にライブラリC2のソースを示します。本ソースをIchigoJamへ転送します。(実行は待ってください。)

HD44780互換IC用サンプルライブラリ C2
rem LCD Library for IchigoJam (716 bytes)
rem Copyright (c) 2015 Wataru KUNINO
rem https://bokunimo.net/bokunimowakaru/q/15/
'
' int C // コマンド 0初期化と消去 1順序表示 2位置指定表示
' int R // 戻りファイル番号(9で終了)
' int A // LCD表示文字
' int X // LCD表示位置X
' int Y // LCD表示位置Y
' int B,I // 内部利用
'
10 rem LCD
20 ifC=0gosub100:goto99
30 ifA<#20thenA=0:goto99
40 ifC=2gosub300
50 B=A>>4:I=A&#F
60 outB+#30:outB+#10
70 outI+#30:outI+#10
80 ifC=1thenX=X+1:ifX=16gosub500
90 ifY=2andX=1thenY=1:X=15
99 ifR=9end else lrun R
100 rem INIT
110 A=0
120 X=0:Y=0:gosub400
130 return
300 rem LOCATE
310 ifY=1thenB=12elseB=8
320 ifX<16thenI=XelseI=0
330 out#00:wait1
340 outB+#20:outB
350 outI+#20:outI
360 return
400 rem CLS
410 out#23:out#03:wait3
420 out#23:out#03:wait1
430 out#23:out#03
440 out#22:out#02
450 out#22:out#02:out#28:out#08
460 out#20:out#00:out#2C:out#0C
470 out#20:out#00:out#21:out#01
480 out#20:out#00:out#26:out#06
490 return
500 rem ROW
510 out#00:X=0:Y=Y+1:wait1
520 out#2C:out#0C:out#20:out#00
530 return

 下図は実行の様子です。始めにR=9を代入します(理由は次のサンプルで説明)。そして「C=0:RUN」で画面を消去します。この処理は液晶の初期設定が含まれているので電源を入れた後に必ず1回は実行する必要があります。
 次の「C=1:A=ASC("A"):RUN」は「A」を表示し、その次の「C=1:A=ASC("B"):RUN」では「A」に続けて「B」を表示します。
 さらにX,Yの座標指定で「#」を表示することも可能です。

R=9
OK
C=0:RUN
OK
C=1:A=ASC("A"):RUN
OK
C=1:A=ASC("B"):RUN
OK
C=2:X=10:Y=1:A=ASC("#"):RUN
OK

 実行後は下図のようになります。


 次に進む前に本ライブラリをファイル番号1にセーブしておきます。

SAVE 1
Saved 712byte
OK


サンプルプログラムC3 ライブラリを使用したサンプル

 次にライブラリを用いたサンプルを示します。始めに「Hello!」と表示し、カーソルキーで液晶の好きな位置を指定し、文字キーで文字を表示することが出来ます。

HD44780互換IC用サンプルプログラム C3
rem LCD TEST Example for IchigoJam (708 bytes)
rem Copyright (c) 2015 Wataru KUNINO
rem https://bokunimo.net/bokunimowakaru/q/15/
'
' int F // 戻り位置
'
10 T=1:'File Number of Library
20 R=file()
30 print"Load=";R;" F=";F
100 rem LCD
110 ifF=0goto200
120 ifF=1goto300
130 ifF=2goto400
140 ifF=3goto500
150 ifF>3goto600
199 end
200 rem INIT F0
210 F=1
220 C=0:lrun T
300 rem PRINT_TEXT(F=1)
310 let[0],asc("H"),asc("e"),asc("l"),asc("l"),asc("o")
315 let[5],asc("!")
320 ifX<6thenA=[X]:C=1:lrun T
330 F=2:goto10
400 rem PRINT_LOCATE F2
410 I=inkey():ifI=0goto410
420 rem PRINT_MOVE0
430 A=I:C=2:F=2
440 ifI=28andX>0thenX=X-1:F=3
450 ifI=29andX<15thenX=X+1:F=3
460 ifI=30andY>0thenY=Y-1:F=3
470 ifI=31andY<1thenY=Y+1:F=3
480 ifF=3thenA=asc("#")
490 lrun T
500 rem PRINT_MOVE1 F3
510 F=inkey():ifF=0goto510
520 A=asc(" "):C=2:lrun T
600 rem PRINT_MOVE2 F4
610 I=F:F=2:goto 420

 実行前に必ずこのプログラムC3をファイル番号0にセーブしておきます。本プログラム(ファイル番号0)と前のライブラリC2(ファイル番号1)は交互に呼び出して実行します。ファイル番号を変更したい場合は本プログラムの10〜20行目のRとTを変更します。
 本プログラムC3のファイル番号は変数Rに代入します。ライブラリC2は終了時にファイル番号Rのプログラムを呼び出し、ファイル番号Rの本プログラムに戻ります。またファイル番号に9(キュー=Quit)を指定して呼び出すことで、ライブラリ側のプログラムの終了後に本プログラムに戻さない方法も用意しました。(主にデバッグ時に利用していました。)
 一方の変数Tは本プログラムC3からライブラリC2を呼び出すときに用います。例えば220行ではC=0(液晶の初期設定)を行う命令を設定し、ファイル番号Tのライブラリを呼び出します。
 実行時は変数Fに0を代入しておく必要があります。変数Fは本プログラムC3の実行状態を示す変数です。

SAVE 0
Saved 708byte
OK
F=0:RUN
Load=0 F=0
Load=0 F=1
Load=0 F=1
Load=0 F=1
Load=0 F=1
Load=0 F=1
Load=0 F=1
Load=0 F=1
Load=0 F=2

 以下は実行の様子です。


実行すると「Hello!」と表示される


カーソルキーで「#」を移動


キーボードから表示したい文字を入力

 最後にFILE関数について説明します。この命令は最後にLOADしたファイル番号を調べる関数です(正確には最後にLRUN、LOADもしくはSAVEしたファイル番号)。ライブラリをLRUNで実行する前に、変数RにFILE値を保存しておき、ライブラリの実行完了後に「LRUN R」を行うことで元のプログラムに戻ることが出来ます。


Renesas 日立HD44780について

 液晶ドライバICの日立HD44780(現Renesas)は、多くのキャラクタ液晶に搭載されてきました。現在も、HD44780互換ICや、HD44780互換インタフェースをもったキャラクタ液晶が主流となっています。
 その名残として、世界中で売られているキャラクタ液晶のほとんどで日本語のカタカナが扱えるようになっています。また、ASCIIコード #5C の「\」が「¥」記号になっている点も名残りの一つでしょう。
 残念ながら、既にオリジナルのHD44780が使われることは無くなってきていますが、かつては下図のようなICが液晶の裏側に実装されていました。


かつて世界中のキャラクタ液晶に使用された 日立 HD44780

あとがき

 当初は「ボクにもわかるXBee」との連携でXBeeで受信した情報をIchigoJamを経由してキャラクタ液晶に表示するアプリケーションを想定して作成しました。
 XBeeを経由してIchigoJamをスクリプト実行マシンとして利用したり、他のXBeeが収集した情報をテレビに表示するためのXBeeデバイスなどの試作も進めています。
 2015年度には一部の成果を雑誌へ掲載する形で提供させていただきました。引き続き、2016年度中に何らかの形で情報を提供したいと思います。


掲載情報について

  • こどもパソコン IchigoJamを用いた電子工作、BASICプログラム等を紹介しています。
  • 当ページの著作権は国野亘が所有します。複製・改変については以下に従ってください。
  • 合理的な手段による著作権表示が必要です。「国野亘」の文字を含んでください。
  • 20歳以下を対象にした教育目的での利用については複製・改変・再配布が可能です。
  • FacebookグループIchigoJam-FANでの利用については複製・改変・再配布が可能です。
  • その他の目的での利用については当方の承諾を受ける必要があります。(連絡先)。
  • IchigoJam は jig.jp 社の登録商標です。当ページは jig.jp社の作成物ではありません。
    本サイトでは jig.jp 社の商品である機器およびプログラムの呼称として使用しています。
  • 「互換機」の表現は解釈によって不適切な場合があります。本ページではプリント基板の互換機や自作基板を示しています。
  • IchigoJam用のラベルは CC BY 福野泰介 - Taisuke Fukuno http://fukuno.jig.jp/651に基づいて改変したもの、もしくは jig.jp の商品です。
  • 出典を明記した情報については前項に関わらず出典元の権利を継承します。
  • 当ページの作成にあたりFacebookグループIchigoJam-FANの情報を参照しました。
  • 当ウェブサイトの内容や情報については、ご自身の責任でご利用ください。
    製作品などで事故が発生した場合であっても当方は一切の補償をいたしません。

IchigoJam メインメニューへ戻る