BS21 Lab の製品 - キャラ LCD を Arduino 用 TWI (i2c) シールドにするキット(製品番号:BS21LAB-015)
24/july/2014 新規
10/aug/2014 更新
HD44780 系のキャラクター LCD を、Arduino 用の TWI (I2C) シールドにするキットです。
TWI (I2C) 方式専用ですので、I/O ピンを消費しなくて済みます。
キャラクター LCD そのものは付属していませんので、別途、御用意ください。
標準構成(5V 専用)と、拡張構成(3.3V/5V 兼用:要別売りオプション)の2種類あります。
- 概要
- ギャラリー
- ご購入方法
- 注意事項
- 免責事項
- 仕様
- 表示できる文字
- 組立て方法
- 使用方法
- ソフトウェア
・概要
別名、「Arduino 用 カナ LCD シールド」です。(元々この名称だったんですが、商品名としてはインパクト感が弱いので、現在の名称に改名しました)
本製品に キャラ LCD そのものは付属していませんので、お客様にて御用意ください。
(多分、本製品を買われる方なら、キャラ LCD の一台や二台は、部屋の片隅に転がっているかと思います)。
対応しているキャラ LCD の仕様は、以下のとおりです。
制御 IC | 駆動電圧 | 内蔵フォント | ピン形状 | ピン配列 | コメント | 動作確認した LCD |
HD44780 及び、互換品 (ST7066U, KS0066U, etc) 1個
※御注意:2個入っているタイプ(例:40文字×4行の物)には対応していません | Vdd = 5V タイプ | 半角カタカナ有り (HD44780U-A00, ST7066U-0A, etc) | 16×1 タイプ | 左から、14ピン〜1ピン/K/A の順 | OK ※付属のプラネジで固定できるタイプ | Sunlike SD1602H |
OK ※付属のプラネジで固定できないタイプ | Sunlike SD1602V |
それ以外のピン並び | 不可 |
2×7 タイプ | ピン1=5V, ピン2=GND | OK ※要ショート設定。A/K は空中配線 | Sunlike SC1602B |
ピン1=GND, ピン2=5V | OK ※要ショート設定。A/K は空中配線 | Sunlike SC2004C, displaytronic ACM0802C |
半角カタカナ無し | ASCII のみ表示可能 | ※実物を持っていないので、動作確認していません |
Vdd = 3.3V タイプ | 不可 | ※本製品は 5V キャラLCD 専用です |
それ以外 (ST7032, etc) | 不可 | ※本製品は HD44780 系のキャラLCD 専用です |
表示できるのは キャラ LCD で表示できる半角 190 字+ユーザー定義文字8文字のみ、です。
符号化方式は UTF-8 が選べますので、Arduino のスケッチにそのまま日本語を入力してコンパイルするだけで OK です。
(全角ひらがな・カタカナも、自動的に半角カタカナとして表示します)
本製品の標準構成は 5V Arduino 専用ですが、別売りの「漢字/カナ LCD シールド 3.3V/5V 兼用化オプション」を追加すれば、3.3V/5V 兼用にする事も可能です。
本製品は組み立て式キットとなっています。組み立て方は組立て方法を御覧下さい。
・ギャラリー
全体写真:クリックすると拡大します。キャラ LCD そのもの、Arduino 本体やケーブル等は付属していません。SC2004C と Arduino の間にチラリと見える基板が、本製品です。
※ SC2004C が大きすぎて、右タクトスイッチを押すのが困難になってしまいました。
実際は、こんな感じです。キャラ LCD そのものは付属していません。SD1602H なら、付属のプラネジで固定できます。それ以外のキャラLCD はピンヘッダーで挿さっているだけ、になります。
SC2004C(付属していません)は巨大なので、裏から見ると、思いっきりはみ出しています。
オプション追加で 3.3V/5V 兼用化すれば、Arduino Due でも使えます。(御注意:赤いスライドSW ×2 は付属していません。代わりにショートピンが4つ付属しています)
SC2004C(付属していません)は Arduino Due ですら、はみ出してしまいます
2x7ピンソケットで挿さっているだけなので、簡単に外れてしまいます。
ただし、所詮 キャラ LCD ですので、かな漢字混じりの普通の文章や、グラフィックス表示は、逆立ちしても無理です。
そのような機能が欲しい方は、Arduino 用 漢字 LCD シールドv2(製品番号:BS21LAB-014)を御検討ください。
・ご購入方法
本製品は、以下のサイトで取り扱って頂いております。
(株)スイッチサイエンス様
・注意事項
本製品は、基本的には、電源を OFF にした状態で DIP SW の切り替えを行ってください。通電中に DIP SW を切り替えますと、もしかすると IC 等が静電破壊される恐れがあります。
電源を OFF にした状態でも、DIP SW を切り替える時は、静電気を逃がしてから行ってください。
また、本製品は端子等が露出しており、ショートなどで容易に故障しやすくなっておりますので、取り扱いには十分に注意してください。
鋭利な部分も多数有りますので、怪我等に十分に注意してください。
・免責事項
本製品は人命等に関わる装置への利用につきまして、考慮されておりません。
また、本製品を使用した事によって発生しました如何なる事象につきまして、弊社は責任を負いかねますので御了承下さい。
・仕様
寸法 | 幅約53.3mm×長さ約72mm | ※いわゆる "C基板" (47×72) の幅を、若干延ばした寸法 |
高さ | 約28mm | ※ジャンパーピン頭から Arduino 用ピン先まで(ジャンパーピンをつまみ無しタイプに交換すれば、もうちょっと低くなります) |
固定穴 | φ3.2×4ヶ | ※穴位置は "C基板" 互換なので、スタックできます |
Arduino UNO R3 ピン互換シールド ※Arduino Mega2560 R3 以前の Mega シリーズで動作させるには、TWI 接続に何らかの工夫が必要と思われます。
駆動電圧 : | 直流 +5V | ※ Arduino UNO R3, Arduino Leonardo, Uno1284P 基板 で動作確認済み |
直流 +3.3V | ※ Arduino Due のみ動作確認済み。(ただし、別途 +5V も必要。) |
接続方式 | TWI (I2C) 方式 | ※ジャンパーにて、アナログピン A4〜A5 ピンを使用して接続する方法と、UNO/Mega2560 R3 より増設された SCL/SDA ピンを使用して接続する方法の、どちらかを選択できます |
※ジャンパーにて、TWI 用の pullup 抵抗を ON/OFF する事が可能です。 |
TWI アドレス | 7bit表記: 0x38 〜 0x3B 8bit表記: 0x70+R/W 〜 0x76+R/W | ※ DIP SW にて4つの中から選択可能 |
LCD 表示領域 | 幅46.86mm×高さ11.5mm | ※ SD1602H の場合。実際はキャラ LCD の仕様に依存。 |
LCD 表示文字数 | 半角80文字×1行:5x8ドット | ※実際に表示できるのは、80文字中の一部のみ。表示数はキャラLCD の仕様に依存。(注意:動作未確認) |
半角80文字×1行:5x10ドット | ※実際に表示できるのは、80文字中の一部のみ。表示数はキャラLCD の仕様に依存。(注意:動作未確認) |
半角40文字×2行:5x8ドット | ※実際に表示できるのは、40文字中の一部のみ。表示数はキャラLCD の仕様に依存。 例えば SD1602H なら、表示されるのは 16文字×2行です。残りの 24文字×2行は左右にスクロールさせないと見えません。 |
半角8文字×4行:5x8ドット | ※キャラLCD の仕様に依存(注意:動作未確認) |
半角10文字×4行:5x8ドット | ※キャラLCD の仕様に依存(注意:動作未確認) |
半角16文字×4行:5x8ドット | ※キャラLCD の仕様に依存(注意:動作未確認) |
半角20文字×4行:5x8ドット | ※キャラLCD の仕様に依存 |
LCD バックライト | 常時点灯、もしくは、ソフトウェア制御 | ※ DIP SW より、常時点灯と、ソフトウェア点灯/消灯機能のどちらかが選べます。なお、点灯させると、バックライトだけで最大 40mA (SD1602H の場合) 消費するようになります |
※(注意:動作未確認)と書いてあるのは、その仕様のキャラLCD を持っていないので、文字通り、動作未確認という意味です。
回路図:
<動作確認>
以下の時での動作を確認しています。
・Arduino UNO R3 (Atmel ATmega328P:CLK=16MHz)
・Arduino Leonardo (Atmel ATmega32U4:CLK=16MHz)
・Uno1284P 基板 (Atmel ATmega1284P:CLK=16MHz)
・Vio = 5V, Vdd = 5V
・Arduino IDE 1.0.5
・Windows 7 Home Premium SP1 (64 bit)
・Arduino Due (Atmel SAM3X8E:CLK=84MHz)
・Vio = 3.3V, Vdd = 5V
・Arduino IDE 1.5.7 beta
・Windows 7 Home Premium SP1 (64 bit)
・表示できる文字
「カナ LCD シールド」がサポートする文字集合 ※ 以下「HD44780 文字集合」と呼称します
半角文字 | JIS X 0201:1976 ローマ字 (ただし、チルダ記号(~)は除く) | 93字 | 計198字 |
JIS X 0201:1976 片仮名 (いわゆる半角カナ) | 63字 |
アクセント記号付きラテンアルファベット:ä,ñ,ö,ü,bar付きx | 5字 |
ギリシア文字:αβεθμπρΣσΩ | 10字 |
5x10ドット用フォント:g,j,p,q,y | 5字 |
漢字:千,万,円 | 3字 |
記号類:¢,£,√,×,÷,∞,←,→,□,■,-1乗記号 | 11字 |
ユーザー定義フォント | 8字 |
全角文字 | --- | 無し | 無し |
※ 0x7E に割り振られているはずのチルダ記号(~)が表示できないので、厳密には「JIS X 0201:1976 ローマ字」準拠ではありません。
※ 0x5C は円記号(¥)です。バックスラッシュ記号(\)ではありません。よって「ASCII」準拠でもありません。
※ g,j,p,q,y の5文字は、5x8ドット用フォントと、5x10ドット用フォントの2種類がダブって入っています。
※ 5x10ドット用フォントを正しく表示するには、キャラ LCD 側も 5x10ドット表示に対応している必要が有ります。
対応していない場合は、フォント下部が切れた状態で表示されてしまいます(例えば j を表示させても、下部の曲がった部分が表示されないので i の様に見える)。
対応している場合は、5x10ドット用フォントで表示すると、アルファベットが、やや美しく見えます(もっとも、可変幅(プロポーショナル)フォントでは無いので、5x8ドット用フォントよりは多少はマシ、といった程度ですが)。
※ ユーザー定義フォントは、デフォルトでは、日,月,火,水,木,金,土,♥ の8文字が設定されています。もちろん、ユーザーが自由に変更できます。
※ 5x10ドット表示の時は、ユーザー定義フォントが半分の4文字になります。正確には、5x8ドット2文字分で 5x10ドット1文字分を表示する様になります。
5x8ドット2文字分なら 5x16ドットじゃないのか?と思うかもしれませんが、表示されるのは上部 5x10ドット分だけで、下部 5x6ドット分は単純に無視されます(何とも勿体無い仕様です)。
「カナ LCD シールド」がサポートする符号化方式
Unicode 系 | UTF-8 方式 |
UTF-16 方式 (BOM 自動判別) |
UTF-16 方式 (Big Endian 固定) |
UTF-16 方式 (Little Endian 固定) |
JIS 系 | シフトJIS 方式 |
EUC-JP 方式 |
※ あくまで符号化方式です。Unicode 系を選んだからといって、Unicode にある文字が全部使えるようになる訳ではありません。
※ HD44780 文字集合にある文字のみ表示可能です。それ以外の文字を表示させようとすると、適当な HD44780 文字が表示されたり、何にも表示されなかったりします。
御注意:
キャラLCD の制御 IC である HD44780 及び、互換品によっては、上記の「HD44780 文字集合」ではない文字集合のタイプがあります(10タイプ以上ある様です)。
そういう制御 IC を搭載したキャラLCD は、本製品では非対応ですので、盛大に文字化けします。(ASCII 部分だけは、何とか表示できるとは思いますが、未確認です)
国内で市販されているキャラLCD なら、おそらく大丈夫だと思いますが、海外から輸入したキャラLCD の場合は、要注意です。
そのキャラLCD の仕様書の文字表に、半角カタカナが ア〜ン 全部入っていれば、まず大丈夫なハズです。
具体的に表示される文字の字体につきましては、秋月電子通商様のサイト「超小型LCDキャラクタディスプレイモジュール(16×2行バックライト緑)[SD1602HULB(-XA-G-G)]」の
参考資料 19ページ、を参照ください。
ただし、この参考資料にある Charactor Font Table の Upper4bit+Lower4bit の 8bit コードのままでは表示できません。
上記の通り、Unicode系/JIS系/EUC-JP系のいずれかの符号化方式にて指定する必要があります。サンプルコードの ShowAllChara スケッチを参照ください。
・組立て方法
「漢字/カナ LCD シールド 3.3V/5V 兼用化オプション」の有り無しで、組み立て方法が変わってきます。以下のどちらかを選んでください。
・使用方法
DIP SW ですが、以下の写真の様に、左側の SW から1〜3の番号が刻印されています。
以下の様に機能が割り振られています。
DIP SW の設定 | SW1 | SW2 | SW3 | コメント |
TWI アドレス = 0x38 | OFF | OFF | --- | 電源 ON 直後に SW のチェックをして、TWI アドレスを決定します。決定後は SW1〜2 を変更しても、Reset されるまで TWI アドレスは変わりません。 |
TWI アドレス = 0x39 | OFF | O N | --- |
TWI アドレス = 0x3A | O N | OFF | --- |
TWI アドレス = 0x3B | O N | O N | --- |
LCD の Backlight = ソフト制御 | --- | --- | OFF | backlight/noBacklight 関数でソフト的に ON/OFF する。電源 ON 直後はソフト OFF されている。 |
LCD の Backlight = 強制 ON | --- | --- | O N | ソフト ON/OFF 状態に関係無く、Backlight が強制 ON される。(最大 120mA 消費する様になるので注意) |
L スイッチと R スイッチは、Arduino のスケッチで、getLeftSW 関数、getRightSW 関数を呼び出すと、押されているか離されているかが検出できます。
カナ LCD シールドは、チャタリング対策の為、スイッチの状態を約10ミリ秒間隔でスキャンしていますので、これよりも短い時間で L/R スイッチの状態を検出させる事はできません。
VR101 は、Backlight の輝度調整用です。一方、VR103 は LCD 画面のコントラスト調整用です。双方とも、小型のプラスドライバ等で、ちょうど良いポジションに調整してください。
Reset 回路:
標準構成(5V Arduino 専用)の場合、SJ3 がショートされている為、Arduino 本体のリセットと同時に、カナ LCD シールドもリセットされます。
一方、拡張構成(3.3V/5V 兼用)の場合、SJ3 がオープンなので、Arduino 本体がリセットされても、カナ LCD シールドはリセットされませんので、注意してください。
これは、カナ LCD シールドのリセット回路は常に 5V 系なのに対して、Arduino 本体のリセット回路が 3.3V 系なのか 5V 系なのか分からない為です(3.3V 系だった場合、5V 系とショートして、何かが壊れます)。
間にトランジスタを噛ませば良いのですが、基板スペースの関係で断念しました。(後で、表面実装用のトランジスタでも良いから入れておけばよかったかな、とも考えましたが、それでもスペース的にきびしいかも。)
なお、基板上に "Rst5" というシルクのピン(注意:5V系です)がありますが、これを GND に落とせば、SJ3 がオープンの場合、カナ LCD シールドだけがリセットされます。(Arduino 本体はリセットされません)
・ソフトウェア
Arduino 用ライブラリを用意しています。
以下の圧縮ファイルをダウンロードし、arduino フォルダーの中の libraries フォルダーの中に解凍するだけで OK です。(注意:漢字 LCD シールド用ライブラリも同梱してあります)
BS21Lab-ArduinoLib-KanjiLCD-v1.10_and_KanaLCD-v1.01.zip 2014年8月1日版
※ Arduino IDE 1.0.5 と Arduino IDE 1.5.7β で動作確認しています。
アンインストールも、BS21LabLib, KanaLCD, KanjiLCD フォルダーごと削除するだけで OK です。
ライブラリの使い方ですが、巨大なので、別ページにしました。「カナ LCD ライブラリ」の解説 をクリックしてください。
【御注意】
Windows 用の Arduino IDE でしか動作確認していません。もしかすると、Mac 用や Linux 用の Arduino IDE では、問題が発生するかもしれません。その際は、御連絡下さい。可能な限り対応してみます。(頑張ったが無理だった、という結果になる可能性もあります…)
製品リストに戻る
Copyright (C) 2014 BS21 Lab, All rights reserved.