【Arduino入門】使用LCD 1602 I2C顯示文字&自動捲動教學

在學習如何使用Arduino序列埠顯示文字或數值後,我們常常會想要一種更方便、不需依賴電腦即可查看這些信息的方法。LCD 1602 I2C顯示器就是一個理想的選擇,它可以讓你輕鬆將Arduino收集到的數據顯示出來。此篇文章將詳細介紹如何實現這一目標。

LCD 1602 I2C顯示器簡介
LCD 1602顯示器是一種可以顯示16列2行文字的液晶顯示器。I2C介面則為這款顯示器提供了一種通過僅使用兩條信號線(數據線和時鐘線)來與Arduino通信的能力,大大簡化了連接過程。

LCD1602_I2C接線圖(圖片出處"乘哥智能ARDUINO分享網")
  • Arduino UNO控制板 x 1個
  • LCD 1602 I2C顯示器 x 1個
  • 數條杜邦線

設計邏輯想法(I)

首先來了解如何將字串啟始位置的放法:
  1. 在LCD1602顯示器,第1行&第0列顯示”Hello World”,第2行&第0列顯示”AIoT Brian” 
  2. 試著將字串置中,第1行&第3列顯示”Hello World”,第2行&第3列顯示”AIoT Brian”
P.S.:需要引用LiquidCrystal_I2C函式庫,請連結至GitHub下載,並直接下載壓縮檔即可,再到Arduino IDE直接加入這zip檔就可以加入編輯器中,如下下圖所示
LCD1602顯示座標圖(圖片出處"瘋狂創客")
加入LiquidCrystal_I2C函式庫

程式設計&執行照片(I)

				
					#include <Wire.h>               // I2C函式庫
#include <LiquidCrystal_I2C.h>  // LCD1602_I2C函式庫

LiquidCrystal_I2C lcd(0x27, 16, 2);  // LCD1602 I2C位址,默認為0x27或0x3F,依I2C背板的晶片不同而有差異,16、2為LCD顯示器座標(列, 行)。


void setup() {
  lcd.init();  // 初始化LCD
  lcd.backlight();
}
void loop() {
  lcd.setCursor(0, 0);       // (colum, row)從第1行的第0列位置開始顯示
  lcd.print("Hello World");  // 在LCD上顯示Hello World
  lcd.setCursor(0, 1);       // (colum,row)從第2行第0列位置開始顯示
  lcd.print("AIoT Brian");   // 在顯示器上顯示AIoT Brian
}
				
			
字串啟始位置_左側
				
					#include <Wire.h>               // I2C函式庫
#include <LiquidCrystal_I2C.h>  // LCD1602_I2C函式庫

LiquidCrystal_I2C lcd(0x27, 16, 2);  // LCD1602 I2C位址,默認為0x27或0x3F,依I2C背板的晶片不同而有差異,16、2為LCD顯示器座標(列, 行)。


void setup() {
  lcd.init();  // 初始化LCD
  lcd.backlight();
}
void loop() {
  lcd.setCursor(3, 0);       // (colum, row)從第1行的第3列位置開始顯示
  lcd.print("Hello World");  // 在LCD上顯示Hello World
  lcd.setCursor(3, 1);       // (colum,row)從第2行第3列位置開始顯示
  lcd.print("AIoT Brian");   // 在顯示器上顯示AIoT Brian
}
				
			
字串啟始位置_置中

設計自動捲動邏輯想法(II)

如果字串太長無法在一列中全部顯示時,設計成自動捲動字幕,讓字串的字一個一個由右至左移動,如跑馬燈出現一樣

設計流程圖(II)

程式設計(II)

				
					#include <Wire.h>               // I2C函式庫
#include <LiquidCrystal_I2C.h>  // LCD1602_I2C函式庫

LiquidCrystal_I2C lcd(0x27, 16, 1);  //LCD1602顯示設定只出現1行

String Line = "Welcome to AIoT Brian Blog";  //修改成你要顯式的字串

void setup() {

  // 初始化LCD
  lcd.init();
  lcd.backlight();
}

void loop() {

  for (int i = 16; i >= 0; i--) {  //使用for迴圈將字串文字,一個一個由右(15列)至左(0列)依序顯示出現
    lcd.setCursor(i, 0);
    lcd.print(Line);
    lcd.print(" ");
    delay(500);
  }

  for (int i = 0; i <= Line.length(); i++) {
    lcd.setCursor(0, 0);
    lcd.print(Line.substring(i + 1, Line.length()));  //每次迴圈把字串往後遞減一格來選取,並顯示到最後一個字
    lcd.print(" ");
    delay(500);
  }
}
				
			

實際執行影片

結論

本次教程中,我們學習了如何使用Arduino UNO搭配LCD 1602 I2C顯示器展示文字信息,並進一步實現了文字從右至左的滾動效果。這不僅豐富了我們的顯示內容,也為我們提供了更多創造性的展示方式。透過這些知識,你將能夠更加自由地設計和實現各種互動項目,開啟無限的可能性。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

返回頂端