2012-06-05 00:46:45 小鯨魚

Arduino 控制16*2 LCD

各式各樣的液晶顯示器對於arduino 要顯示資料來說是非常必要的東西


自己做得要弄得很麻煩, 目前有內建直接輕易控制的函式庫
LiquidCrystal函式庫 - for controlling liquid crystal displays (LCDs)

以16*2這種市面上到處買的到的LCD來說
可以輕易用這樣的方式來控制


#include

LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

void setup()
{
  lcd.print("hello, world!");
}

void loop() {}

 

一行而已, 看起來就很爽!!!
以下解釋一下用法
LiquidCrystal 這個類別宣告的方式有下列幾種, 一般都選第二種最容易
LiquidCrystal(rs, enable, d4, d5, d6, d7)
LiquidCrystal(rs, rw, enable, d4, d5, d6, d7)
LiquidCrystal(rs, enable, d0, d1, d2, d3, d4, d5, d6, d7)
LiquidCrystal(rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7)

 

LCD的顯示資料可允許使用4bit或是8bit的方式來傳送
前者只要四條訊號線,後者要八條,但後者比較快,因為通道大一倍嘛
rs: 連到LCD的RS腳位
rw: 連到LCD的RW腳位
enable: 連到LCD的enable腳位
d0~d7: 資料傳輸用腳位
以上腳位到底如何接得看LCD的說明書,通常買來都會內附
必須有這個才能用,因為筆者手上的16*2LCD就有四種不同接法,沒說明書亂接會比較危險

 

常用指令
lcd.begin(cols, rows) 可以輕易設定要顯示的行列數量


lcd.clear() 清畫面


lcd.print(data)  用來印出一堆資料,
他的兄弟lcd.print(data, BASE),裡面的BASE可以指定用哪一種進位方式來顯示


lcd.write(data) 用來印一個字

lcd.blink() lcd.noBlink() 可用來控制游標的顯示方式要不要閃爍


lcd.cursor() and noCursor() 用來控制要不要顯示游標

lcd.setCursor(x,y); 控制游標位置,起點為左上角,這和我們熟知的數學座標是顛倒的,但電腦裡面幾乎所有的座標系都這樣

lcd.scrollDisplayLeft()  lcd.scrollDisplayRight()  控制往左或是往右捲動一格

lcd.autoscroll()  lcd.noAutoscroll() 控制要不要自動捲,但鯨魚通常使用後者

 

大概就是這些常用指令囉
他其實還有別的指令
但有以上這些已經無所不能了

 

 

 

(悄悄話) 2012-08-26 13:56:12
(悄悄話) 2012-08-25 23:43:30