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種類あります。

  1. 概要
  2. ギャラリー
  3. ご購入方法
  4. 注意事項
  5. 免責事項
  6. 仕様
  7. 表示できる文字
  8. 組立て方法
  9. 使用方法
  10. ソフトウェア

・概要

別名、「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=GNDOK ※要ショート設定。A/K は空中配線Sunlike SC1602B
ピン1=GND, ピン2=5VOK ※要ショート設定。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 の間にチラリと見える基板が、本製品です。
UnoとSC2004Cの組合せ ※ SC2004C が大きすぎて、右タクトスイッチを押すのが困難になってしまいました。

実際は、こんな感じです。キャラ LCD そのものは付属していません。SD1602H なら、付属のプラネジで固定できます。それ以外のキャラLCD はピンヘッダーで挿さっているだけ、になります。
KanaLCDとSD1602Hの組合せ KanaLCDとSD1602Vの組合せ KanaLCDとACM0802Cの組合せ
SC2004C(付属していません)は巨大なので、裏から見ると、思いっきりはみ出しています。
UnoとSC2004Cの組合せ(表) UnoとSC2004Cの組合せ(裏)

オプション追加で 3.3V/5V 兼用化すれば、Arduino Due でも使えます。(御注意:赤いスライドSW ×2 は付属していません。代わりにショートピンが4つ付属しています)
dueとSD1602Hの組合せ dueとSC1602Bの組合せ
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 を持っていないので、文字通り、動作未確認という意味です。


回路図:
KLCDv2 の回路図


<動作確認>
以下の時での動作を確認しています。

・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付きx5字
ギリシア文字:αβεθμπρΣσΩ10字
5x10ドット用フォント:g,j,p,q,y5字
漢字:千,万,円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の番号が刻印されています。
DIPSW3 の解説

以下の様に機能が割り振られています。
DIP SW の設定SW1SW2SW3コメント
TWI アドレス = 0x38OFFOFF---電源 ON 直後に SW のチェックをして、TWI アドレスを決定します。決定後は SW1〜2 を変更しても、Reset されるまで TWI アドレスは変わりません。
TWI アドレス = 0x39OFFO N---
TWI アドレス = 0x3AO NOFF---
TWI アドレス = 0x3BO NO N---
LCD の Backlight = ソフト制御------OFFbacklight/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.