【雕爺學(xué)編程】Arduino動手做(85)---LCD1602液晶屏模塊

37款傳感器與執(zhí)行器的提法,在網(wǎng)絡(luò)上廣泛流傳,其實(shí)Arduino能夠兼容的傳感器模塊肯定是不止這37種的。鑒于本人手頭積累了一些傳感器和執(zhí)行器模塊,依照實(shí)踐出真知(一定要?jiǎng)邮肿觯┑睦砟睿詫W(xué)習(xí)和交流為目的,這里準(zhǔn)備逐一動手嘗試系列實(shí)驗(yàn),不管成功(程序走通)與否,都會記錄下來---小小的進(jìn)步或是搞不掂的問題,希望能夠拋磚引玉。

【Arduino】168種傳感器模塊系列實(shí)驗(yàn)(資料代碼+仿真編程+圖形編程)
實(shí)驗(yàn)八十五:LCD1602液晶顯示屏1602A模塊 藍(lán)屏黃綠屏灰屏5V 3.3V焊排針 IIC/I2C

06.jpg
07.jpg

1602液晶

也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點(diǎn)陣型液晶模塊。它由若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒芎芎玫仫@示圖形(用自定義CGRAM,顯示效果也不好)。1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個(gè)字符液晶模塊(顯示字符和數(shù)字)。市面上字符液晶大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。

0.jpeg

LCD
是 Liquid Crystal Display 的簡稱,意為“液態(tài)晶體顯示器”,也叫液晶顯示器。LCD 的構(gòu)造是在兩片平行的玻璃基板當(dāng)中放置液晶盒,下基板玻璃上設(shè)置TFT(薄膜晶體管),上基板玻璃上設(shè)置彩色濾光片,通過TFT上的信號與電壓改變來控制液晶分子的轉(zhuǎn)動方向,從而達(dá)到控制每個(gè)像素點(diǎn)偏振光出射與否而達(dá)到顯示目的。現(xiàn)在LCD已經(jīng)替代CRT成為主流,價(jià)格也已經(jīng)下降了很多,并已充分普及。

01.jpg

液晶
某些物質(zhì)在熔融狀態(tài)或被溶劑溶解之后,盡管失去固態(tài)物質(zhì)的剛性,卻獲得了液體的易流動性,并保留著部分晶態(tài)物質(zhì)分子的各向異性有序排列,形成一種兼有晶體和液體的部分性質(zhì)的中間態(tài), 這種由固態(tài)向液態(tài)轉(zhuǎn)化過程中存在的取向有序流體稱為液晶。液晶是在自然界中出現(xiàn)的一種十分新奇的中間態(tài),并由此引發(fā)了一個(gè)全新的研究領(lǐng)域。自然界是由各種各樣不同的物質(zhì)組成。以前,人們熟知的是物質(zhì)存在有3態(tài):固態(tài)、液態(tài)和氣態(tài)。而固態(tài)又可以分為晶態(tài)和非晶態(tài)。在晶態(tài)固體中分子具有取向有序性和位置有序性,即所謂的長程有序。當(dāng)然這些分子在平衡位置會發(fā)生少許振動,但平均說來,它們一直保持這種高度有序的排列狀態(tài)。

當(dāng)通電時(shí)導(dǎo)通,排列變得有秩序,使光線容易通過;不通電時(shí)排列混亂,阻止光線通過。讓液晶如閘門般地阻隔或讓光線穿透。從技術(shù)上簡單地說,液晶面板包含了兩片相當(dāng)精致的無鈉玻璃素材,稱為Substrates,中間夾著一層液晶。當(dāng)光束通過這層液晶時(shí),液晶本身會排排站立或扭轉(zhuǎn)呈不規(guī)則狀,因而阻隔或使光束順利通過。大多數(shù)液晶都屬于有機(jī)復(fù)合物,由長棒狀的分子構(gòu)成。在自然狀態(tài)下,這些棒狀分子的長軸大致平行。將液晶倒入一個(gè)經(jīng)精良加工的開槽平面,液晶分子會順著槽排列,所以假如那些槽非常平行,則各分子也是完全平行的。液晶是一種介于晶體狀態(tài)和液態(tài)狀態(tài)之間的中間物質(zhì)。它兼有液體和晶體的某些特點(diǎn),表現(xiàn)出一些獨(dú)特的性質(zhì)。

03.jpg

液晶顯示材料
具有明顯的優(yōu)點(diǎn):驅(qū)動電壓低、功耗微小、可靠性高、顯示信息量大、彩色顯示、無閃爍、對人體無危害、生產(chǎn)過程自動化、成本低廉、可以制成各種規(guī)格和類型的液晶顯示器,便于攜帶等。由于這些優(yōu)點(diǎn)。用液晶材料制成的計(jì)算機(jī)終端和電視可以大幅度減小體積等。液晶顯示技術(shù)對顯示顯像產(chǎn)品結(jié)構(gòu)產(chǎn)生了深刻影響,促進(jìn)了微電子技術(shù)和光電信息技術(shù)的發(fā)展。液晶顯示材料最常見的用途是電子表和計(jì)算器的顯示板,為什么會顯示數(shù)字呢?原來這種液態(tài)光電顯示材料,利用液晶的電光效應(yīng)把電信號轉(zhuǎn)換成字符、圖像等可見信號。液晶在正常情況下,其分子排列很有秩序,顯得清澈透明,一旦加上直流電場后,分子的排列被打亂,一部分液晶會改變光的傳播方向,液晶屏前后的偏光片會阻擋特定方向的光線,從而產(chǎn)生顏色深淺的差異,因而能顯示數(shù)字和圖象。

03-.jpg
03--.jpg

LCD 構(gòu)成
1.背光源(或背光模組)——由于液晶分子自身是無法發(fā)光的,因此若想出現(xiàn)畫面,液晶顯示器需要專門的發(fā)光源來提供光線,然后經(jīng)過液晶分子的偏轉(zhuǎn)來產(chǎn)生不同的顏色。而背光源起到的就是提供光能的作用。之前液晶顯示器采用的都是名叫CCFL的冷陰極射線管,其發(fā)光原理與日光燈幾乎完全相同,而現(xiàn)在新品液晶顯示器都采用了更加節(jié)能、長壽面的LED背光源。燈管(或LED)發(fā)光后藉由導(dǎo)光板將光線分布到各處,通過背面的反射板將所有的光線的方向集中朝向液晶分子。最后光線通過prism sheet以及擴(kuò)散板將光線均勻的散發(fā)出去,避免出現(xiàn)中央亮度過高、四周亮度過低的情況。
2.上下層兩個(gè)偏光片——偏光片的作用是讓光線從單方向通過。
3.上層和下層兩塊玻璃基板——玻璃基板不僅僅是兩塊玻璃那么簡單,其內(nèi)側(cè)具有溝槽結(jié)構(gòu),并附著配向膜,可以讓液晶分子沿著溝槽整齊的排列。在上、下兩層玻璃兩側(cè)會貼有TFT薄膜晶體管和彩色濾光片。
4.ITO透明導(dǎo)電層——其作用是提供導(dǎo)電通路,分為像素電極(P級)和公共電極(M級)。在下一頁中我們?yōu)榇蠹抑v解液晶面板結(jié)構(gòu)更多的內(nèi)容。
5.薄膜晶體管(就是我們經(jīng)常所說的TFT)——我們經(jīng)常說TFT-LCD,其實(shí)際上指的就是這個(gè)薄膜晶體管,它的作用類似于開關(guān),TFT能夠控制IC控制電路上的信號電壓,并將其輸送到液晶分子中,決定液晶分子偏轉(zhuǎn)的角度大小,因此其是非常重要的一個(gè)部件。
6.液晶分子層 ——液晶分子層是改變光線偏光狀態(tài)最重要的元素,通過電力和彈性力共同決定其排列和偏光狀態(tài)。
7.彩色濾光片——通過液晶分子偏轉(zhuǎn)的光線只能顯示不同的灰階,但是不能提供紅、綠、藍(lán)(RGB)三原色,而彩色濾光片則由RGB三種過濾片組成,通過三者混和調(diào)節(jié)各個(gè)顏色與亮度。液晶面板中每一個(gè)像素由紅、綠、藍(lán)3個(gè)點(diǎn)構(gòu)成,每種顏色的點(diǎn)各自擁有不同的灰階變化。

04.jpg

LCD與OLED的不同點(diǎn)
雖然在一定環(huán)境下觀看LCD顯示屏?xí)霈F(xiàn)色彩失真的現(xiàn)象,但這并不代表LCD一點(diǎn)優(yōu)點(diǎn)都沒有,存在即合理,LCD也還是具有很多優(yōu)點(diǎn)的。例如消費(fèi)者最關(guān)心的功率消耗的問題,LCD的功率消耗量是比較小的,而且一般LCD顯示屏都會采用數(shù)字式接口,用起來也是非常方便的。

OLED的工作原理是利用ITO玻璃透明電極和金屬電極分別作為期間的陽極和也陰極,在一定電壓驅(qū)動下,電子和空穴分別從陰極和陽極注入到電子傳輸層和空穴傳輸層,然后分別遷移到發(fā)光層激發(fā)后發(fā)出可見光。OLED的顯示核心是自發(fā)光體,與LCD相比,雖然OLED的成本相對較高,但它快速響應(yīng)時(shí)間可縮短為微妙級別,因?yàn)槠洳恍枰彻?,所以具有寬視角的特性,上下左右的視角寬度可高達(dá)170度。此外,由于OLED理論上可以顯示無窮種色彩,所以即便是顯示黑色,也是可以達(dá)到全黑畫面的,這在對比度上就擁有了很大的優(yōu)勢。OLED屏可以做到彎曲、折疊的狀態(tài),然而OLED最大的優(yōu)勢還不止對比度一點(diǎn),OLED擁有超薄面板、重量輕的特點(diǎn),值得一提的是,OLED屏可以做到彎曲、折疊,甚至可以像一張紙一樣掛在墻上、放在口袋里、鑲在衣服上。所以O(shè)LED更是受到大眾的喜愛??偟膩碚f,OLED在圖像質(zhì)量與超薄的特點(diǎn)方面略勝一籌,在未來顯示行業(yè)中,OLED也將處于領(lǐng)先的趨勢。不過目前OLED受限于生產(chǎn)成本,在突破大尺寸顯示屏方面遭遇了瓶頸,在考慮成本方面,近些年OLED有望轉(zhuǎn)戰(zhàn)小屏市場,但無論如何,OLED仍將是未來幾年顯示行中的一匹黑馬。

05.jpg

LCD1602液晶屏5V顯示模塊
1602字符型液晶也叫1602液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點(diǎn)陣型液晶模塊。字符型液晶,能夠同時(shí)顯示16x02即32個(gè)字符。它由若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒芎芎玫仫@示圖形(用自定義CGRAM,顯示效果也不好)。

08-.jpg
09.jpg

1602模塊管腳功能
1602采用標(biāo)準(zhǔn)的16腳接口,其中:
第1引腳:GND為電源地
第2引腳:VCC接5V電源正極
第3引腳:V0為液晶顯示器對比度調(diào)整端,接正電源時(shí)對比度最弱,接地電源時(shí)對比度最高(對比度過高時(shí)會 產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對比度)。
第4引腳:RS為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。
第5引腳:RW為讀寫信號線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫操作。
第6引腳:E(或EN)端為使能(enable)端,高電平(1)時(shí)讀取信息,負(fù)跳變時(shí)執(zhí)行指令。
第7~14引腳:D0~D7為8位雙向數(shù)據(jù)端。第15~16腳:空腳或背燈電源。
第15引腳背光正極,
第16引腳背光負(fù)極。

1602模塊電原理圖

11.jpg

IIC/I2C接口LCD1602轉(zhuǎn)接板
控制板IO口只有20個(gè),加些傳感器、SD卡啥的,繼電器等模塊多了,IO口就不夠用了,原來的1602屏至少需要7個(gè)IO口才能驅(qū)動起來,這個(gè)模塊可以幫你省5個(gè)IO口。

