1. 程式人生 > >瞎玩物聯網系列--Arduino連線LCD1602顯示屏

瞎玩物聯網系列--Arduino連線LCD1602顯示屏

簡介

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   字元發生器(內建1925*7點陣字元)
  • 3腳電位器

一個滑動變阻器,中間接負極(輸出),兩邊分別接電源正極和接地(或不接)

arduino-lcd-01

材料

  • 大面包板 x1
  • 3腳電位器 x1
  • LCD 1602 x1
  • Arduino UNO x1

接線示意圖

arduino-lcd

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,自帶該庫。

arduino-lcd-02

示例程式碼, 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();
}

參考文章