液晶螢幕LCD
硬體
硬體
GND:黑線
VCC:紅線
SDA:黃線
SCL:綠線
插在A4A5的孔位
程式
程式
範例程式在Motoduino_V11/LiquidCrystal_I2C/HelloWorld
使用的LED螢幕型號叫做「1602」,代表可顯示16欄2行的數字或字母。其實就像XY座標一樣,左上角是原點,括弧裡第一個數字是X座標,第二個數字是Y座標,只是Y座標是向下為正(一般熟悉的XY座標是向上為正)
在loop()裡增加一些程式
在loop()裡增加一些程式
lcd.setCursor(0, 1);//這是設定顯示的位置,第一個數字是第幾個Column,第二個數字是Line。
- 注意這些欄或行都是從零開始
- 下面的範例程式是顯示讀秒,在0-9的秒數時,數字只會在(0,1)的格子出現,而超過9之後,數字會用到(0,1)和(1,1)兩個格子
- 請自己修改 lcd.setCursor()內的數字,看看顯示出來的畫面有什麼變化。
- 如果要關閉背光,用 lcd.noBacklight();
- 如果要清除螢幕, 用lcd.clear();
- 以後設計程式時,如果要在同一行顯示兩個不同的變數(例如溫度和濕度),要記得預留空間。比方說溫度放在(0,1),濕度放在(7,1)
習題
習題
請把擴充版上的滑桿值顯示到LCD螢幕上,以下是參考程式
當滑桿滑到最右邊,再滑回最左邊的時候,會發現第四格會有殘留的數字。這有很多種解法,一種是把所有數字前面都補零,例如1變成0001。或是依照數字的長短決定游標的位置。另一種解法,就是當讀到新數值的時候,就把螢幕刷新(clear),請參考範例。
習題
習題
如果要讓LCD上面同時顯示兩種變數,例如滑桿值和光線值,請自己做看看。底下是範例,最後一行的delay(1000),是為了讓LCD的螢幕刷新的速度慢一點,請試著把delay(1000)刪除,看看LCD會發生什麼事情?
備註:LCD螢幕的Address
備註:LCD螢幕的Address
要怎麼知道 LCD螢幕的address要設定成0x27呢,你可以用這隻程式(網頁最底下有個Get Code,可以複製程式碼)。上傳Arduino,並接上LCD螢幕,就可以在序列埠監控視窗看到程式掃描出來的address了