【電子工作】Arduino + LiquidCrystalでLCD1602 + I2Cモジュールを使う(Arduino UNO R3で遊ぼう日記 その3)

投稿日:2022年5月28日
最終更新日:2022年6月4日

Arduino Uno Rev.3でLCD1602 + I2Cモジュールを使う

以前、Raspberry Pi用のキットを買ったときにI2Cモジュール付きのLCD1602が付いてきたのだが、5Vでプルアップされてあり、GPIOの電圧が3.3Vのラズパイにつなぐとちょっとまずそうなので使わずじまいだった。

ということで今回はGPIOの電圧が5VであるAurduinoと接続して、LCDに文字を表示させてみたいと思う。ちなみにLCD1602のI2Cモジュールは色々なメーカーが作っているようだが、大体仕様は同じになっているようだ。こういうやつ↓

 

開発環境

Arduino Uno R3

Windows 10(開発用PC)

LCD1602 + I2Cモジュール

Arduino IDE 1.8.19

LiquidCrystal I2C (Release 1.1.2)

 

ArduinoとLCDを接続する

以下のようにI2CモジュールとArduinoの5V、GNC、SDA、SCLを接続するだけ。なお、I2CなのでSDA、SCLはプルアップが必要だが、テスターで調べてみたところI2Cモジュール内で5Vにプルアップされていたので、今回は外部でプルアップ抵抗はつけていない。

ちなみに、Arduino Uno Rev.3の回路図を見るとI2Cのピンは(SDA/SCL)はA4、A5ピンともつながっているようなので、こちらにつないでもOK。

https://www.arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf

 

LCDを制御するライブラリをインストールする

今回は以下のLiquidCrystal I2Cというライブラリの最新版をインストールして使う。

https://www.arduino.cc/reference/en/libraries/liquidcrystal-i2c/

こちらのページのReleasesから最新版の1.1.2をクリックしてzipファイルをダウンロードする。このzipファイルを、ArduinoのIDEで「スケッチ」→「ライブラリをインクルード」→「.ZIP形式のライブラリをインストール」で選択してインストールする。

ライブラリをインストールしたら、以下のように「スケッチ」→「ライブラリをインクルード」にLiquidCrystal I2Cが表示される。こちらをクリックすればLiquidCrystal I2Cのヘッダーファイルがソースコードにインクルードされる。

 

Lチカのプログラムを書いて実行する

LiquidCrystal I2CのgithubページにあるExampleコードを参考にした。

https://github.com/johnrickman/LiquidCrystal_I2C/blob/master/examples/HelloWorld/HelloWorld.pde

今回は以下のようなコードを書いた。

#include 

LiquidCrystal_I2C lcd(0x27,16,2);

void setup() {
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0,0);
  lcd.print("Never Ending");
  lcd.setCursor(0,1);
  lcd.print("Golden Week...");  
}

void loop() {

}

LiquidCrystal_I2C lcd(0x27,16,2)の部分で、0x27は今回使用しているLCD1602   I2CモジュールのデバイスIDで、その次の数字は文字数と列数を表している(今回のLCDは16文字2列)。デバイスIDは部品によって異なるので、自分が使う部品の仕様書を確認のうえ設定する。ただLCD1602のI2Cモジュールは大体このIDになっているようだが。

書き込み後、無事にLCDに文字が表示された。以下が文字を表示している様子。ゴールデンウィークが終わる前だったので、悲痛な叫びを表示させている(?)

次回はまだノープランなのだが、せっかくなので何かしらの部品とLCDを組み合わせて何かやってみたいと思っている。

 

日記まとめ

Arduinoで遊んでみた軌跡を以下でまとめてます。

【電子工作】Arduino UNO R3で遊ぼう日記 まとめ


投稿者: wakky

映画と旅行が大好きなエンジニア。お酒、ゲーム、読書も好き。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください