我買到的LCD顯示器有兩種,下圖上方是原始的,下圖下方是有加上轉換IC的,不同點在背面,
原始的LCD雖然接線很複雜,只要照著接就好,自己搞最久的是在相對簡單的加強版上
因為搞錯IC的型號,找到的函式庫都不對,測試了很久,終於找到了底下的連結可以使用
https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads/
另外,底下是原本的測試碼,用的是11,12,6,5,4,3這6個腳位,但是中間有跳過腳位,心理一直很介意
#include <LiquidCrystal.h>
LiquidCrystal lcd(11,12,6,5,4,3);
void setup() {
// put your setup code here, to run once:
lcd.begin(16,2);
lcd.print("hello,world!");
}
void loop() {
// put your main code here, to run repeatedly:
lcd.setCursor(0,1);
lcd.print(millis()/1000);
}
所以又尋找到一篇可以自訂腳位的方法,看到排線都在一邊,心裡就舒暢了點。
http://yhhuang1966.blogspot.com/2015/03/arduino_25.html
#include <LiquidCrystal.h>
#define RS 2
#define E 3
#define D4 4
#define D5 5
#define D6 6
#define D7 7
LiquidCrystal lcd(RS,E,D4,D5,D6,D7); //建立 LCD 物件
void setup() { //初始設定 (一次性)
lcd.begin(16,2); //定義 LCD 為 2 列 16 行顯示器
lcd.setCursor(0,0); //游標移到左上角
lcd.print("Hello World!"); //在第一列印出 Hello World!
}
void loop() { //無限迴圈
lcd.setCursor(0,1); //游標移到第 2 列第 1 行
lcd.print(millis()/1000); //印出秒數
}
接腳 | 功能 | 接 Arduino |
1 (VSS) | 電源負極 | GND |
2 (VCC) | 電源正極 | 5V |
3 (Vo) | 調整對比 | 可變電阻中腳 |
4 (RS) | D0~D7放入資料暫存器 (1) 或指令資料暫存器 (0) | 腳位 2 |
5 (RW) | 讀取 (1) 或寫入 (0) LCD | GND (寫入) |
6 (E) | 可寫入 (1) 或不可寫入 (0) LCD | 腳位 3 |
11 (D4) | 資料位元 4 | 腳位 4 |
12 (D5) | 資料位元 5 | 腳位 5 |
13 (D6) | 資料位元 6 | 腳位 6 |
14 (D7) | 資料位元 7 | 腳位 7 |
15 (A+) | 背光電源正極 | 5V |
16 (-K) | 背光電源負極 | GND |
再來看有轉換IC的
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F,2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
void setup() {
// put your setup code here, to run once:
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.backlight();
lcd.print("hello,world!");
}
void loop() {
// put your main code here, to run repeatedly:
lcd.setCursor(0,1);
lcd.print(millis()/1000);
}