Sahara's WebLog

日記のような、備忘録のような、うらみつらみのような、自慢のような…。

SSD1306用の拡張ASCIIフォント

最近 ESP8266 + SSD1306 で遊んでいるのだが、文字表示用のフォントのうちの特殊文字について書く。
ことの発端は、温度を表示するときの「℃」のCの左肩についている「度」をあらわす丸は表示できんのかなと思ったところから。
一文字で済むところを、丸がないと「Deg.」とか書かなきゃならなくなる。
漢字のフォントを使うという手も最初に浮かんだが、他の文字はほとんど不要なのに「℃」のためだけに漢字を使うのもなあと思って二の足を踏んだ。

検索しながらWebをうろうろしていると、同じようなことが話題になっているのをいくつか見つけた。
例えば、[SOLVED] How to print the degree symbol ? (extended ASCII)とか。
で、Extended ASCII の中に目的の記号が含まれていることを知る。

ついでに、ASCIIってそもそも7bit(0x7E、10進で127まで)だったのも知る。
1バイト分だとばかり思っていた。
残りの128以降に割り当てる場合にExtended ASCIIと呼ぶらしい。

以上を意識しながらArduinoやESP8266用のライブラリを確認してみる。
今のところ、Adafruit_SSD1306esp8266-oled-ssd1306SSD1306Asciiのライブラリを使ってみたことがある。
Adafruit_SSD1306は、フォント自体はAdafruit-GFX-Libraryのフォントを呼び出しているようだ。
だとすると、私が見た限りでは0x7Eまでしかデータが無いようだ。

もちろんちゃんと探せば対応してるんだろうけど。
SSD1306Asciiも127までだった。

esp8266-oled-ssd1306だけが、255までフォントのデータが存在して、期待が持てた。

早速やってみる。

ちゃんと表示できた。

ただし、Visual Studio Code上でshiftjisに設定しているとうまくいかなかった。
UTF-8だとうまくいった。

このエントリーをはてなブックマークに追加

Posted under: 未分類


コメントを残す

メールアドレスが公開されることはありません。

Time limit is exhausted. Please reload CAPTCHA.