實驗說明:
- 一般的互動式產品設計通常具備一個資訊顯示裝置,觀察一下我們周邊的常見的電子產品,是不是也都有個小螢幕與我們產生互動?舉例來說,計算機的螢幕可以顯示數字與運算的結果,智慧手錶中的螢幕除了可以顯示目前時間,甚至還是顯示重要文字訊息。在 Arduino 系統中,最常使用便宜又大碗的LCD1602的液晶顯示器,可以顯示單一列16個字元的長度,一次可以顯示兩列。下圖為實際的LCD1602顯示螢幕。
材料:
- Arduino Uno R3
- USB 傳輸線
- 1602 LCD液晶模塊
- 220Ω電阻
- 10K可變電阻
- 麵包板
- 麵包板跳線
安裝 LiquidCrystal 程式庫
本次試驗使用arduino直接驅動1602液晶顯示文字,需安裝 LiquidCrystal 函式庫。
- 在 Arduino 整合環境功能表點選 草稿碼 / 匯入程式庫 / 管理程式庫
- 在右上方搜尋框輸入「 LiquidCrystal 」,下方會列出所有符合條件的程式庫,不同程式庫使用的程式碼並不相同。此處點 選「 LiquidCrystal」,該項目右下角會出現「安裝」鈕,按「安裝」鈕開始安裝。
接線說明:
程式:
#include <LiquidCrystal.h>
// 建立 LiquidCrystal 的變數 lcd
// LCD 接腳: RS, R/W, Enable, D4, D5, D6, D7
// Arduino 接腳: 12, 11, 10, 5, 4, 3, 2
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2); // 初始化 LCD,一行 16 的字元,共 2 行,預設開啟背光
Serial.begin(9600);// 設定序列埠速率
lcd.print("Hi, Mirotek !!"); // 列印 "Hello Mirotek !!" 訊息到 LCD 上
}
void loop() {
lcd.setCursor(0, 1); // 設定游標位置在第二行行首
int sensorValue = analogRead(A0); // 讀取A0的類比值
// 將類比的數值顯示在第二列
lcd.print("Analog: ");
lcd.print(sensorValue);
Serial.println(sensorValue); // 顯示A0的類比值在序列視窗
delay(2000);
}
練習使用 LCD1602液晶顯示,在 2×16 的顯示幕印出 “Hello Mirotek !!”, 並顯示可變電阻的類比數值,也同時學習使用 analogRead() 函式及 LiquidCrystal Library。透過此範例程式可以了解輸出文字至LCD是一件非常簡單的事情。