液晶ディスプレイのパラレルポートを使用するとポートが6つ必要になる。使えるポート数を確保したいので I2C モジュールを使ってみた。
I2C モジュールへの配線は電源2本と STM32 のポート SCL・SDA 2本、合計4本だけで、すっきりしたものとなる。
必要なライブラリは https://github.com/marcoschwartz/LiquidCrystal_I2C から ZIP ファイルとしてダウンロードし、Arduino IDE の library ディレクトリの下に解凍して使う。
以下にライブラリ LiquidCrystal_I2C を使ったソースを示す。
#include <LiquidCrystal_I2C.h>
// I2Cアドレス:0x27 桁数:1 行数:2
LiquidCrystal_I2C lcd(0x27,16,2);
void setup()
{
}
void loop()
{
lcd.init(); // 初期化
lcd.backlight(); // バックライト
lcd.setCursor(0,0); // カーソル位置 桁0,行0
lcd.print("Hello!"); // "Hello!"表示
lcd.setCursor(13,0); // カーソル位置 桁11,行0
lcd.print("LCD"); // "LCD"表示
lcd.setCursor(0,1); // カーソル位置 桁0,行1
lcd.print("Japan!"); // "Japan!"表示
lcd.setCursor(9,1); // カーソル位置 桁11,行1
lcd.print("I2C Lib"); // "I2C Lib"表示
while(1)
{
}
}
コンパイル後の容量は次のとおり。
>最大65536バイトのフラッシュメモリ/スケッチが16808バイト(25%)使用
>最大20480バイトのRAM/グローバル変数が3016バイト(14%)使用
ライブラリ LiquidCrystal を使用したときの容量は次のとおり。
>最大65536バイトのフラッシュメモリ/スケッチが15480バイト(23%)使用
>最大20480バイトのRAM/グローバル変数が2848バイト(13%)使用
メモリの使用量はフラッシュメモリ 1.3kバイト、RAM が 168バイトそれぞれ増えた。
配線を簡素化できるのでメモリの使用量増加は良しとする。
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |