七段LED顯示器構造簡單使用容易,但也因此可以顯示的訊息就很少,如果需要顯示較多較複雜的訊息,一般都會使用所謂的LCD顯示器模組(或者稱為LCM);以顯示的內容來區分可分LCD顯示器為文字(Character)型和繪圖(Graphic)型兩種,後者也可以顯示文數字。由於本書是著重在IOT物聯網方面的應用,因此不太會使用到複雜或大型的繪圖(Graphic)型LCD顯示器,所以在此僅介紹一些簡單LCD顯示器 使用方法。
◎功能與動作說明:
1、 使用4位元介面可顯示2行每行16個字元的LCD顯示器做為顯示元件。
2、 從第1行的第2個位置開始,顯示"Hello wordl.."的訊息。
3、 從第2行的第2個位置開始,顯示"This is line 2!"的訊息。
◎ 電路圖:
圖4、10 16X2 4位元介面LCD顯示器接線與電路圖
◎程式說明與列表:
由於在Arduino IDE中跟LCD顯示器有關的應用函式都不是內建的,但是在安裝時已經放在預設的函式庫路徑中,所以必須以引用(#include)的方式加入到程式中,因此程式第一行便在宣告所需使用到的LCD程式庫「LiquidCrystal.h」。
接這在第3行宣告並建立一個名稱為”lcd”的LCD顯示器物件變數:
3. LiquidCrystal lcd(14,2,0,4,5,16); //設定 4 Bits 介面LCD顯示器的硬體接腳
這樣的格式代表使用4 bits的資料匯流排介面。
在「LiquidCrystal.h」這個LCD程式庫中,共有四種格式的”LiquidCrystal()"物件變數格式,主要差別在使用到的引數數目,這些引數的內容包括3隻控制腳(即EN、RS、RW)與資料匯流排(D0~D7),由於所有的LCD函式指令都是寫入動作,所以RW這隻讀/寫控制腳可以不必使用;此外其中的匯流排引數可以是4位元(D4~D7)也可以是8位元(D0~D7),由於一般使用時在效果和速度上感覺不到兩者的差異,所以大都使用4位元的匯流排介面,以減少硬體接線和節省腳位。
由前面的說明可以得到下列四種”LiquidCrystal()"物件變數定義的格式:
LiquidCrystal(RS, EN, D4, D5, D6, D7)
LiquidCrystal(RS, EN, RW, D4, D5, D6, D7)
LiquidCrystal(RS, EN, D0, D1, D2, D3, D4, D5, D6, D7)
LiquidCrystal(RS, EN, RW, D0, D1, D2, D3, D4, D5, D6, D7)
如果沒有別的原因當然是會選用第一種使用4位元資料匯流排的格式了!
由於本範例的動作很簡單,所以整個程式在初始化部分(setup())就完成了。程式的第8行呼叫LCD的初始化指令"lcd.begin",設定LCD顯示器的外觀,也就是顯示的行數與每一行的字數,在此我們依照實際使用的LCD硬體架構,設定為可顯示二行,每行有16個字元。
8 lcd.begin(16,2); // 初始化LCD顯示器
接著呼叫游標歸位指令"lcd.home()"(第10行),讓游標回到左上角初始的位置(座標為0,0),再以游標設定指令"lcd.setCursor(x,y)" (第12行)把游標移動到訊息開始顯示的位置;其中的引數’y’代表行數(也就是垂直方向),’0’代表第一行,而’x’代表每行水平方向的位置,同樣是由’0’開始;在此’y’的值只能為0~1,而’x’則限制在0~15。
在設定好游標也就是訊息開始顯示的位置之後,再使用LCD顯示指令”lcd.print()” (第13、15行)把要顯示的內容放到引數內,送到LCD顯示器就大功告成,在此兩種要顯示的訊息都是以同樣的方式完成。
以下是完整的程式列表:
#include <LiquidCrystal.h> // 引入LCD顯示器函式庫
LiquidCrystal lcd(14,2,0,4,5,16); // 設定 4 Bits 介面LCD顯示器的硬體接腳
// 顯示畫面為每行16個字元,一共2行
void setup()
{
lcd.begin(16,2); // 初始化LCD顯示器
// 將游標移回起始點,即第一行的第一個位置
lcd.home();
lcd.setCursor(1, 0); // 將游標移到第1行的第2個位置
lcd.print("4Bit LCD Test.."); // 顯示"Hello wordl.."的訊息
lcd.setCursor(1, 1); // 將游標移到第2行的第2個位置
lcd.print("This is line 2!"); // 顯示"This is line 2!"的訊息
}
void loop()
{
}
程式名稱:LCD_4bit_2Line1.ino
沒有留言:
張貼留言