瞎玩物聯網系列--Arduino連線LCD1602顯示屏
阿新 • • 發佈:2019-01-02
簡介
LCD1602是一種工業字元型液晶,能夠同時顯示16x02即32個字元。LCD1602液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區域進行控制,即可以顯示出圖形。【百度百科】
引腳說明
引腳 | 符號 | 說明 |
---|---|---|
1 | GND | 接地 |
2 | VCC | 5V正極 |
3 | V0 | 對比度調整,接正極時對比度最弱 |
4 | RS | 暫存器選擇,1資料暫存器(DR),0指令暫存器(IR) |
5 | R/W | 讀寫選擇,1度,0寫 |
6 | EN | 使能(enable)端,高電平讀取資訊,負跳變時執行指令 |
7~14 | D0~D7 | 8位雙向資料 |
15 | BLA | 背光正極 |
16 | BLK | 背光負極 |
其它知識點
- 一些簡稱(本文無用,瞎記)
DR 資料暫存器
IR 指令暫存器
DDRAM 顯示資料儲存器(LCD1602有80位元組)
CGROM 字元發生器(內建192個5*7點陣字元)
- 3腳電位器
一個滑動變阻器,中間接負極(輸出),兩邊分別接電源正極和接地(或不接)
材料
- 大面包板 x1
- 3腳電位器 x1
- LCD 1602 x1
- Arduino UNO x1
接線示意圖
LCD1602 | —> | Arduino UNO | 說明 |
---|---|---|---|
GND | —> | GND | 接地 |
VCC | —> | 5V | 5V電源 |
V0 | —> | 連線3腳繼電器中間,用於調節對比度 | |
RS | —> | 3 | 隨便接一個輸出口,方便接線、畫圖 |
R/W | —> | GND | 接地,寫模式 |
EN | —> | 5 | 隨便接一個輸出口,方便接線、畫圖 |
D0~D3 | —> | 4位工作模式,不使用 | |
D4~D7 | —> | 10~13 | 其它口也行,方便接線、畫圖 |
BLA | —> | 背光,電源正極,可選 | |
BLK | —> | 背光,接地,可選 |
開始抄程式碼
載入庫檔案
開啟Arduino IDE,選專案 -> 載入庫 -> 管理庫中搜索LiquidCrystal,然後安裝即可,筆者的IDE版本為1.6.12,自帶該庫。
示例程式碼, hello word
//引入依賴
#include <LiquidCrystal.h>
// 初始化針腳
const int rs = 3, en = 5, d4 = 10, d5 = 11, d6 = 12 d7 = 13;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
//設定LCD要顯示的列數、行數,即2行16列
lcd.begin(16, 2);
//輸出Hello World
lcd.print("hello, world!");
}
void loop() {
//設定游標定位到第0列,第1行(從0開始)
lcd.setCursor(0, 1);
//列印從重置後的秒數
lcd.print( millis() / 1000);
}
示例程式碼,自動滾屏
//引入依賴
#include <LiquidCrystal.h>
// 初始化針腳
const int rs = 3, en = 5, d4 = 10, d5 = 11, d6 = 12, d7 = 13;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
char arr [9]= {'a', 'b', 'c', 'd' ,'e' ,'f' ,'g', 'h', 'i'};
void setup() {
//設定LCD要顯示的列數、行數,即2行16列
lcd.begin(16, 2);
}
void loop() {
//輸出1-9,a1-9,b,1-9,c
lcd.setCursor(0, 0);
lcd.autoscroll();
for(int i = 0; i < 9; i++){
for(int j = 1; j < 10; j++){
lcd.print(j);
delay(500);
}
lcd.print(arr[i]);
delay(500);
}
//關閉自動滾屏
lcd.noAutoscroll();
//為下重迴圈清屏
lcd.clear();
}