なんでも作っちゃう、かも。

Arduino/Make/フィジカルコンピューティング/電子工作あたりで活動しています。スタバの空きカップを使ったスタバカップアンプなど製作。最近はもっぱらArduinoと3Dプリンタの自作に興味があります。

Arduinoで遊ぼう - キャラクタLCDにビッグなフォントを表示する

Posted by arms22 on 2011年07月06日 9  0

2016/8/3
BigFontライブラリ更新。Arduino 1.6.xに対応しました。

2011/12/18
BigFontライブラリ更新。Arduino 1.0に対応しました。


ビッグフォントLCD
(16x2行超小型キャラクタLCDに表示している様子)

ArduinoブログでキャラクタLCDにビッグなフォントを表示する Phi_Big_Font ライブラリが紹介されていたので試してみたよ。

Big Fonts On LCD Library Turns To Second Version
http://arduino.cc/blog/2011/05/27/big-fonts-on-lcd-library-turns-to-second-version/

Phi_Big_Font ライブラリ
http://liudr.wordpress.com/libraries/phi_big_font/

Phi_Big_Font ライブラリはキャラクタLCDに、通常の6倍もの大きさの文字を表示するArduino用のソフトウェアライブラリだ。このライブラリは1つの文字を表示する為に縦に2行、横に3文字を使う(文字と文字の間に1文字の空白が入る)。16文字×2行のキャラクタLCDなら1行に4文字、20文字×4行なら2行に5文字の文字を表示することができる。表示できる文字の種類は0~9、a~zとA~Zの英数字で、記号類は表示できない。

少し離れたところからキャラクタLCDの普通サイズの文字を読むと小さく読み辛い。しかし、このライブラリを使えば文字が大きく表示され、離れた場所からでも読める。車やバイクの速度計、距離センサ、あるいはガイガーカウンタなどの表示にベストなライブラリだ。

ビッグフォントLCD
(20x4行キャラクタLCDに表示している様子)

一般的なキャラクタLCDはCGRAM(Character Generator RAM)と呼ばれる8文字分の文字パターンを書き込めるRAM領域が用意されている。Phi_Big_Font ライブラリはこのCGRAMに独自の文字パターンを書き込み、それらを組み合わせて大きな文字を表示している。


BigFontライブラリ



Phi_Big_FontライブラリのAPIは昔ながらのCスタイルなので基本機能はそのままに、Arduinoスタイルのライブラリに仕上げてみた。

BigFontライブラリ
http://github.com/arms22/BigFont/releases/tag/v1.0.0

ライブラリのインストールは上記URLからZIPファイルをダウンロードして、Arduino IDEのメニューからスケッチ→ライブラリをインクルード→.ZIP形式のライブラリをインストールでダウンロードしたZIPファイルを選んでください。

主な関数
  • attach(lcd)
    BigFontライブラリにキャラクタLCDをアタッチします。
  • clear()
    画面をクリアし、カーソルをホームに移動します。
  • home()
    カーソルをホームに移動させます。
  • setInvert(invert)
    文字を反転させます。
  • setCursor(col,row)
    指定した位置にカーソルを移動させます。
  • print()
    ビッグなフォントで文字を表示します。


回路図


キャラクタLCDサンプル回路図

キャラクタLCD vs Arduino
VSS <-- GND
VDD <-- 5V
VO <-- 半固定抵抗の中点をつなぐ(両端は5VとGND)
RS <-- 7
R/W <-- GND
E <-- 6
D4 <-- 5
D5 <-- 4
D6 <-- 3
D7 <-- 2
K (バックライトLEDのカソード) <-- GND
A (バックライトLEDのアノード) <-- 100Ωの抵抗を直列に入れて5Vをつなぐ


サンプルスケッチ


#include <LiquidCrystal.h>
#include <BigFont.h>

// キャラクタLCDクラス(RS=>7, E=>6, D4=>5, D5=>4, D4=>3, D3=>2)
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

