nobcha23の日記

PICマイコンやArduinoを使う電子回路遊びを紹介します

小さなグラフィック液晶をキャラクタ液晶代わりに使ってみる

中国製エアバンドレシーバーキット改造で、デジタル局発にし、中国オリジナルのケースに局発・表示まで入れようと思ったら、1602液晶では大きくて入りきりません。

I have been trying to remodel the Chinese airband receiver kit to combine the digital loacal oscillator. To install those into the original alumnum case we shall stop to use 1602LCD.


替りに秋月電商が扱うi2c液晶はどうかと思ったが、i2c接続でAdafruits互換の128x32ドットのグラフィック液晶がかなりコンパクトです。Arduinoの世界ではU8g2ライブラリーがあり、メモリーは食うが簡単に使えそうです。これを使うアイデアが浮かびましたので、さっそく実験にかかりました。

8ドットフォントを使うと16字x3行表示できます。実験はPro MINIで行いました。

I found the tiny OLCD LCD of  Adafruits graphic i2c one. When I adopt the 8 by 8 font, it can display 16 columns and 3 lines.

f:id:nobcha23:20210517175924j:plain

Pro mini でSSD1306 128x32グラフィック液晶にテキスト表示


試してみた3行表示スケッチです。 I wrote the tentative sketch to display 8 bits font.

ーーーーーーーーーーーーーーーーーーーーーーーーー
// "Freq. 118.100MHz"‥‥を試しにSSD1306へ表示するスケッチ
//
//

#include <U8g2lib.h>


U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);

void setup(void) {
u8g2.begin();
u8g2.clearBuffer();
u8g2.setFont(u8g2_font_8x13_tf);
u8g2.drawStr(0, 9, "Freq. 118.100MHz");
u8g2.drawStr(0, 20, "Auto00 STP100kHz");
u8g2.drawStr(0, 32, "S########### ");
u8g2.sendBuffer();
}

void loop(void) {
}

ーーーーーーーーーーーーーーーーーーーーーーーーー

ところが、このスケッチを局発に適用してみると、LCDバッファへの書き込みが追加上書き(グラフィックなどの上にフォントを重ね書きする)なので、重ね書きになり書き換えがうまくいきません。

However this controle was bit overwriting and I should change for the other font controle as below.


そこで次のブログを参考にさせてもらい、問題点解決しました。

ラジオペンチさん「u8g2 のフォントの使い方を理解する」
       

すなわち、透過型フォントではなく、不透過型フォントセットを選べばよいとのこと。ところが、不透過型フォントセットでは文字がそろっているものがあまりなく、ちょっと小さめのフォントを選ぶことになりました。色々試行錯誤しましたが、次のフォントを使います。

u8g2.setFont(u8g2_font_t0_11_mf);

f:id:nobcha23:20210517180144j:plain

局発表示を入れ替え



次はケースにどう入れるかですね。

To step next is to plan to install it into the case.

f:id:nobcha23:20210517180349j:plain

中国製専用ケースに入りそうな寸法です

 


また、中国オリジナルのケースに局発を入れるにはもう一つ課題があります。操作スイッチ集約です。こちらについてはプッシュスイッチ付きのロータリーエンコーダーを使う新操作をこれから検討します。

If I install those into the original case, I should decrease the number of switches. To use the rotary encoder with push switch is one thing.

nobcha23.hatenadiary.com