Arduino

ArduinoでI2C接続LCDを動かす(表示データの指示方法)

I2C接続LCDで表示データを指示する方法まとめ

Arduino IDEでLCDの表示データを表す方法は複数あります。今回はそれをまとめてみました。スケッチと実際の動作画像を付けましたので用途に合わせて使い分けしていただければと思います。

目次
  • 2進数で指示する方法
  • 16進数で指示する方法
  • 表示したい文字を直接クォーテーションで囲んで指示する方法
  • ダブルクォーテーションと16進数指示の組み合わせ
  • char型に格納した文字列をfor文で書き込む方法
  • 計算値をString( )に格納してfor文で書き込む方法

2進数で指示する方法

データシートにある7~0bitの文字パターンを参考に2進数で指示する方法です。1文字づつしか文字指定できないため使いどころはあまりないです。2進数指示はI2C接続の通信波形にそのまま反映されているため、勉強のために使ってみるのもいいかもしれません。

16進数で指示する方法

先に紹介した「2進数で指示」の2進数を16進数に変換して指示する方法です。2進数と同様に1文字づつしか文字指定できないため使いどころはあまりないと思います。下記のプログラムは①で紹介したプログラムから2進数を16進数に変更しただけです。動作自体は同じになります。

表示したい文字を直接クォーテーションで囲んで指示する方法

示したい文字を直接クォーテーションで囲むことで文字を指示することができます。シングルクォーテーション「’」では文字(1文字)、ダブルクォーテーション「”」では文字列(1~複数文字)を指示できます。

C言語では文字はシングルクォーテーション、文字列はダブルクォーテーションで括る、というのがルールになっています。そのため1文字でもダブルクォーテーションで囲めば文字列として扱われます。

また、クォーテーションで囲んで正しく表示できる文字は一部で、それ以外は文字化けします。

・シングルクォーテーションで表示できる文字

ダブルクォーテーションで表示できる文字

エスケープシーケンス \(¥)が必要な文字

ダブルクォーテーションと16進数指示の組み合わせ

②と③の組み合わせになります。直接入力では文字化けしてしまう文字も16進数で指示することで正しく表示できます。16進数を示すための「0x」の最初の「0」を無くし、1文字ごとにエスケープシーケンス \(¥)で区切ります。(0x41→\x41)

char型に格納した文字列をfor文で書き込む方法

数秒ごとに順番に文字を表示させていくときに使用します。for文を使う関係で文字を書込むためのプログラムを「writeData」という関数にまとめています。

計算値をString( )に格納してfor文で書き込む方法

プログラム内で計算した値を表示させるときに使えます。

A-D変換機能「analogRead」で読み取った数値も表示できるので温度計などのセンサの値を表示させたい時などに使えます。

まとめ

いろいろな表示方法をご紹介しましたが、その場にあった方法を用いてプログラムを書くようにしましょう。英数字のみであればダブルクォーテーションで表す方法、カタカナを使う場合は16進数による表し方が良いと思います。

参考資料

AE-AQM1602Aのデータシート