注意:すべてのOSOYOO ARDUINO用製品はサードパーティー製品であり、ARDUINOと完全に互換性があります

認可されたオンライン小売業者:

AMAZON
amzuk

内容

  1. 紹介
  2. 準備
  3. I2C LCD 1602 ディスプレイについて
  4. 接続
  5. I2C アドレスを探す
  6. スケッチのアップロード
  7. プログラムの実行結果
  8. 展開例

紹介

Arduinoでプロジェクトを構築する際、LCDディスプレイから直接出力データを読み取る必要があることがよくあります。このレッスンでは、I2C通信を使用してArduinoにLCDディスプレイを取り付ける方法を説明し、最終的にディスプレイにテキストを表示する方法を示す簡単な例をプログラムする方法を説明します。

準備

ハードウェア

ソフトウェア

I2C LCD 1602ディスプレイについて

LCDディスプレイを統合することは、開発中のプロジェクトの相互作用を大幅に容易にし、ユーザーが一部の出力パラメータを直接読むことを可能にします。これらの値は、温度や圧力などのセンサーで読み取られる単純なテキストまたは数値値、またはOSOYOO Basic Boardが実行するサイクル数などです。

しかし、これらのディスプレイには小さな問題があります。マイクロコントローラ(たとえばArduinoなど)に接続するとき、これらのディスプレイは仮想的に多くの接続ピンを必要とし、ほとんどすべての利用可能なIOを占有し、マルチプロセッサが他のデバイスやセンサーのために出力を残す余地をほとんど残しません。この問題は、I2Cバス上での通信によって解決されています。

LCD1602ディスプレイには、このタイプの通信を処理する統合マイクロチップがあり、入出力情報はすべて2つのピンに限定されます(電源供給を除く)。I2Cは、フィリップスによって開発されたシリアルバスの一種で、2つの双方向ライン、SDA(シリアルデータライン)とSCL(シリアルクロックライン)を使用します。両方のラインは、プルアップ抵抗器を介して接続する必要があります。使用電圧は、標準の5Vおよび3.3Vです。

I2C LCD1602の青いポテンショメータ(下の図を参照)は、バックライトを調整して表示を改善するために使用されます。また、基板にジャンパーがあり、このジャンパーを外すと、バックライトが常にオフになります。

その他の機能の使用については、I2C LCDライブラリのソースコード内のI2C LCD libraryを参照してください。

接続

コードを書く前に、回路を構築する必要があります。以下のようにピンを接続してください。

OSOYOO Basic  Board LCD1602
GND GND
5V VCC
A4 SDA
A5 SCL

注意:

Fritzingのスケッチから、より簡単に接続を確認できます。

I2Cアドレスの検索

各デバイスには、コマンドを受け入れたり、メッセージを送信するために使用するI2Cアドレスがあります。 Unoボードの場合、このアドレスは通常0x27です。しかし、アドレスが0x37、0x24などに変更される場合があります。そのため、デバイスのアドレスを検索しましょう。

ic2_scanner スケッチのzipファイルをダウンロードし、解凍してArduino IDEにロードします。シリアルモニタを開くことで、OSOYOO Basic Boardはアドレス範囲をスキャンして応答を探します。ほとんどのOSOYOO Basic Boardは0x27を表示しますが、別の数値が表示される場合があります。

見つけたアドレスをメモしておき、次のステップで使用します。

スケッチのアップロード

上記の操作が完了したら、USBケーブルを使用してOSOYOO Basic Boardをコンピュータに接続してください。緑色の電源LED(PWRとラベルされています)が点灯するはずです。

ライブラリのインストール

OSOYOO Basic BoardとLCDディスプレイをI2Cプロトコルで使用するためには、コードに含めるための特別なライブラリが必要です。このライブラリの名前は「Liquid Crystal I2C」です。このライブラリは、Arduino IDEのlibrariesフォルダに解凍されたzipファイルとしてダウンロードできます( ここからダウンロードできます)。Arduino IDEから直接ダウンロードすることもできます。メニューから「Sketch」>「include Library」>「Add .ZIP library」を選択してください。

ライブラリのサポート機能

コードプログラム

以下のリンクからスケッチをダウンロードするか、以下のコードをArduino IDEウィンドウにコピーできます。

#include "Wire.h" 
#include "LiquidCrystal_I2C.h"
LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup()
{
 lcd.init();                      // initialize the lcd 
 // Print a message to the LCD.
 lcd.backlight();
 lcd.print("Hello, world!");
}
void loop()
{
}

コンパイルとアップロード

Arduino IDE を開き、OSOYOO Basic Board に対応するボード タイプとポート タイプを選択します。

このスケッチをコンパイルした後、環境内の「アップロード」ボタンをクリックするだけです。数秒待ってください – ボード上のRXとTX LEDが点滅するはずです。アップロードが成功した場合、「アップロードが完了しました。」というメッセージがステータスバーに表示されます。

実行結果

アップロードが完了して数秒後、I2C LCD1602に静的な文字列「Hello, World!」が表示されるはずです。

拡張実験

この実験では、スケッチがOSOYOO Basic BoardとI2C LCDディスプレイの間に接続を作り、2行のテキストを印刷します。最初の行には「Hello all!」、2番目の行には「Welcome to www.osoyoo.com!」というメッセージが表示されます。回路とボード/ポートタイプの設定は、上記の例と同じです。

#include <Wire.h> #include <LiquidCrystal_I2C.h> char array1[]=" Hello all !                "; //the string to print on the LCD char array2[]="Welcome to www.osoyoo.com      "; //the string to print on the LCD int tim = 500; //the value of delay time // initialize the library with the numbers of the interface pins LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display void setup() { lcd.init(); //initialize the lcd lcd.backlight(); //open the backlight  } void loop() { lcd.setCursor(15,0); // set the cursor to column 15, line 0 for (int positionCounter1 = 0; positionCounter1 < 26; positionCounter1++) { lcd.scrollDisplayLeft(); //Scrolls the contents of the display one space to the left. lcd.print(array1[positionCounter1]); // Print a message to the LCD. delay(tim); //wait for 250 microseconds } lcd.clear(); //Clears the LCD screen and positions the cursor in the upper-left  corner. lcd.setCursor(15,1); // set the cursor to column 15, line 1 for (int positionCounter = 0; positionCounter < 26; positionCounter++) { lcd.scrollDisplayLeft(); //Scrolls the contents of the display one space to the left. lcd.print(array2[positionCounter]); // Print a message to the LCD. delay(tim); //wait for 250 microseconds } lcd.clear(); //Clears the LCD screen and positions the cursor in the upper-left corner. }

このスケッチをOsoyoo UNOボードにコンパイルしてアップロードすると、I2C LCD1602に「Hello all!」と「Welcome to www.osoyoo.com」の文字列が表示されるはずです。