“(SKU:RB-01C020)1602液晶按鍵擴(kuò)展板”的版本間的差異
(以“<br/> 右 ==產(chǎn)品介紹== :Arduino LCD1602字符液晶擴(kuò)展板v2.0集國內(nèi)外多款擴(kuò)展板優(yōu)點(diǎn)...”為內(nèi)容創(chuàng)建頁面) |
(→?例子程序) |
||
(未顯示4個(gè)用戶的7個(gè)中間版本) | |||
第1行: | 第1行: | ||
? | + | [[文件:Arduino LCD 1602 Keypad Shield01.jpg|400px|有框|右]] | |
? | [[文件:Arduino LCD 1602 Keypad Shield01.jpg| | + | |
==產(chǎn)品介紹== | ==產(chǎn)品介紹== | ||
? | + | :Arduino LCD1602字符液晶擴(kuò)展板v2.0集國內(nèi)外多款擴(kuò)展板優(yōu)點(diǎn)于一體所設(shè)計(jì),PCB沉金工藝加工,用料十足,主板采用全新優(yōu)質(zhì)2行16個(gè)字符液晶,不僅具有對比度調(diào)節(jié)旋鈕、背光燈選擇開關(guān),還具4個(gè)方向按鍵、1個(gè)選擇按鍵和一個(gè)復(fù)位按鍵;4個(gè)傳感器模擬接口、RB URF v1.1超聲波傳感器接口、藍(lán)牙模塊接口、APC220無線數(shù)傳模塊通信接口、獨(dú)立擴(kuò)出更加易用方便。對于Arduino初學(xué)者來說,不必為繁瑣復(fù)雜液晶驅(qū)動(dòng)電路連線而頭疼了,這款1602液晶擴(kuò)展板真正意義上的將電路簡化,直接將此板插到Arduino Duemilanove控制器上即可,傳感器也僅需一根通用3P傳感器連接線(不分?jǐn)?shù)字連接線與模擬連接線)連接,可輕松實(shí)現(xiàn)傳感器數(shù)據(jù)的記錄顯示。 | |
==規(guī)格參數(shù)== | ==規(guī)格參數(shù)== | ||
1.模塊尺寸:20.5mm×41mm<br/> | 1.模塊尺寸:20.5mm×41mm<br/> | ||
2.模塊重量:57g | 2.模塊重量:57g | ||
? | == | + | ===LCD1602液晶主要參數(shù)=== |
? | + | ||
1.顯示容量:16×2個(gè)字符<br/> | 1.顯示容量:16×2個(gè)字符<br/> | ||
2.芯片工作電壓:4.5—5.5V<br/> | 2.芯片工作電壓:4.5—5.5V<br/> | ||
第13行: | 第11行: | ||
4.模塊最佳工作電壓:5.0V<br/> | 4.模塊最佳工作電壓:5.0V<br/> | ||
5.字符尺寸:2.95×4.35(W×H)mm | 5.字符尺寸:2.95×4.35(W×H)mm | ||
? | === | + | ====LCD1602液晶引腳功能==== |
1602LCD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如下表所示: | 1602LCD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如下表所示: | ||
? | [[文件:Arduino LCD 1602 Keypad Shield02.jpg| | + | [[文件:Arduino LCD 1602 Keypad Shield02.jpg|538px|有框|居中]] |
第1腳:VSS為地電源。<br/> | 第1腳:VSS為地電源。<br/> | ||
第2腳:VDD接5V正電源。<br/> | 第2腳:VDD接5V正電源。<br/> | ||
第25行: | 第23行: | ||
第15腳:背光源正極。<br/> | 第15腳:背光源正極。<br/> | ||
第16腳:背光源負(fù)極。 | 第16腳:背光源負(fù)極。 | ||
? | === | + | ====LCD1602液晶指令說明==== |
1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表下表所示: | 1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表下表所示: | ||
? | [[文件:Arduino LCD 1602 Keypad Shield03.jpg| | + | [[文件:Arduino LCD 1602 Keypad Shield03.jpg|538px|有框|居中]] |
1602液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)的。(說明:1為高電平、0為低電平) <br/> | 1602液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)的。(說明:1為高電平、0為低電平) <br/> | ||
指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。<br/> | 指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。<br/> | ||
第41行: | 第39行: | ||
指令11:讀數(shù)據(jù)。<br/> | 指令11:讀數(shù)據(jù)。<br/> | ||
與HD44780相兼容的芯片時(shí)序表如下: | 與HD44780相兼容的芯片時(shí)序表如下: | ||
? | [[文件:Arduino LCD 1602 Keypad Shield04.jpg| | + | [[文件:Arduino LCD 1602 Keypad Shield04.jpg|538px|有框|居中]] |
讀操作時(shí)序圖 | 讀操作時(shí)序圖 | ||
? | [[文件:Arduino LCD 1602 Keypad Shield05.jpg| | + | [[文件:Arduino LCD 1602 Keypad Shield05.jpg|538px|有框|居中]] |
寫操作時(shí)序圖 | 寫操作時(shí)序圖 | ||
? | [[文件:Arduino LCD 1602 Keypad Shield06.jpg| | + | [[文件:Arduino LCD 1602 Keypad Shield06.jpg|538px|有框|居中]] |
? | + | ====LCD1602液晶初始化過程==== | |
? | === | + | |
延時(shí)15mS<br/> | 延時(shí)15mS<br/> | ||
寫指令38H(不檢測忙信號(hào))<br/> | 寫指令38H(不檢測忙信號(hào))<br/> | ||
第60行: | 第57行: | ||
寫指令06H:顯示光標(biāo)移動(dòng)設(shè)置<br/> | 寫指令06H:顯示光標(biāo)移動(dòng)設(shè)置<br/> | ||
寫指令0CH:顯示開及光標(biāo)設(shè)置 | 寫指令0CH:顯示開及光標(biāo)設(shè)置 | ||
? | == | + | ==LCD1602液晶擴(kuò)展板接口圖== |
? | [[文件:Arduino LCD 1602 Keypad Shield07.jpg| | + | [[文件:Arduino LCD 1602 Keypad Shield07.jpg|444px|有框|居中]] |
? | == | + | ==使用方法== |
? | + | ===使用硬件=== | |
? | + | * [http://www.gharee.com/goods-546.html Carduino UNO 控制器] * 1個(gè) | |
? | + | * [http://www.alsrobot.cn/goods-45.htmlArduino LCD1602字符液晶擴(kuò)展板v2.0] * 1個(gè) | |
? | + | * [http://www.alsrobot.cn/goods-132.html RB URF 02超聲波傳感器模塊] * 1個(gè) | |
? | + | * [http://www.gharee.com/goods-197.html 4P超聲波傳感器連接線] * 1個(gè) | |
? | + | * [http://www.gharee.com/goods-90.html USB數(shù)據(jù)通信線×1] * 1個(gè) | |
? | [[文件:Arduino LCD 1602 Keypad Shield08.jpg| | + | ===接線方法=== |
? | + | [[文件:Arduino LCD 1602 Keypad Shield08.jpg|538px|有框|居中]] | |
? | + | ===例子程序=== | |
? | <pre style= | + | <pre style="color:blue"> |
? | + | #include <LiquidCrystal.h> | |
? | + | ||
? | + | /******************************************************* | |
? | + | ||
? | + | 這個(gè)程序用來測試LCD液晶顯示模塊和5個(gè)按鍵。 | |
? | + | ||
? | int | + | ********************************************************/ |
? | + | ||
? | + | // 選擇LCD上使用到的引腳 | |
? | + | LiquidCrystal lcd(8, 9, 4, 5, 6, 7); | |
? | + | ||
? | + | // 定義各按鍵 | |
? | + | int lcd_key = 0; | |
? | + | int adc_key_in = 0; | |
? | + | ||
? | + | #define btnRIGHT 0 | |
+ | #define btnUP 1 | ||
+ | #define btnDOWN 2 | ||
+ | #define btnLEFT 3 | ||
+ | #define btnSELECT 4 | ||
+ | #define btnNONE 5 | ||
+ | |||
+ | //讀取按鍵值 | ||
+ | int read_LCD_buttons() | ||
+ | { | ||
+ | adc_key_in = analogRead(0); // 從模擬口0讀值 | ||
+ | // 直接讀到的5個(gè)按鍵值在以下值附近:0,144,329,504,741 | ||
+ | // 通過設(shè)定不同的閥值,就可以對應(yīng)讀到相應(yīng)的按鍵 | ||
+ | if (adc_key_in > 1000) return btnNONE; | ||
+ | if (adc_key_in < 50) return btnRIGHT; | ||
+ | if (adc_key_in < 250) return btnUP; | ||
+ | if (adc_key_in < 450) return btnDOWN; | ||
+ | if (adc_key_in < 650) return btnLEFT; | ||
+ | if (adc_key_in < 850) return btnSELECT; | ||
+ | |||
+ | // V1.0的版本使用以下的閥值: | ||
+ | /* | ||
+ | if (adc_key_in < 50) return btnRIGHT; | ||
+ | if (adc_key_in < 195) return btnUP; | ||
+ | if (adc_key_in < 380) return btnDOWN; | ||
+ | if (adc_key_in < 555) return btnLEFT; | ||
+ | if (adc_key_in < 790) return btnSELECT; | ||
+ | */ | ||
+ | |||
+ | return btnNONE; | ||
} | } | ||
+ | |||
+ | void setup() | ||
+ | { | ||
+ | lcd.begin(16, 2); // 開始 | ||
+ | lcd.setCursor(0,0); | ||
+ | lcd.print("Push the buttons"); // 輸出“Push the buttons” | ||
+ | } | ||
+ | |||
void loop() | void loop() | ||
+ | { | ||
+ | lcd.setCursor(9,1); // 光標(biāo)定在第二行,空開9格 | ||
+ | lcd.print(millis()/1000); // 輸出等待時(shí)間 | ||
+ | |||
+ | |||
+ | lcd.setCursor(0,1); // 光標(biāo)移動(dòng)到第二行開頭 | ||
+ | lcd_key = read_LCD_buttons(); // 讀取按鍵 | ||
+ | |||
+ | switch (lcd_key) // 選擇按鍵 | ||
{ | { | ||
? | + | case btnRIGHT: | |
? | + | { | |
? | + | lcd.print("RIGHT "); | |
? | + | break; | |
? | + | } | |
? | + | case btnLEFT: | |
? | + | { | |
? | + | lcd.print("LEFT "); | |
? | + | break; | |
? | + | } | |
? | + | case btnUP: | |
? | + | { | |
? | + | lcd.print("UP "); | |
? | + | break; | |
? | + | } | |
? | + | case btnDOWN: | |
? | + | { | |
? | + | lcd.print("DOWN "); | |
? | + | break; | |
+ | } | ||
+ | case btnSELECT: | ||
+ | { | ||
+ | lcd.print("SELECT"); | ||
+ | break; | ||
+ | } | ||
+ | case btnNONE: | ||
+ | { | ||
+ | lcd.print("NONE "); | ||
+ | break; | ||
+ | } | ||
+ | } | ||
} | } | ||
? | + | ||
? | + | </pre> | |
? | + | ||
? | + | ===程序效果=== | |
? | + | 按下SELECT鍵顯示Select Key OK,按下RIGHT鍵顯示Right Key OK,按下LEFT鍵顯示Left Key OK,按下UP鍵顯示Up Key OK,按下DOWN鍵顯示Down Key OK,按下RESET鍵顯示KEYPAD testing... pressing。 | |
? | + | ==產(chǎn)品相關(guān)推薦== | |
? | + | [[文件:erweima.png|230px|無框|右]] | |
? | + | ===購買地址=== | |
? | + | [http://www.gharee.com/goods-45.html 1602液晶按鍵擴(kuò)展板] | |
? | + | ===周邊產(chǎn)品推薦=== | |
? | + | [http://www.gharee.com/goods-129.html Arduino IIC/I2C LCD1602 字符液晶顯示器]<br/> | |
? | + | [http://www.gharee.com/goods-453.html LCD2004字符液晶顯示器] | |
? | + | ===相關(guān)問題解答=== | |
? | + | ===相關(guān)學(xué)習(xí)資料=== | |
? | + | [http://v.youku.com/v_show/id_XMTc3ODY3Mzg0.html 控制1602液晶屏視頻]<br/> | |
+ | [http://www.makerspace.cn/portal.php 奧松機(jī)器人技術(shù)論壇] |
2016年6月1日 (三) 11:55的最后版本
目錄 |
產(chǎn)品介紹
- Arduino LCD1602字符液晶擴(kuò)展板v2.0集國內(nèi)外多款擴(kuò)展板優(yōu)點(diǎn)于一體所設(shè)計(jì),PCB沉金工藝加工,用料十足,主板采用全新優(yōu)質(zhì)2行16個(gè)字符液晶,不僅具有對比度調(diào)節(jié)旋鈕、背光燈選擇開關(guān),還具4個(gè)方向按鍵、1個(gè)選擇按鍵和一個(gè)復(fù)位按鍵;4個(gè)傳感器模擬接口、RB URF v1.1超聲波傳感器接口、藍(lán)牙模塊接口、APC220無線數(shù)傳模塊通信接口、獨(dú)立擴(kuò)出更加易用方便。對于Arduino初學(xué)者來說,不必為繁瑣復(fù)雜液晶驅(qū)動(dòng)電路連線而頭疼了,這款1602液晶擴(kuò)展板真正意義上的將電路簡化,直接將此板插到Arduino Duemilanove控制器上即可,傳感器也僅需一根通用3P傳感器連接線(不分?jǐn)?shù)字連接線與模擬連接線)連接,可輕松實(shí)現(xiàn)傳感器數(shù)據(jù)的記錄顯示。
規(guī)格參數(shù)
1.模塊尺寸:20.5mm×41mm
2.模塊重量:57g
LCD1602液晶主要參數(shù)
1.顯示容量:16×2個(gè)字符
2.芯片工作電壓:4.5—5.5V
3.工作電流:2.0mA(5.0V)
4.模塊最佳工作電壓:5.0V
5.字符尺寸:2.95×4.35(W×H)mm
LCD1602液晶引腳功能
1602LCD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如下表所示:
第1腳:VSS為地電源。
第2腳:VDD接5V正電源。
第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時(shí)對比度最弱,接地時(shí)對比度最高,對比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對比度。
第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。
第5腳:R/W為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫入數(shù)據(jù)。
第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。
第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。
第15腳:背光源正極。
第16腳:背光源負(fù)極。
LCD1602液晶指令說明
1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表下表所示:
1602液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)的。(說明:1為高電平、0為低電平)
指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。
指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。
指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。
指令4:顯示開關(guān)控制。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。
指令5:光標(biāo)或顯示移位 S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)。
指令6:功能設(shè)置命令 DL:高電平時(shí)為4位總線,低電平時(shí)為8位總線 N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示 F: 低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符。
指令7:字符發(fā)生器RAM地址設(shè)置。
指令8:DDRAM地址設(shè)置。
指令9:讀忙信號(hào)和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。
指令10:寫數(shù)據(jù)。
指令11:讀數(shù)據(jù)。
與HD44780相兼容的芯片時(shí)序表如下:
讀操作時(shí)序圖
寫操作時(shí)序圖
LCD1602液晶初始化過程
延時(shí)15mS
寫指令38H(不檢測忙信號(hào))
延時(shí)5mS
寫指令38H(不檢測忙信號(hào))
延時(shí)5mS
寫指令38H(不檢測忙信號(hào))
以后每次寫指令、讀/寫數(shù)據(jù)操作均需要檢測忙信號(hào)
寫指令38H:顯示模式設(shè)置
寫指令08H:顯示關(guān)閉
寫指令01H:顯示清屏
寫指令06H:顯示光標(biāo)移動(dòng)設(shè)置
寫指令0CH:顯示開及光標(biāo)設(shè)置
LCD1602液晶擴(kuò)展板接口圖
使用方法
使用硬件
- Carduino UNO 控制器 * 1個(gè)
- LCD1602字符液晶擴(kuò)展板v2.0 * 1個(gè)
- RB URF 02超聲波傳感器模塊 * 1個(gè)
- 4P超聲波傳感器連接線 * 1個(gè)
- USB數(shù)據(jù)通信線×1 * 1個(gè)
接線方法
例子程序
#include <LiquidCrystal.h> /******************************************************* 這個(gè)程序用來測試LCD液晶顯示模塊和5個(gè)按鍵。 ********************************************************/ // 選擇LCD上使用到的引腳 LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // 定義各按鍵 int lcd_key = 0; int adc_key_in = 0; #define btnRIGHT 0 #define btnUP 1 #define btnDOWN 2 #define btnLEFT 3 #define btnSELECT 4 #define btnNONE 5 //讀取按鍵值 int read_LCD_buttons() { adc_key_in = analogRead(0); // 從模擬口0讀值 // 直接讀到的5個(gè)按鍵值在以下值附近:0,144,329,504,741 // 通過設(shè)定不同的閥值,就可以對應(yīng)讀到相應(yīng)的按鍵 if (adc_key_in > 1000) return btnNONE; if (adc_key_in < 50) return btnRIGHT; if (adc_key_in < 250) return btnUP; if (adc_key_in < 450) return btnDOWN; if (adc_key_in < 650) return btnLEFT; if (adc_key_in < 850) return btnSELECT; // V1.0的版本使用以下的閥值: /* if (adc_key_in < 50) return btnRIGHT; if (adc_key_in < 195) return btnUP; if (adc_key_in < 380) return btnDOWN; if (adc_key_in < 555) return btnLEFT; if (adc_key_in < 790) return btnSELECT; */ return btnNONE; } void setup() { lcd.begin(16, 2); // 開始 lcd.setCursor(0,0); lcd.print("Push the buttons"); // 輸出“Push the buttons” } void loop() { lcd.setCursor(9,1); // 光標(biāo)定在第二行,空開9格 lcd.print(millis()/1000); // 輸出等待時(shí)間 lcd.setCursor(0,1); // 光標(biāo)移動(dòng)到第二行開頭 lcd_key = read_LCD_buttons(); // 讀取按鍵 switch (lcd_key) // 選擇按鍵 { case btnRIGHT: { lcd.print("RIGHT "); break; } case btnLEFT: { lcd.print("LEFT "); break; } case btnUP: { lcd.print("UP "); break; } case btnDOWN: { lcd.print("DOWN "); break; } case btnSELECT: { lcd.print("SELECT"); break; } case btnNONE: { lcd.print("NONE "); break; } } }
程序效果
按下SELECT鍵顯示Select Key OK,按下RIGHT鍵顯示Right Key OK,按下LEFT鍵顯示Left Key OK,按下UP鍵顯示Up Key OK,按下DOWN鍵顯示Down Key OK,按下RESET鍵顯示KEYPAD testing... pressing。
產(chǎn)品相關(guān)推薦
購買地址
周邊產(chǎn)品推薦
Arduino IIC/I2C LCD1602 字符液晶顯示器
LCD2004字符液晶顯示器