參數(shù)
1.供電電壓:+5V
2.支持I2C協(xié)議
3.具有背光燈,和對比度調(diào)節(jié)電位器
4.4線輸出更簡單
5.設(shè)備地址:0x27


11-.jpg
12.jpg

PCF8574
用于 I2C 總線的遠(yuǎn)程 8 位 I/O 擴(kuò)展器,該8位輸入/輸出(I/O)擴(kuò)展器用于雙線雙向總線(I2c),設(shè)計(jì)用于2.5-V至6-V VCC操作。PCF8574設(shè)備通過I2C接口[串行時(shí)鐘(SCL)、串行數(shù)據(jù)(SDA)]為大多數(shù)微控制器系列提供通用遠(yuǎn)程I/O擴(kuò)展。該設(shè)備具有一個(gè)8位準(zhǔn)雙向I/O端口(p0-p7),包括用于直接驅(qū)動LED的高電流驅(qū)動能力的鎖存輸出。每個(gè)準(zhǔn)雙向I/O可以用作輸入或輸出,而無需使用數(shù)據(jù)方向控制信號。通電時(shí),I/O很高。在此模式下,只有VCC的電流源處于激活狀態(tài)。

15.jpg

實(shí)驗(yàn)開源代碼

/*
【Arduino】168種傳感器模塊系列實(shí)驗(yàn)(資料代碼+仿真編程+圖形編程)
  實(shí)驗(yàn)八十五: LCD1602A液晶屏5V顯示模塊(IIC/I2C接口)
項(xiàng)目一:尋找查詢設(shè)備IIC地址,在串口上即可看到1602的地址
這里查詢結(jié)果是“0x27”(這個(gè)地址不對的話,實(shí)測無法燒錄程序)
Arduino------LCD1602
5V-------------VCC
GND-----------GND
A4-----------SDA IIC 數(shù)據(jù)線
A5-----------SCL IIC 時(shí)鐘線
*/

#include <Wire.h>

void setup(){
 Wire.begin();
 Serial.begin(9600);
 Serial.println("\nI2C Scanner");
}

void loop(){
 byte error, address;
 int nDevices;
 Serial.println("Eagler8 Scanning...");
 nDevices = 0;
 for (address = 1; address < 127; address++ ){

  Wire.beginTransmission(address);
  error = Wire.endTransmission();
  if (error == 0){
   Serial.print("I2C device found at address 0x");
   if (address < 16)
    Serial.print("0");
   Serial.print(address, HEX);
   Serial.println(" !");
   nDevices++;
  }
else if (error == 4){
   Serial.print("Unknow error at address 0x");
   if (address < 16)
    Serial.print("0");
   Serial.println(address, HEX);
  }
 }
 if (nDevices == 0)
  Serial.println("No I2C devices found\n");
 else
  Serial.println("done\n");
 delay(5000); 
}

實(shí)驗(yàn)串口返回情況


17 (1).jpg
/*

【Arduino】168種傳感器模塊系列實(shí)驗(yàn)(資料代碼+仿真編程+圖形編程)

  實(shí)驗(yàn)八十五: LCD1602A液晶屏5V顯示模塊(IIC/I2C接口)

項(xiàng)目二:顯示字符“Welcome to Eagler8”

Arduino------LCD1602

5V-------------VCC

GND-----------GND

A4-----------SDA IIC 數(shù)據(jù)線

A5-----------SCL IIC 時(shí)鐘線

*/

#include <Wire.h> 

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);  

void MyPrintLCD(String MyString){

 for (int i=0;i<MyString.length();i++)

 lcd.write(MyString.charAt(i));

  }

   

void setup(){

lcd.init(); 

lcd.backlight(); 

MyPrintLCD("Welcome to "); 

lcd.setCursor(0,1); 

MyPrintLCD("     Eagler8");

}



void loop(){

}
18.jpg

實(shí)驗(yàn)開源圖形編程(Mixly、Mind+、編玩邊學(xué))

19.jpg
21.jpg

實(shí)驗(yàn)開源仿真編程(Linkboy V4.2)

23.jpg
24.jpg
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容