// ビッグフォントクラス
BigFont bigf;

void setup() {
  // キャラクタLCDを初期化
  lcd.begin(16, 2);
  // 通常フォントで表示
  lcd.print("Hello, World!");
  // キャラクタLCDをビッグフォントクラスにアタッチ
  bigf.attach(&lcd);
  // 3秒待つ
  delay(3000);
}

void loop() {
  // カーソルをホームポジションに移動
  bigf.home();
  // ビッグフォントでランダム値を表示
  bigf.print(random() % 10000);
  // 200ミリ秒待つ
  delay(200);
}






Arduinoで遊ぼう - キャラクタLCDモジュール
http://arms22.blog91.fc2.com/blog-entry-203.html

武蔵野電波のプロトタイパーズ - 第16回「液晶ゲームを作ってみよう」
http://pc.watch.impress.co.jp/docs/column/musashino_proto/20091001_318437.html


LCDシールドキット(緑)
LCDシールドキット(緑)
posted with amazlet at 16.08.03
スイッチサイエンス
売り上げランキング: 178,490


【永久保証付き】Arduino Uno
スイッチサイエンス
売り上げランキング: 1,993



Ads by Google

9 Comments

yukikaze says..."早速使用してみました。"
OKと表示しようとすると、KがHのような文字になりますね。
■■   ■■
■■   ■■
■■ ■■ ■■
■■ ■■ ■■
■■
■■   ■■
こんな感じです。
■■   ■■
■■   ■■
■■ ■■
■■ ■■
■■   ■■
■■   ■■
こう見える方が、Kに見える気がしますね。
元のライブラリがおかしいかもしれませんね。
2011.07.11 11:07 | URL | #- [edit]
arms22 says..."Re: 早速使用してみました。"
Kのパターンはそのようになってますねー。
Hのパターンと似てますし、区別が難しいのかも。
2011.07.11 13:30 | URL | #- [edit]
kaz says..."No title"
こんにちは
とても面白いものを紹介して頂きありがとうございました。
早速PropellerのPropForthに移植させていただきました。
フォントを少し変えて表示キャラクタも増やしました。ちょっと無理そうな文字もありますが。
PropForthのバグのせいか僕のコードがよくないのかどちらかのせいでアスキーコード5Fからおかしな表示になってしまってます。
2011.07.30 16:57 | URL | #- [edit]
kaz says..."No title"
こんにちは
僕のコードのバグでおかしな表示になっていました。
BigFontはキャラクタLCDでなにか注意をさせる時の表示にも使えますね。
2011.07.31 10:05 | URL | #- [edit]
arms22 says..."Re: No title"
これはナイスアイディアですよねー。
わりと文字も見やすいですし。
2011.08.01 09:50 | URL | #- [edit]
rose says...""
こんにちは

IDEをバージョンアップしたら、ビックフォントが使えなくなりました。
とても気に入っていただけに残念です。
最新バージョンでも使える方法がありましたら教えてください。
2016.07.29 14:50 | URL | #eBcs6aYE [edit]
arms22 says...""
取りあえずビルドが通るようにしました。
動作確認は週末あたりに。。

https://github.com/arms22/BigFont
2016.08.01 22:56 | URL | #j7sy4omY [edit]
arms22 says..."Re: タイトルなし"
動作確認できました。
下記URLからダウンロードしてください。
https://github.com/arms22/BigFont/releases/tag/v1.0.0
2016.08.03 20:46 | URL | #- [edit]
rose says...""
早速ご対応頂き本当にありがとうございます。

 https://github.com/arms22/BigFont/releases/tag/v1.0.0

↑ こちらのURLからダウンロードできなかったため次のURLからダウンロードしました。

 https://github.com/arms22/BigFont/releases/
2016.08.11 10:04 | URL | #qx6UTKxA [edit]

Leave a reply






管理者にだけ表示を許可する

該当の記事は見つかりませんでした。