今回はArduino UNO R4を使った内容です。具体的には、このようなLCDを使って文字を表示させます。LCDとは、(Liquid Crystal Display)で、いわゆる液晶ディスプレイのことです。
下の写真のHello world!と表示しているのが現物です。
Arduinoの電子工作キットを購入したことがあれば、そのなかにはいっているかもしれません。もちろん単体でも購入することは可能ですので後ほどご紹介します。
今回のポイントは、I2C通信を使って、Arduino UNO R4で文字を表示させるところです。I2Cを使って通信するタイプのLCDは、配線がラクチンで、さらにArduinoに書き込むスケッチもライブラリを使用することでほとんでコーディングすることなくお好きな文字を表示できます。
LCD(液晶ディスプレイ)にArduinoを使って好きな文字を表示する方法がわかる。
Youtubeチャンネルにさまざまな動画を上げています。
↓↓↓こちらからYoutubeチャンネルにアクセス!! ↓↓↓
本ブログはアフィリエイトを用いた広告を掲載しています。
使用するもの:ArduinoとI2C接続のLCD
今回ご紹介する内容で必要になるものは、Arduino UNO R4とI2C通信用のIC(PCF8574T)が乗ったLCDの2つです。後ほど詳しく解説しますが、プルアップ用の抵抗は不要です。
Arduino UNO R4もLCDもどちらも通販で入手可能です。近くに電子部品を取り扱っているような店舗がない場合でも安心ですね。
使用するもの:Arduino UNO R4
今回はArduino UNO R4で解説します。ただ、この機種は限定ではありません。Arduinoシリーズであればたいていのモデルで同じようにLCDに文字を表示させることができます。
ですから、すでにArduinoシリーズの何かをお持ちでしたら、新規でArduino UNO R4を購入する必要はありません。ただし、ここからの解説で登場する配線図などはArduino UNO R4を想定していますので、ご自身のArduinoに対しての読み替え作業だけはお願いします。
使用するもの:I2C接続のLCD
メインパーツのLCDです。今回はi2C通信でArduinoと接続しますので、こちらのようにI2C通信ができるモジュールが乗ったものを選択しましょう。
他にも、「I2C LCD」とAmazonなどの通販サイトで検索してみてください。さまざまなLCDがラインナップされています。ただし、今回紹介する方法に対応しているのは上記で紹介したLCDですので、ハードルをできるだけ低くしたい。すぐにやってみたい。コピペでやってみたい!という場合はこちらのLCDが良いかと思います。
また、もし違うLCDが気になるのであれば、本記事を理解した上でステップアップとして挑戦してみるのも面白いかもしれませんね。
配線方法
続きまして、Arduinoと、LCDを配線しましょう。配線方法はいたってシンプルです。たった4本の線をつなぐだけで配線作業は終了です。
もしI2C通信ではないLCDを配線しようとしら??
たった4本の接続で済むのが実はI2C通信のおかげなんです。もしI2C通信のモジュールが載っていないLCDの場合は、電源も含めて8本Arduinoと接続する必要があり大変です。I2Cを使わないで接続した場合の配線図はこちらのようになります。
今回使用のI2C通信のLCDを配線する方法
それでは本題のI2C通信を使ったLCDの配線方法をご覧ください。
たったこれだけです。解説しますと、I2C通信で必要となるのは、SDAとSCLの信号線の2本と、LCDを駆動するための電源供給するために2本つなげます。
Arduinoシリーズの場合は、ボードのどこかにSDAとSCLの印字されたピンがあるはずです。お手持ちのArduinoのピン配置を確認していただいて、SDAとSCLを正しく接続してください。
手順を見てお分かりのとおり、先ほどお伝えしたように2(信号線)+2(電源)で4本のみで接続するだけで配線作業は終了になります。拍子抜けするほど簡単ですよね!
初期設定(セットアップ)方法
配線が完了したら、いよいよArduinoとPCを接続して初期設定をします。初期設定とはいっても、何か複雑なことをするわけではないのでご安心ください。やることは次の2つです。
可変抵抗をいじって、LCDの表示輝度を調整する
これは物理的に設定する内容です。まずはLCDの裏側をご覧ください。このようにI2Cのモジュールがあると思います。
そのモジュールのこちら。半固定抵抗と言いますが、こちらを回すことで抵抗値が変わり、LCDの明るさが変更できます。回すにはドライバーなどで回しましょう。
こちらを調整がなぜ重要なのかお見せしましょう。まずはこちらは明るさ調整がちょうどいい状態です。
それに比べてこちらはどうでしょうか?なにも映っていないように見えますね?
ただ、これはArduinoに書き込んだスケッチが異なるのでもなく、配線が間違っているわけでもありません。先ほどからお伝えしているように、半固定抵抗を調整しただけです。
半固定抵抗の調整の重要性がわかっていただけたところで、どうやって合わせるかについてですが、このようにすこし四角いマスが見える程度で良いかと思います。
まずは表示されているかどうかを確認したいので、この程度で調整しておいて、文字が表示されることがわかったら微調整してお好きな明るさにするのがおすすめです。
LCDのI2Cアドレスを確認する
次にLCDのI2Cアドレスです。
I2C通信は、接続されているモジュールごとにアドレスが振り分けされます。ですから、I2C通信を使うようなモジュールを複数つなげて一気に使用することも可能です。
ただ逆に、同じアドレスを重複(ちょうふく)して使用することはできません。ですから、まったく同じLCDを2個同時に使いたい….という場合にはアドレスがバッティングするため、そのままでは使用できません。
アドレスがバッティングする場合は、アドレスを変更するためにモジュール上で工夫されている場合があります。それがここです。
このA0~A2それぞれをはんだでブリッジしてあげるとI2Cのアドレスを変更することができます。この件は話すと少し脱線してしまうので別記事として作成します。
さて、本題ですが、お手持ちのLCDのI2Cアドレスはいくつなのか?これが知りたいことですが、商品説明に書いてあったり、そもそも電子工作キットに入っていたものだからわからない…ということもありますよね?
そんな場合はこちらの記事のように現在接続中のI2C通信のモジュールのアドレスを調べることができます。
わたしは2台LCDを接続しているので、アドレスが2つ表示されていますが、1つしか接続していない場合は1つしか表示されません。2つ表示されなくても正常なのでご安心ください。
LCDで文字を表示させるためのスケッチ
いよいよ仕上げです。LCDに文字を表示させましょう。手順は以下の通りです。
ライブラリ(LiquidCrystal i2C)をインストールする
ライブラリをインストールすることで、簡単にLCDに文字が表示できます。ライブラリというのは、いわゆる便利ツールです。この便利ツールを使うことで、一からコードを書く必要がなく、ショートカットしてやりたいことだけ実現できます。
このライブラリがArduino関連で豊富にあることから、お手軽に電子工作が始められるというのも普及が広まった要因だと思います。
ではインストール方法ですが、まずArduino IDEのVer.は、2.3.2であることを確認してください。これが古いと、これから使うライブラリが正しく認識されない可能性があります。
Ver.はArduino IDE画面上の左上に記載されています。2024年6月2日現在の最新Ver.が2.3.2です。もし古いな…と思ったら、Arduino公式のHPよりダウンロード&インストールしてみてください。
では、インストール方法です。こちらのように、本棚のようなアイコンをクリックして、検索窓にliquid crystal i2cと入れて検索してみましょう。
すると、このように出てきますので、インストールボタンを押します。これでライブラリのインストールは完了です。
スケッチを書いて文字を表示してみる
ライブラリがインストールできたら、実際にこちらのようにスケッチを書いてみましょう。
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);// ここで調べたI2Cアドレスを入力今回は0x27
void setup() {
lcd.init();// LCDの初期化処理
lcd.clear();// LCDに表示されているものをいったん消去
lcd.backlight();// LCDのバックライトを初期化
lcd.setCursor(2, 0);// (列,行)で番号指定。ここから文字を書き始める。始点。
lcd.print("Hello!");// ここに表示したい文字を""で囲んで記入する
lcd.setCursor(2, 1); // (列,行)で番号指定。ここから文字を書き始める。始点。
lcd.print("hobbyhappy");// ここに表示したい文字を""で囲んで記入する
}
void loop() {
// loop関数には何も書かなくてOK
}
正しくライブラリがインストールできていれば、先ほど調べたI2Cのアドレスを記入するだけで文字が表示されるはずです。
I2Cのアドレスを記入するのが、上から3行目の()のなかです。わたしのばあいは0x27でしたが、ご自身のLCDのアドレスを調べたうえでこちらに記入してみてください。
表示したい文字は、lcd.printという関数の引数(かっこの中に入れる)ことで表示されます。ただし、日本語を入れたくなりますが、これだけでは日本語は表示できません。
少し工夫すればカタカナは表示可能なのですが、そちらはいったん別記事として紹介予定です。
今回のまとめ
今回はI2Cモジュールが付いたLCDに、Arduinoで接続して文字を表示するところまで解説しました。配線方法がシンプルで、ライブラリもすでにあることから、そこまで時間がかからずに文字の表示までできたのではないでしょうか?
I2Cで通信するモジュールや、今後ライブラリを使うタイミングでも、今回ご紹介した内容が頭の片隅にあるだけで理解度が全然違うと思います。
ぜひ、今回の方法をマスターして他のモジュールにもチャレンジしてみて下さい!
コメント