:::

7-1 LCD基本使用

一、測試程式

預設位址為0x27或0x3F

#include <Wire.h>  // Arduino IDE 內建
#include <LiquidCrystal_I2C.h>

// Set the pins on the I2C chip used for LCD connections:
//                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

void setup() {
  Serial.begin(9600);  // 用於手動輸入文字
  lcd.begin(16, 2);    // 初始化 LCD,一行 16 的字元,共 2 行,預設開啟背光

  // 閃爍三次
  for(int i = 0; i < 3; i++) {
    lcd.backlight();  // 開啟背光
    delay(250);
    lcd.noBacklight();// 關閉背光
    delay(250);
  }
  lcd.backlight();

  // 輸出初始化文字
  lcd.setCursor(0, 0); // 設定游標位置在第一行行首
  lcd.print("Hello, world!");
  delay(1000);
  lcd.setCursor(0, 1); // 設定游標位置在第二行行首
  lcd.print("TN CS");
  delay(8000);

  // 告知使用者可以開始手動輸入訊息
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Use Serial Mon");
  lcd.setCursor(0, 1);
  lcd.print("Type to display");
}

void loop() { 
  if (Serial.available()) {     // 當使用者手動輸入訊息
    delay(100);   // 等待一小段時間,確認資料都接收下來了    
    lcd.clear();  // 清除舊訊息    
    while (Serial.available() > 0) {  // 讀取新訊息    
      lcd.write(Serial.read()); // 將訊息顯示在 LCD 上
    }
  }
}

 

 

二、begin( )函式 

begin( )函式的功能是用來指定顯示器的總行數及總列數,有 cols、rows 等二個 參數必須設定,cols 參數設定 LCD 的總行數,rows 參數設定 LCD 的總列數。在使 用 begin( )函式之前,必須先使用 LiquidCrystal( )函式宣告一個 LiquidCrystal 資料型 態的物件。 
格式: lcd.begin(cols,rows)  
範例:

include <LiquidCrystal.h>    //使用LiquidCrystal函式庫。
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2); //宣告 lcd 變數。 
lcd.begin(16,2);     //使用16 行2列的 LCD。 

 

三、print( )函式

print( )函式的功能是將文字寫入 LCD 中,有 data、BASE 兩個參數可以設定, data 參數是所要寫入至 LCD 中的文字,data 可以是 char、byte、int、long 或 string 等資料型態,如果 data 是數值,可以使用 BASE 參數設定所要顯示數值的基數,有 BIN(二進)、OCT(八進)、DEC(十進)、HEX(十六進)等四種基數可以選擇。 print( )函式會傳回所寫入的位元組總數。在使用 print( )函式之前,必須先使用 LiquidCrystal( )函式宣告一個 LiquidCrystal 資料型態的物件。 
格式: print(data)  
 print(data,BASE)  
範例:

include <LiquidCrystal.h>    //使用LiquidCrystal函式庫。
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2); //宣告 lcd變數。 

   lcd.print("hello, world!");     //寫入字元"hello, world!"。
   lcd.print(15,BIN);    //顯示 15 的二進數值"1111"。 
   lcd.print(15,OCT);    //顯示 15 的八進數值"17"。 
   lcd.print(15,DEC);    //顯示 15 的十進數值"15"。 
   lcd.print(15,HEX);    //顯示 15 的十六進數值"F"。 

 

四、setCursor( )函式 

setCursor( )函式的功能是設定游標的位置,有 col、row 等二個參數必須設定, col 參數設定 LCD 游標的行位置,由 0 開始,row 參數設定 LCD 游標的列位置,由 0 開始。在使用 setCursor()函式之前,必須先使用 LiquidCrystal( )函式宣告一個 LiquidCrystal 資料型態的物件。 
格式: setCursor(col,row)  
範例:

include <LiquidCrystal.h>    //使用LiquidCrystal函式庫。
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2); //宣告 lcd 變數。 
lcd.setCursor(0,1);     //設定游標在第0行,第1列。 

 

五、clear( )函式

clear( )函式的功能是用來清除 LCD,同時將游標移至左上角,不須設定任何參 數,clear( )函式執行情形如圖 10-3 所示。在使用 clear( )函式之前,必須先使用 LiquidCrystal( )函式宣告一個 LiquidCrystal 資料型態的物件。

 

六、home( )函式

home()函式的功能是將游標移至 LCD 的左上角,不須設定任何參數,home( ) 函式執行情形如圖 10-4 所示。在使用 home( )函式之前,必須先使用 LiquidCrystal( ) 函式宣告一個 LiquidCrystal 資料型態的物件。

 

七、scrollDisplayLeft( ) / scrollDisplayRight( )函式

scrollDisplayLeft( )函式的功能是使整個 LCD 的內容向左捲動一行,不須設定任 何參數,scrollDisplayLeft( )函式執行情形如圖 10-8 所示。scrollDisplayRight( )函式 的功能是使整個 LCD 的內容向右捲動一行,不須設定任何參數

 

 


搜尋