I2C接続LCDで表示データを指示する方法まとめ
Arduino IDEでLCDの表示データを表す方法は複数あります。今回はそれをまとめてみました。スケッチと実際の動作画像を付けましたので用途に合わせて使い分けしていただければと思います。
- 2進数で指示する方法
- 16進数で指示する方法
- 表示したい文字を直接クォーテーションで囲んで指示する方法
- ダブルクォーテーションと16進数指示の組み合わせ
- char型に格納した文字列をfor文で書き込む方法
- 計算値をString( )に格納してfor文で書き込む方法
2進数で指示する方法
データシートにある7~0bitの文字パターンを参考に2進数で指示する方法です。1文字づつしか文字指定できないため使いどころはあまりないです。2進数指示はI2C接続の通信波形にそのまま反映されているため、勉強のために使ってみるのもいいかもしれません。
![](https://kimudiary.com/wp-content/uploads/2021/11/1.jpg)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
#include <Wire.h> void setup() { Wire.begin();//i2c初期化 init_LCD();//液晶初期化 } void loop() { //「W」を表示 Wire.beginTransmission(0x3E); Wire.write(0x40); Wire.write(0b01010111); Wire.endTransmission(); delay(500); //「o」を表示 Wire.beginTransmission(0x3E); Wire.write(0x40); Wire.write(0b01101111); Wire.endTransmission(); delay(500); //「r」を表示 Wire.beginTransmission(0x3E); Wire.write(0x40); Wire.write(0b01110010); Wire.endTransmission(); delay(500); //「d」を表示 Wire.beginTransmission(0x3E); Wire.write(0x40); Wire.write(0b01100100); Wire.endTransmission(); delay(500); //表示をクリア Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0b00000001); Wire.endTransmission(); delay(500); } //液晶初期化 void init_LCD() { delay(100); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x38); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x39); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x14); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x73); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x52); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x6C); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x38); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x01); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x0C); Wire.endTransmission(); delay(20); } |
![](https://kimudiary.com/wp-content/uploads/2021/11/1_word_display_binary_number-1.gif)
16進数で指示する方法
先に紹介した「2進数で指示」の2進数を16進数に変換して指示する方法です。2進数と同様に1文字づつしか文字指定できないため使いどころはあまりないと思います。下記のプログラムは①で紹介したプログラムから2進数を16進数に変更しただけです。動作自体は同じになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
#include <Wire.h> void setup() { Wire.begin();//i2c初期化 init_LCD();//液晶初期化 } void loop() { //「W」を表示 Wire.beginTransmission(0x3E); Wire.write(0x40); Wire.write(0x57); Wire.endTransmission(); delay(500); //「o」を表示 Wire.beginTransmission(0x3E); Wire.write(0x40); Wire.write(0x6F); Wire.endTransmission(); delay(500); //「r」を表示 Wire.beginTransmission(0x3E); Wire.write(0x40); Wire.write(0x72); Wire.endTransmission(); delay(500); //「d」を表示 Wire.beginTransmission(0x3E); Wire.write(0x40); Wire.write(0x64); Wire.endTransmission(); delay(500); //表示をクリア Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x01); Wire.endTransmission(); delay(500); } //液晶初期化 void init_LCD() { delay(100); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x38); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x39); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x14); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x73); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x52); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x6C); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x38); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x01); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x0C); Wire.endTransmission(); delay(20); } |
表示したい文字を直接クォーテーションで囲んで指示する方法
示したい文字を直接クォーテーションで囲むことで文字を指示することができます。シングルクォーテーション「’」では文字(1文字)、ダブルクォーテーション「”」では文字列(1~複数文字)を指示できます。
C言語では文字はシングルクォーテーション、文字列はダブルクォーテーションで括る、というのがルールになっています。そのため1文字でもダブルクォーテーションで囲めば文字列として扱われます。
また、クォーテーションで囲んで正しく表示できる文字は一部で、それ以外は文字化けします。
・シングルクォーテーションで表示できる文字
![](https://kimudiary.com/wp-content/uploads/2021/11/シングル.jpg)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
#include <Wire.h> void setup() { Wire.begin();//i2c初期化 init_LCD();//液晶初期化 } void loop() { Wire.beginTransmission(0x3E); Wire.write(0x40); Wire.write('!'); Wire.endTransmission(); delay(100); Wire.beginTransmission(0x3E); Wire.write(0x40); Wire.write(' '); Wire.endTransmission(); delay(100); Wire.beginTransmission(0x3E); Wire.write(0x40); Wire.write('#'); Wire.endTransmission(); delay(100); Wire.beginTransmission(0x3E); Wire.write(0x40); Wire.write(' <a href="https://kimudiary.com/wp-content/uploads/2021/11/3_word_display_single_quotation.gif"><img class="aligncenter size-full wp-image-830" src="https://kimudiary.com/wp-content/uploads/2021/11/3_word_display_single_quotation.gif" alt="" width="1024" height="552"></a> <span style="font-size: 20px;"><strong>・ダブルクォーテーションで表示できる文字</strong></span> <a href="https://kimudiary.com/wp-content/uploads/2021/11/ダブル.jpg"><img class="aligncenter size-full wp-image-821" src="https://kimudiary.com/wp-content/uploads/2021/11/ダブル.jpg" alt="" width="892" height="811"></a> <pre class="height-set:true height-mode:2 width-set:true width-mode:2 lang:arduino decode:true" title="ダブルクォーテーションで表示">#include <Wire.h> void setup() { Wire.begin();//i2c初期化 init_LCD();//液晶初期化 } void loop() { Wire.beginTransmission(0x3E); Wire.write(0x40); Wire.write("! #$%&(*+,-./01:"); Wire.endTransmission(); delay(2000); //表示をクリア Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x01); Wire.endTransmission(); delay(100); Wire.beginTransmission(0x3E); Wire.write(0x40); Wire.write(";<=?@A[^_`a{|"); Wire.endTransmission(); delay(2000); //表示をクリア Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x01); Wire.endTransmission(); delay(100); } //液晶初期化 void init_LCD() { delay(100); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x38); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x39); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x14); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x73); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x52); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x6C); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x38); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x01); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x0C); Wire.endTransmission(); delay(20); } |
![](https://kimudiary.com/wp-content/uploads/2021/11/3_word_display_single_quotation.gif)
・ダブルクォーテーションで表示できる文字
![](https://kimudiary.com/wp-content/uploads/2021/11/ダブル.jpg)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
#include <Wire.h> void setup() { Wire.begin();//i2c初期化 init_LCD();//液晶初期化 } void loop() { //「Word」を表示 Wire.beginTransmission(0x3E); Wire.write(0x40); Wire.write("\x57\x6F\x72\x64"); Wire.endTransmission(); delay(1000); //表示をクリア Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x01); Wire.endTransmission(); delay(500); //「ワード」を表示 Wire.beginTransmission(0x3E); Wire.write(0x40); Wire.write("\xDC\x2D\xC4\xDE"); Wire.endTransmission(); delay(1000); //表示をクリア Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x01); Wire.endTransmission(); delay(500); } //液晶初期化 void init_LCD() { delay(100); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x38); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x39); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x14); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x73); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x52); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x6C); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x38); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x01); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x0C); Wire.endTransmission(); delay(20); } |
![](https://kimudiary.com/wp-content/uploads/2021/11/4_word_display_double_quotation.gif)
・エスケープシーケンス \(¥)が必要な文字
![](https://kimudiary.com/wp-content/uploads/2021/11/エスケープ.jpg)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
#include <Wire.h> void setup() { Wire.begin();//i2c初期化 init_LCD();//液晶初期化 } void loop() { Wire.beginTransmission(0x3E); Wire.write(0x40); Wire.write("\"\'\\"); Wire.endTransmission(); delay(1000); Wire.beginTransmission(0x3E); Wire.write(0x40); Wire.write('\"'); Wire.endTransmission(); delay(500); Wire.beginTransmission(0x3E); Wire.write(0x40); Wire.write('\''); Wire.endTransmission(); delay(500); Wire.beginTransmission(0x3E); Wire.write(0x40); Wire.write('\\'); Wire.endTransmission(); delay(500); //表示をクリア Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x01); Wire.endTransmission(); delay(500); } //液晶初期化 void init_LCD() { delay(100); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x38); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x39); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x14); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x73); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x52); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x6C); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x38); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x01); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x0C); Wire.endTransmission(); delay(20); } |
![](https://kimudiary.com/wp-content/uploads/2021/11/5_word_display_quotation_need_escape_sequence.gif)
ダブルクォーテーションと16進数指示の組み合わせ
②と③の組み合わせになります。直接入力では文字化けしてしまう文字も16進数で指示することで正しく表示できます。16進数を示すための「0x」の最初の「0」を無くし、1文字ごとにエスケープシーケンス \(¥)で区切ります。(0x41→\x41)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
#include <Wire.h> void setup() { Wire.begin();//i2c初期化 init_LCD();//液晶初期化 } void loop() { //「Word」を表示 Wire.beginTransmission(0x3E); Wire.write(0x40); Wire.write("\x57\x6F\x72\x64"); Wire.endTransmission(); delay(1000); //表示をクリア Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x01); Wire.endTransmission(); delay(500); //「ワード」を表示 Wire.beginTransmission(0x3E); Wire.write(0x40); Wire.write("\xDC\x2D\xC4\xDE"); Wire.endTransmission(); delay(1000); //表示をクリア Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x01); Wire.endTransmission(); delay(500); } //液晶初期化 void init_LCD() { delay(100); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x38); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x39); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x14); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x73); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x52); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x6C); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x38); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x01); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x0C); Wire.endTransmission(); delay(20); } |
![](https://kimudiary.com/wp-content/uploads/2021/11/6_word_display_double_quotation_need_escape_sequence.gif)
char型に格納した文字列をfor文で書き込む方法
数秒ごとに順番に文字を表示させていくときに使用します。for文を使う関係で文字を書込むためのプログラムを「writeData」という関数にまとめています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
#include <Wire.h> void setup() { Wire.begin();//i2c初期化 init_LCD();//液晶初期化 } void loop() { //「Word・ワード」をchar型の文字列として格納 char moji[] ="\x57\x6F\x72\x64\x0D\xDC\x2D\xC4\xDE"; for(int i = 0; i < 9; i++) { writeData(moji[i]); delay(500); } delay(500); //表示をクリア Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x01); Wire.endTransmission(); delay(500); } //データ書き込み void writeData(byte data){ Wire.beginTransmission(0x3E); Wire.write(0x40); Wire.write(data); Wire.endTransmission(); delay(1); } //液晶初期化 void init_LCD() { delay(100); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x38); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x39); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x14); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x73); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x52); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x6C); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x38); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x01); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x0C); Wire.endTransmission(); delay(20); } |
![](https://kimudiary.com/wp-content/uploads/2021/11/7_word_display_char_double_quotation_need_escape_sequence.gif)
計算値をString( )に格納してfor文で書き込む方法
プログラム内で計算した値を表示させるときに使えます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
#include <Wire.h> void setup() { Wire.begin();//i2c初期化 init_LCD();//液晶初期化 } void loop() { int a = 67; int b = 43; int c = a*b;//a×bを計算 String answer = String(c); for(int i = 0; i < 8; i++) { writeData(answer[i]); } delay(1000); //表示をクリア Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x01); Wire.endTransmission(); delay(1000); } //データ書き込み void writeData(byte data){ Wire.beginTransmission(0x3E); Wire.write(0x40); Wire.write(data); Wire.endTransmission(); delay(1); } //液晶初期化 void init_LCD() { delay(100); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x38); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x39); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x14); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x73); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x52); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x6C); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x38); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x01); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x0C); Wire.endTransmission(); delay(20); } |
![](https://kimudiary.com/wp-content/uploads/2021/11/8_word_display_char_string_for.gif)
A-D変換機能「analogRead」で読み取った数値も表示できるので温度計などのセンサの値を表示させたい時などに使えます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
#include <Wire.h> int SensorValue=0; void setup() { Wire.begin();//i2c初期化 init_LCD();//液晶初期化 } void loop() { SensorValue=analogRead(A0); String AD_conversion_value = String(SensorValue);//AD変換した値を格納 for(int i = 0; i < 4; i++) { writeData(AD_conversion_value[i]); } delay(1000); //表示をクリア Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x01); Wire.endTransmission(); delay(10); } //データ書き込み void writeData(byte data){ Wire.beginTransmission(0x3E); Wire.write(0x40); Wire.write(data); Wire.endTransmission(); delay(1); } //液晶初期化 void init_LCD() { delay(100); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x38); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x39); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x14); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x73); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x52); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x6C); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x38); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x01); Wire.endTransmission(); delay(20); Wire.beginTransmission(0x3E); Wire.write(0x00); Wire.write(0x0C); Wire.endTransmission(); delay(20); } |
![](https://kimudiary.com/wp-content/uploads/2021/11/9_word_display_char_string_for_ad.gif)
まとめ
いろいろな表示方法をご紹介しましたが、その場にあった方法を用いてプログラムを書くようにしましょう。英数字のみであればダブルクォーテーションで表す方法、カタカナを使う場合は16進数による表し方が良いと思います。
参考資料
AE-AQM1602Aのデータシート