I2C LCD 1602¶
はじめに¶
I2C LCD1602は、I2Cプロトコルを用いて16x2(16列と2行)の液晶ディスプレイ(LCD)にテキストやキャラクターを表示するデバイスです。Arduinoプロジェクトからの情報、例えばセンサーの読み取り値、メッセージ、メニューなどを表示するために使用できます。I2Cモジュールには、LCDディスプレイ用のパラレルデータにI2Cシリアルデータを変換するPCF8574 I2Cチップが内蔵されています。
原理¶
I2C LCD1602は、通常のLCD1602と、その背面に取り付けられたI2Cモジュールで構成されています。このI2Cモジュールは、ArduinoのI/OポートをI2Cプロトコルを使用して拡張するチップです。I2Cプロトコルは、SDA(シリアルデータ)とSCL(シリアルクロック)の2本のワイヤーを使用するシリアル通信プロトコルです。複数のデバイスがこの2本のワイヤーとユニークなアドレスを用いて通信できます。
I2Cモジュールは、Arduinoからの信号をLCDのコマンドに変換します。LCDには、16x2のセルがあり、それぞれのセルは5x8のドットで構成されています。これらのドットは、電圧をかけることでオンまたはオフにできます。LCDは、ドットの異なる組み合わせをオンまたはオフにすることで、さまざまなキャラクターやシンボルを表示できます。
I2Cアドレス
基本的にデフォルトアドレスは0x27で、一部の場合には0x3Fになることもあります。
デフォルトアドレスの0x27を例に取ると、A0/A1/A2パッドを短絡することでデバイスアドレスを変更できます。デフォルト状態では、A0/A1/A2は1ですが、パッドが短絡されると、A0/A1/A2は0になります。
バックライト/コントラスト
バックライトはジャンパーキャップで有効にでき、キャップを外すとバックライトが無効になります。背面の青いポテンショメーターは、コントラスト(最も明るい白と最も暗い黒との間の明るさの比率)を調整するために使用されます。
ジャンパーキャップ: このキャップによりバックライトを有効にでき、キャップを外すとバックライトが無効になります。
ポテンショメーター: これは、表示されるテキストの鮮明度を調整するために使用されます。時計回りに回すと増加し、反時計回りに回すと減少します。
注釈
LCDの配線が完了したら、Arduinoをオンにして、I2Cモジュール上のポテンショメーターを回して、最初の行に四角が表示されるまでコントラストを調整し、LCDが正常に動作することを確認してください。
使い方¶
使用する電子部品
Arduino Uno R4またはR3ボード * 1
I2C LCD1602 * 1
ジャンパーワイヤー
回路の組立て
コード¶
注釈
ライブラリをインストールするには、Arduinoライブラリマネージャーで "LiquidCrystal I2C" と検索してインストールしてください。
コードの説明¶
ライブラリの取り込みとLCDの初期化:
LiquidCrystal I2Cライブラリがインクルードされ、それに続いてLiquidCrystal_I2Cクラスを使用してLCDオブジェクトが作成されます。この際、I2Cアドレス、列数、行数が指定されます。
注釈
ライブラリをインストールするには、Arduinoライブラリマネージャーで "LiquidCrystal I2C" と検索してインストールしてください。
#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2);
setup()
関数:setup()
関数はArduinoが起動すると一度だけ実行されます。この関数内で、LCDが初期化され、表示がクリアされ、バックライトがオンにされます。その後、LCDに2つのメッセージが表示されます。void setup() { lcd.init(); // initialize the LCD lcd.clear(); // clear the LCD display lcd.backlight(); // Make sure backlight is on // Print a message on both lines of the LCD. lcd.setCursor(2, 0); //Set cursor to character 2 on line 0 lcd.print("Hello world!"); lcd.setCursor(2, 1); //Move cursor to character 2 on line 1 lcd.print("LCD Tutorial"); }
追加のアイデア¶
温度センサーを組み込み、LCDに現在の室温を表示する。