LCD Keypad Shield擴展板,快速上手
這款Arduino的LCD按鈕模組大家應該蠻常見的,上面有一塊16x2的LCD,還內建了上、下、左、右、選擇,共5個按鍵,如果是要設計選單類的介面,還蠻方便的。而且它是擴展板模式,直接插到UNO板上就可以了,所以完全不用接線哦!
P.S. RST鍵是對應UNO板的Reset鍵,所以這個按鍵就無法再自訂囉。
購買LCD Keypad Shield擴展板:https://www.jmaker.com.tw/products/lcd-keypad
至於PIN腳的對應很簡單,加上因為是擴展板,所以不用接線,這些PIN的對應只會出現在程式碼中。
PIN 8 => RS
PIN 9 => EN
PIN 4 => D4
PIN 5 => D5
PIN 6 => D6
PIN 7 => D7
PIN 10 => 控制背光
再來就是按鍵的控制了。共有5個按鍵,這個擴展板用一個很省PIN腳的方式來處理,就是透過A0腳,每個按鍵會送出特定範圍的值,這樣我們程式就能判斷是哪個鍵被按囉!
RIGHT => 0~60
UP => 60~200
DOWN => 200~400
LEFT => 400~600
SELECT => 600~800
因為要驅動LCD,所以必須找一套LCD的函式庫來配合。不過這個擴展板並不是透過I2C的介面,所以我們就用最基本的LiquidCrystal函式庫來配合。
LiquidCrystal函式庫一般大家都會安裝的,若真的沒有安裝,只要到「程式管理員」找到它,就可以輕鬆安裝了。
接下來就可以寫程式囉!程式相當簡單,主要是讓LCD先顯示2行文字,然後再等待使用者按下任意鍵。然後再依取得的數值,去判斷使用者是按了哪個鍵,並顯示在LCD上,不難吧!
#include <LiquidCrystal.h>
//使用到的PIN腳
const int pin_RS = 8;
const int pin_EN = 9;
const int pin_D4 = 4;
const int pin_D5 = 5;
const int pin_D6 = 6;
const int pin_D7 = 7;
//填入正確的PIN腳,建立LCD物件
LiquidCrystal lcd( pin_RS, pin_EN, pin_D4, pin_D5, pin_D6, pin_D7);
void setup() {
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print("JMaker.com.tw");
lcd.setCursor(0,1);
lcd.print("Press Key:");
}
void loop() {
int x;
x = analogRead (0); //讀取A0的值
lcd.setCursor(10,1); //把游標移到第2行第11個字
//依A0的值,去判斷是哪個鍵被按下了
if (x < 60) {
lcd.print ("Right ");
}
else if (x < 200) {
lcd.print ("Up ");
}
else if (x < 400){
lcd.print ("Down ");
}
else if (x < 600){
lcd.print ("Left ");
}
else if (x < 800){
lcd.print ("Select");
}
}