注釈

こんにちは、SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community on Facebookへようこそ!Raspberry Pi、Arduino、ESP32についての探求を仲間と共に深めましょう。

参加する理由

  • 専門サポート: コミュニティとチームの助けを借りて、購入後の問題や技術的な課題を解決しましょう。

  • 学びと共有: スキルを向上させるためのヒントやチュートリアルを交換しましょう。

  • 独占プレビュー: 新製品の発表やプレビューに早期アクセスできます。

  • 特別割引: 最新製品の限定割引を楽しめます。

  • フェスティブプロモーションとギブアウェイ: ギブアウェイやホリデープロモーションに参加しましょう。

👉 一緒に探求し、創造する準備はできましたか?[here]をクリックして今日参加しましょう!

2.5 I2Cインターフェース

このレッスンでは、マイクロコントローラとさまざまな周辺機器間の通信の基盤であるI2Cインターフェースの機能について詳しく説明します。ここでは、ESP32のI2Cインターフェースを使用して、LCD1602モジュールを駆動し、文字を表示する方法に焦点を当てます。LCDモジュールの初期化、表示パラメータの設定、およびテキストデータの送信方法を学びます。カスタムメッセージ、センサーの読み取り値、またはインタラクティブなメニューを表示することを目指している場合でも、LCD1602をマスターすることで、情報豊かでインタラクティブなディスプレイを作成する能力が広がります。

使用可能なピン

このプロジェクトで使用するESP32ボードの使用可能なピンの一覧です。

使用可能なピン

使用説明

IO21

SDA

IO22

SCL

必要なコンポーネント

このプロジェクトで必要なコンポーネントは次のとおりです。

コンポーネント紹介

購入リンク

ESP32 WROOM 32E

BUY

ESP32 カメラ拡張ボード

-

ジャンパーワイヤー

BUY

I2C LCD1602

BUY

回路図

../_images/circuit_2.6_lcd.png

配線図

../_images/2.6_i2clcd1602_bb.png

コード

  1. このコードをダウンロードするか、Arduino IDEに直接コピーします。

    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>
    
    //SDA->21,SCL->22
    LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display
    
    int count = 0;
    
    void setup()
    {
      lcd.init();// initialize the lcd
      lcd.backlight(); // Turns on the LCD backlight.
      lcd.print("Hello, world!");   // Print a message to the LCD.
      delay(3000);
    }
    
    void loop()
    {
      lcd.clear();
      lcd.setCursor(0, 0); // Sets the cursor position to the first row and first column (0, 0).
      lcd.print("COUNT: ");
      lcd.print(count); // Prints the current value of the count variable.
      delay(1000);
      count++; // Increments the counter by 1.
    }
    

    注釈

このプログラムがアップロードされると、I2C LCD1602は3秒間 "Hello, Sunfounder!" のウェルカムメッセージを表示します。その後、画面には「COUNT:」ラベルとカウント値が表示され、毎秒増加します。

注釈

コードと配線が正しくてもLCDが表示しない場合、背面のポテンショメータを調整してコントラストを上げることができます。

どのように動作しますか?

LiquidCrystal_I2C.h ライブラリを呼び出すことで、簡単にLCDを駆動できます。

#include <LiquidCrystal_I2C.h>

ライブラリの関数:

  • Arduinoボードに接続された特定のLCDを表す LiquidCrystal_I2C クラスの新しいインスタンスを作成します。

    LiquidCrystal_I2C(uint8_t lcd_Addr,uint8_t lcd_cols,uint8_t lcd_rows)
    
    • lcd_Addr: LCDのアドレス。デフォルトは0x27です。

    • lcd_cols: LCD1602には16列があります。

    • lcd_rows: LCD1602には2行があります。

  • LCDを初期化します。

    void init()
    
  • (オプションの)バックライトを点灯させます。

    void backlight()
    
  • (オプションの)バックライトを消灯させます。

    void nobacklight()
    
  • LCDディスプレイをオンにします。

    void display()
    
  • LCDディスプレイをすばやくオフにします。

    void nodisplay()
    
  • ディスプレイをクリアし、カーソル位置をゼロに設定します。

    void clear()
    
  • カーソル位置を指定した列と行に設定します。

    void setCursor(uint8_t col,uint8_t row)
    
  • テキストをLCDに表示します。

    void print(data,BASE)
    
    • data: 表示するデータ (char, byte, int, long, または string)。

    • BASE (optional): 数値を表示する際の基数。

      • BIN バイナリ (基数2)

      • DEC デシマル (基数10)

      • OCT オクタル (基数8)

      • HEX 16進数 (基数16)