久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6589|回復: 30
收起左側

【Arduino】108種傳感器模塊系列實驗(134)---2004A LCD液晶屏

[復制鏈接]
ID:513258 發表于 2019-10-6 20:07 | 顯示全部樓層 |閱讀模式
37款傳感器與模塊的提法,在網絡上廣泛流傳,其實Arduino能夠兼容的傳感器模塊肯定是不止37種的。鑒于本人手頭積累了一些傳感器和模塊,依照實踐出真知(一定要動手做)的理念,以學習和交流為目的,這里準備逐一動手試試做實驗,不管成功與否,都會記錄下來---小小的進步或是搞不定的問題,希望能夠拋磚引玉。

【Arduino】108種傳感器模塊系列實驗(資料+代碼+圖形+仿真)
實驗一百三十四:2004A液晶屏 20X4 J204A字符顯示液晶模塊 204A LCD/LCM 藍屏5V(帶背光 IIC/I2C)



0.jpg

回復

使用道具 舉報

ID:513258 發表于 2019-10-6 20:33 | 顯示全部樓層
01.jpg

LCD
液晶顯示屏(LCD)用于數字型鐘表和許多便攜式計算機的一種顯示器類型。LCD顯示使用了兩片極化材料,在它們之間是液體水晶溶液。電流通過該液體時會使水晶重新排列,以使光線無法透過它們。因此,每個水晶就像百葉窗,既能允許光線穿過又能擋住光線。液晶顯示器(LCD)目前科技信息產品都朝著輕、薄、短、小的目標發展,在計算機周邊中擁有悠久歷史的顯示器產品當然也不例外。在便于攜帶與搬運為前題之下,傳統的顯示方式如CRT映像管顯示器及LED顯示板等等,皆受制于體積過大或耗電量甚巨等因素,無法達成使用者的實際需求。而液晶顯示技術的發展正好切合目前信息產品的潮流,無論是直角顯示、低耗電量、體積小、還是零輻射等優點,都能讓使用者享受最佳的視覺環境。

要追溯液晶顯示器的來源,必須先從“液晶”的誕生開始講起。在公元1888年,一位奧地利的植物學家,菲德烈.萊尼澤(Friedrich Reinitzer)發現了一種特殊的物質。他從植物中提煉出一種稱為螺旋性甲苯酸鹽的化合物,在為這種化合物做加熱實驗時,意外的發現此種化合物具有兩個不同溫度的熔點。而它的狀態介于我們一般所熟知的液態與固態物質之間,有點類似肥皂水的膠狀溶液,但它在某一溫度范圍內卻具有液體和結晶雙方性質的物質,也由于其獨特的狀態,后來便把它命名為“Liquid Crystal”,就是液態結晶物質的意思。不過,雖然液晶早在1888年就被發現,但是真正實用在生活周遭的用品時,卻是在80年后的事情了。

公元1968年,在美國RCA公司(收音機與電視的發明公司)的沙諾夫研發中心,工程師們發現液晶分子會受到電壓的影響,改變其分子的排列狀態,并且可以讓射入的光線產生偏轉的現象。利用此一原理,RCA公司發明了世界第一臺使用液晶顯示的屏幕。爾后,液晶顯示技術被廣泛的用在一般的電子產品中,舉凡計算器、電子表、手機屏幕、醫院所使用的儀器(因為有輻射計量的考慮)或是數字相機上面的屏幕等等。令人玩味的是,液晶的發現比真空管或是陰極射線管還早,但世人了解此一現象的并不多,直到1962年才有第一本,由RCA研究小組的化學家喬.卡司特雷諾(Joe Castellano)先生所出版的書籍來描述。而與映像管相同的,這兩項技術雖然都是由美國的RCA公司所發明的,卻分別被日本的新力(Sony)與夏普(Sharp)兩家公司發揚光大。

回復

使用道具 舉報

ID:513258 發表于 2019-10-6 20:49 | 顯示全部樓層
02.jpg
LCD物理特性
液晶是這樣一種有機化合物, 在常溫條件下,呈現出既有液體的流動性,又有晶體的光學各向異性,因而稱為“液晶”.在電場、磁場、溫度、應力等外部條件的影響下,其分子容易發生再排列,使液晶的各種光學性質隨之發生變化,液晶這種各向異性及其分子排列易受外加電場、磁場的控制.正是利用這一液晶的物理基礎,即液晶的“電-光效應”,實現光被電信號調制,從而制成液晶顯示器件.在不同電流電場作用下,液晶分子會做規則旋轉90度排列,產生透光度的差別,如此在電源ON/OFF下產生明暗的區別,依此原理控制每個像素,便可構成所需圖像。

液晶的物理特性是:當通電時導通,排列變的有秩序,使光線容易通過;不通電時排列混亂,阻止光線通過。讓液晶如閘門般地阻隔或讓光線穿透。從技術上簡單地說,液晶面板包含了兩片相當精致的無鈉玻璃素材,稱為Substrates,中間夾著一層液晶。當光束通過這層液晶時,液晶本身會排排站立或扭轉呈不規則狀,因而阻隔或使光束順利通過。大多數液晶都屬于有機復合物,由長棒狀的分子構成。在自然狀態下,這些棒狀分子的長軸大致平行。將液晶倒入一個經精良加工的開槽平面,液晶分子會順著槽排列,所以假如那些槽非常平行,則各分子也是完全平行的。

回復

使用道具 舉報

ID:513258 發表于 2019-10-6 21:02 | 顯示全部樓層
03.jpg

LCD主要由以下幾個部分構成
1.主板:用于外部RGB信號的輸入處理,并控制PANEL工作。
2.Adapter電源適配器:用于將90~240V的交流電壓轉變為12V的直流電源供給 顯示器工作。
3.Inverter逆變器:用于將主板或Adapter輸出的12V的直流電壓轉變為PANEL需 要的高頻的1500~1800V的高壓交流電,用于點亮PANEL的背光燈。
4.PANEL部分:該部分為液晶顯示用模塊,它是液晶顯示器的核心部件,其包含 液晶板和驅動電路。


05.jpg

回復

使用道具 舉報

ID:513258 發表于 2019-10-6 21:10 | 顯示全部樓層
04 (1).jpg

LCD工作原理
液晶顯示器的組成及工作原理:從液晶顯示器的結構來說,無論是筆記本屏還是桌面液晶顯示器,采用的液晶顯示器屏全是由不同部分組成的分層結構。液晶顯示器由兩塊板構成,厚約1mm,其間由包含有液晶材料的5um均勻間隔隔開。因為液晶材料本身并不發光,所以在顯示屏下邊都設有作為光源的燈管,而在液晶顯示器屏背面有一塊背光板(或稱勻光板)和反光膜,背光板是由熒光物質組成,可以發射光線,其作用主要是提供均勻的背光源。背光板發出的光線在穿過第一層偏振過濾層之后進入包含成千上萬液晶液滴的液晶層。液晶層中的液滴都被包含在細小的單元格結構中,一個或多個單元格構成屏幕上的一個像素。在玻璃板與液晶材料之間是透明的電極,電極分為行和列,在行與列的交叉點上,通過改變電壓而改變液晶的旋光狀態,液晶材料的作用類似于一個個小光閥。


06.jpg

回復

使用道具 舉報

ID:513258 發表于 2019-10-7 09:36 | 顯示全部樓層
LCD單色原理
LCD技術是把液晶灌入兩個列有細槽的平面之間。這兩個平面上的槽互相垂直(相交成90度)。也就是說,若一個平面上的分子南北向排列,則另一平面上的分子東西向排列,而位于兩個平面之間的分子被強迫進入一種90度扭轉的狀態。由于光線順著分子的排列方向傳播,所以光線經過液晶時也被扭轉90度。當液晶上加一個電壓時,液晶分子便會轉動,改變光透過率,從而實現多灰階顯示。

LCD是依賴極化濾光器(片)和光線本身。自然光線是朝四面八方隨機發散的。極化濾光器實際是一系列越來越細的平行線。這些線形成一張網,阻斷不與這些線平行的所有光線。極化濾光器的線正好與第一個垂直,所以能完全阻斷那些已經極化的光線。只有兩個濾光器的線完全平行,或者光線本身已扭轉到與第二個極化濾光器相匹配,光線才得以穿透。

LCD正是由這樣兩個相互垂直的極化濾光器構成,所以在正常情況下應該阻斷所有試圖穿透的光線。但是,由于兩個濾光器之間充滿了扭曲液晶,所以在光線穿出第一個濾光器后,會被液晶分子扭轉90度,最后從第二個濾光器中穿出。

從液晶顯示器的結構來看,無論是筆記本電腦還是桌面系統,采用的LCD顯示屏都是由不同部分組成的分層結構。LCD由兩塊玻璃板構成,厚度規格有0.7mm,0.63mm,0.5mm(也可以通過物理或者化學減薄的方式做到更薄),其間由包含有液晶(LC)材料的3~5μm均勻間隔隔開。因為液晶材料本身并不發光,所以需要給顯示屏配置額外的光源,在液晶顯示屏背面有一塊導光板(或稱勻光板)和反光膜,導光板的主要作用是將線光源或者點光源轉化為垂直于顯示平面的面光源。背光源發出的光線在穿過第一層偏振過濾層之后進入液晶層。液晶層中的水晶液滴都被包含在細小的單元格結構中,液晶材料的作用類似于一個個小的光閥。在液晶材料周邊是控制電路部分和驅動電路部分。當LCD中的電極產生電場時,液晶分子就會產生扭曲,從而將穿越其中的光線進行有規則的折射,然后經過第二層過濾層的過濾在屏幕上顯示出來。

06-.jpeg


回復

使用道具 舉報

ID:513258 發表于 2019-10-7 09:45 | 顯示全部樓層
11.jpg
回復

使用道具 舉報

ID:513258 發表于 2019-10-7 09:50 | 顯示全部樓層
10.gif

2004A LCD字符型液晶顯示模塊
是專門用于顯示字母、數字、符號等的點陣型液晶顯示模塊。分4位和8位數據傳輸方式。提供5×7點陣+光標的顯示模式。提供顯示數據緩沖區符發生器CGRAM,可以使用CGRAM來存儲自己定義的8個5×8點陣的圖形字符的字模數據。提供了豐富的指令設置:清顯示;光標回原點;顯示開/關;光標開/關;顯示字符閃爍;光標移位;顯示移位等。提供內部上電自動復位電路,當外加電源電壓超過+4.5V時,自動對模塊進行初始化操作,將模塊設置為默認的顯示工作狀態。 顯示內容為4行,每行顯示20個字符,每個字符大小為5×8點陣。 字符發生器RAM可根據客戶需求, 訂做中日文、俄文等12種不同國家的字符。

回復

使用道具 舉報

ID:513258 發表于 2019-10-7 09:52 | 顯示全部樓層
08.jpg
回復

使用道具 舉報

ID:513258 發表于 2019-10-7 09:59 | 顯示全部樓層
09.jpg

主要參數
型 號  2004A
封 裝  COB  
外型尺寸  98.0mm×60.0mm  
連接方式  導電膠條
視域尺寸  76.0mm×26.0mm  
接口方式  單排并口  
點 尺 寸 0.55mm×0.55mm
背光類型 EL/LED
字符尺寸 29.5mm×47.5mm  
顯示內容 20個字符×4行
工作電壓  +5V/+3.3V
顯示屏面 黃綠/藍屏/黑白屏
背光顏色 黃綠/白光/紅光等
工作溫度  -10~+60℃  
控 制 器 SPLC780
儲存溫度  -20~+70℃

回復

使用道具 舉報

ID:513258 發表于 2019-10-7 10:58 | 顯示全部樓層
IIC(Inter-Integrated Circuit)
字面上的意思是集成電路之間,它其實是I2C Bus簡稱,所以中文應該叫集成電路總線,它是一種串行通信總線,使用多主從架構,由飛利浦公司在1980年代為了讓主板、嵌入式系統或手機用以連接低速周邊設備而發展。I2C的正確讀法為“I平方C”("I-squared-C"),而“I二C”("I-two-C")則是另一種錯誤但被廣泛使用的讀法。自2006年10月1日起,使用I2C協議已經不需要支付專利費,但制造商仍然需要付費以獲取I2C從屬設備地址。

I2C,一種總線結構。例如:內存中的SPD信息,通過IIC,與BX芯片組聯系,IIC 存在于英特爾PIIX4結構體系中。隨著大規模集成電路技術的發展,把CPU和一個單獨工作系統所必需的ROM、RAM、I/O端口、A/D、D/A等外圍電路集成在一個單片內而制成的單片機或微控制器愈來愈方便。目前,世界上許多公司生產單片機,品種很多。其中包括各種字長的CPU,各種容量的ROM、RAM以及功能各異的I/O接口電路等等,但是,單片機的品種規格仍然有限,所以只能選用某種單片機來進行擴展。擴展的方法有兩種:一種是并行總線,另一種是串行總線。由于串行總線的連線少,結構簡單,往往不用專門的母板和插座而直接用導線連接各個設備。因此,采用串行線可大大簡化系統的硬件設計。PHILIPS公司早在十幾年前就推出了I2C串行總線,利用該總線可實現多主機系統所需的裁決和高低速設備同步等功能。因此,這是一種高性能的串行總線。

飛利浦電子公司日前推出新型二選一I2C主選擇器,可以使兩個I2C主設備中的任何一個與共享資源連接,廣泛適用于從MP3播放器到服務器等計算、通信和網絡應用領域,從而使制造商和終端用戶從中獲益。PCA9541可以使兩個I2C主設備在互不連接的情況下與同一個從設備相連接,從而簡化了設計的復雜性。此外,新產品以單器件替代了I2C多個主設備應用中的多個芯片,有效節省了系統成本。
12.jpg


回復

使用道具 舉報

ID:513258 發表于 2019-10-7 11:05 | 顯示全部樓層
IIC硬件結構
I2C串行總線一般有兩根信號線,一根是雙向的數據線SDA,另一根是時鐘線SCL。所有接到I2C總線設備上的串行數據SDA都接到總線的SDA上,各設備的時鐘線SCL接到總線的SCL上。

為了避免總線信號的混亂,要求各設備連接到總線的輸出端時必須是漏極開路(OD)輸出或集電極開路(OC)輸出。設備上的串行數據線SDA接口電路應該是雙向的,輸出電路用于向總線上發送數據,輸入電路用于接收總線上的數據。而串行時鐘線也應是雙向的,作為控制總線數據傳送的主機,一方面要通過SCL輸出電路發送時鐘信號,另一方面還要檢測總線上的SCL電平,以決定什么時候發送下一個時鐘脈沖電平;作為接受主機命令的從機,要按總線上的SCL信號發出或接收SDA上的信號,也可以向SCL線發出低電平信號以延長總線時鐘信號周期。總線空閑時,因各設備都是開漏輸出,上拉電阻Rp使SDA和SCL線都保持高電平。任一設備輸出的低電平都將使相應的總線信號線變低,也就是說:各設備的SDA是“與”關系,SCL也是“與”關系。

總線對設備接口電路的制造工藝和電平都沒有特殊的要求(NMOS、CMOS都可以兼容)。在I2C總線上的數據傳送率可高達每秒十萬位,高速方式時在每秒四十萬位以上。另外,總線上允許連接的設備數以其電容量不超過400pF為限。

總線的運行(數據傳輸)由主機控制。所謂主機是指啟動數據的傳送(發出啟動信號)、發出時鐘信號以及傳送結束時發出停止信號的設備,通常主機都是微處理器。被主機尋訪的設備稱為從機。為了進行通訊,每個接到I2C總線的設備都有一個唯一的地址,以便于主機尋訪。主機和從機的數據傳送,可以由主機發送數據到從機,也可以由從機發到主機。凡是發送數據到總線的設備稱為發送器,從總線上接收數據的設備被稱為接受器。

I2C總線上允許連接多個微處理器以及各種外圍設備,如存儲器、LED及LCD驅動器、A/D及D/A轉換器等。為了保證數據可靠地傳送,任一時刻總線只能由某一臺主機控制,各微處理器應該在總線空閑時發送啟動數據,為了妥善解決多臺微處理器同時發送啟動數據的傳送(總線控制權)沖突,以及決定由哪一臺微處理器控制總線的問題,I2C總線允許連接不同傳送速率的設備。多臺設備之間時鐘信號的同步過程稱為同步化。
12-0 (1).jpg


回復

使用道具 舉報

ID:513258 發表于 2019-10-7 11:09 | 顯示全部樓層
12-1 (1).jpg
IIC數據傳輸
在I2C總線傳輸過程中,將兩種特定的情況定義為開始和停止條件(見圖3):當SCL保持“高”時,SDA由“高”變為“低”為開始條件;當SCL保持“高”且SDA由“低”變為“高”時為停止條件。開始和停止條件均由主控制器產生。使用硬件接口可以很容易地檢測到開始和停止條件,沒有這種接口的微機必須以每時鐘周期至少兩次對SDA取樣,以檢測這種變化。

SDA線上的數據在時鐘“高”期間必須是穩定的,只有當SCL線上的時鐘信號為低時,數據線上的“高”或“低”狀態才可以改變。輸出到SDA線上的每個字節必須是8位,每次傳輸的字節不受限制,但每個字節必須要有一個應答ACK。如果一接收器件在完成其他功能(如一內部中斷)前不能接收另一數據的完整字節時,它可以保持時鐘線SCL為低,以促使發送器進入等待狀態;當接收器準備好接受數據的其它字節并釋放時鐘SCL后,數據傳輸繼續進行。

數據傳送具有應答是必須的。與應答對應的時鐘脈沖由主控制器產生,發送器在應答期間必須下拉SDA線。當尋址的被控器件不能應答時,數據保持為高并使主控器產生停止條件而終止傳輸。在傳輸的過程中,在用到主控接收器的情況下,主控接收器必須發出一數據結束信號給被控發送器,從而使被控發送器釋放數據線,以允許主控器產生停止條件。合法的數據傳輸格式如下:I2C總線在開始條件后的首字節決定哪個被控器將被主控器選擇,例外的是“通用訪問”地址,它可以在所有期間尋址。當主控器輸出一地址時,系統中的每一器件都將開始條件后的前7位地址和自己的地址進行比較。如果相同,該器件即認為自己被主控器尋址,而作為被控接收器或被控發送器則取決于R/W位。

回復

使用道具 舉報

ID:513258 發表于 2019-10-7 11:12 | 顯示全部樓層
模塊規格
1.名稱:IIC LCD2004字符液晶顯示器
2.貨號:RB-05L012
3.工作電壓:DC 5V
4.對比度調節:電位器調節
5.背光調節:程序或手動控制開關
6.接口定義:+、-、SDA、SCL
7.模塊尺寸:98×60×21mm
8.模塊重量:78g 9.安裝孔直徑:3.5mm
10.水平安裝孔圓心距:93mm
11.豎直安裝孔圓心距:55mm
12.屏幕尺寸:98×40×9.8mm
13.工作溫度:-30~+60℃
14.引腳定義:
            SDA:雙向數據信號
            SCL:時鐘信號
            +:電源(VCC)
            -:地(GND)

13.jpg


回復

使用道具 舉報

ID:513258 發表于 2019-10-7 11:46 | 顯示全部樓層
模塊電原理圖

13- (1).jpg

回復

使用道具 舉報

ID:513258 發表于 2019-10-7 11:49 | 顯示全部樓層
  1. /*
  2. 【Arduino】108種傳感器模塊系列實驗(資料+代碼+圖形+仿真)
  3. 實驗一百三十四:2004A字符顯示液晶模塊LCD/LCM 藍屏5V(帶背光 IIC/I2C)
  4. 項目一:尋找查詢設備IIC地址,在串口上即可看到2004A的地址
  5. 這里查詢結果是“0x27”(這個地址不對的話,實測無法燒錄程序)
  6. Arduino------LCD2004A
  7. 5V-------------VCC
  8. GND-----------GND
  9. A4-----------SDA IIC 數據線
  10. A5-----------SCL  IIC 時鐘線
  11. */

  12. #include <Wire.h>

  13. void setup(){
  14.   Wire.begin();
  15.   Serial.begin(9600);
  16.   Serial.println("\nI2C Scanner");
  17. }
  18. void loop(){
  19.   byte error, address;
  20.   int nDevices;
  21.   Serial.println("Eagler8 Scanning...");
  22.   nDevices = 0;
  23.   for (address = 1; address < 127; address++ ){
  24.    
  25.     Wire.beginTransmission(address);
  26.     error = Wire.endTransmission();
  27.     if (error == 0){
  28.       Serial.print("I2C device found at address 0x");
  29.       if (address < 16)
  30.         Serial.print("0");
  31.       Serial.print(address, HEX);
  32.       Serial.println(" !");
  33.       nDevices++;
  34.     }else if (error == 4){
  35.       Serial.print("Unknow error at address 0x");
  36.       if (address < 16)
  37.         Serial.print("0");
  38.       Serial.println(address, HEX);
  39.     }
  40.   }
  41.   if (nDevices == 0)
  42.     Serial.println("No I2C devices found\n");
  43.   else
  44.     Serial.println("done\n");
  45.   delay(5000);
  46. }
復制代碼


回復

使用道具 舉報

ID:513258 發表于 2019-10-7 11:51 | 顯示全部樓層
14.jpg
回復

使用道具 舉報

ID:513258 發表于 2019-10-7 11:58 | 顯示全部樓層
15.jpg
回復

使用道具 舉報

ID:513258 發表于 2019-10-7 12:22 | 顯示全部樓層
  1. /*
  2.   【Arduino】108種傳感器模塊系列實驗(資料+代碼+圖形+仿真)
  3.   實驗一百三十四:2004A字符顯示液晶模塊LCD/LCM 藍屏5V(帶背光 IIC/I2C)
  4.   安裝庫:工具——管理庫——搜索“LiquidCrystal_I2C"——下載安裝
  5.   項目二:顯示字符“Welcome to Eagler8”
  6.   Arduino------LCD2004A
  7.   5V-------------VCC
  8.   GND-----------GND
  9.   A4-----------SDA IIC 數據線
  10.   A5-----------SCL  IIC 時鐘線
  11. */

  12. #include <Wire.h>
  13. #include <LiquidCrystal_I2C.h>
  14. LiquidCrystal_I2C lcd(0x27, 20, 4);

  15. void MyPrintLCD(String MyString)
  16. {
  17.   for (int i = 0; i < MyString.length(); i++)
  18.     lcd.write(MyString.charAt(i));
  19. }

  20. void setup()
  21. {
  22.   lcd.init();
  23.   lcd.backlight();
  24.   MyPrintLCD(" Welcome to ");
  25.   lcd.setCursor(0, 2);
  26.   MyPrintLCD("           Eagler8");
  27. }

  28. void loop()
  29. {
  30. }
復制代碼


回復

使用道具 舉報

ID:513258 發表于 2019-10-7 12:23 | 顯示全部樓層
16.jpg
回復

使用道具 舉報

ID:513258 發表于 2019-10-7 15:22 | 顯示全部樓層
  1. /*
  2.   【Arduino】108種傳感器模塊系列實驗(資料+代碼+圖形+仿真)
  3.   實驗一百三十四:2004A字符顯示液晶模塊LCD/LCM 藍屏5V(帶背光 IIC/I2C)
  4.   安裝庫:工具——管理庫——搜索“LiquidCrystal_I2C"——下載安裝
  5.   項目三:多重顯示字符,系列演示
  6.   Arduino------LCD2004A
  7.   5V-------------VCC
  8.   GND-----------GND
  9.   A4-----------SDA IIC 數據線
  10.   A5-----------SCL IIC 時鐘線
  11. */

  12. #include <Wire.h>
  13. #include <LiquidCrystal_I2C.h>

  14. #if defined(ARDUINO) && ARDUINO >= 100
  15. #define printByte(args)  write(args);
  16. #else
  17. #define printByte(args)  print(args,BYTE);
  18. #endif

  19. uint8_t bell[8]  = {0x4, 0xe, 0xe, 0xe, 0x1f, 0x0, 0x4};
  20. uint8_t note[8]  = {0x2, 0x3, 0x2, 0xe, 0x1e, 0xc, 0x0};
  21. uint8_t clock[8] = {0x0, 0xe, 0x15, 0x17, 0x11, 0xe, 0x0};
  22. uint8_t heart[8] = {0x0, 0xa, 0x1f, 0x1f, 0xe, 0x4, 0x0};
  23. uint8_t duck[8]  = {0x0, 0xc, 0x1d, 0xf, 0xf, 0x6, 0x0};
  24. uint8_t check[8] = {0x0, 0x1, 0x3, 0x16, 0x1c, 0x8, 0x0};
  25. uint8_t cross[8] = {0x0, 0x1b, 0xe, 0x4, 0xe, 0x1b, 0x0};
  26. uint8_t retarrow[8] = {        0x1, 0x1, 0x5, 0x9, 0x1f, 0x8, 0x4};

  27. LiquidCrystal_I2C lcd(0x27, 20, 4); // set the LCD address to 0x27 for a 16 chars and 2 line display

  28. void setup()
  29. {
  30.   lcd.init();                      // initialize the lcd
  31.   lcd.backlight();

  32.   lcd.createChar(0, bell);
  33.   lcd.createChar(1, note);
  34.   lcd.createChar(2, clock);
  35.   lcd.createChar(3, heart);
  36.   lcd.createChar(4, duck);
  37.   lcd.createChar(5, check);
  38.   lcd.createChar(6, cross);
  39.   lcd.createChar(7, retarrow);
  40.   lcd.home();

  41.   lcd.print("Hello world...");
  42.   lcd.setCursor(0, 1);
  43.   lcd.print(" i ");
  44.   lcd.printByte(3);
  45.   lcd.print(" arduinos!");
  46.   delay(5000);
  47.   displayKeyCodes();

  48. }

  49. // display all keycodes
  50. void displayKeyCodes(void) {
  51.   uint8_t i = 0;
  52.   while (1) {
  53.     lcd.clear();
  54.     lcd.print("Codes 0x"); lcd.print(i, HEX);
  55.     lcd.print("-0x"); lcd.print(i + 16, HEX);
  56.     lcd.setCursor(0, 1);
  57.     for (int j = 0; j < 16; j++) {
  58.       lcd.printByte(i + j);
  59.     }
  60.     i += 16;

  61.     delay(4000);
  62.   }
  63. }

  64. void loop()
  65. {

  66. }
復制代碼


回復

使用道具 舉報

ID:513258 發表于 2019-10-7 15:24 | 顯示全部樓層
17.gif

18.gif

回復

使用道具 舉報

ID:513258 發表于 2019-10-7 15:44 | 顯示全部樓層
19.jpg
回復

使用道具 舉報

ID:513258 發表于 2019-10-7 15:45 | 顯示全部樓層
20.jpg
回復

使用道具 舉報

ID:513258 發表于 2019-10-7 16:01 | 顯示全部樓層
21.jpg
回復

使用道具 舉報

ID:513258 發表于 2019-10-7 16:04 | 顯示全部樓層
22.jpg
回復

使用道具 舉報

ID:629777 發表于 2019-11-22 23:40 | 顯示全部樓層
請問怎么條件顯示屏對比度
回復

使用道具 舉報

ID:513258 發表于 2019-11-25 10:17 | 顯示全部樓層
絕情谷里人 發表于 2019-11-22 23:40
請問怎么條件顯示屏對比度

有個調節電位器,手工調整的
回復

使用道具 舉報

ID:513258 發表于 2020-12-25 21:16 | 顯示全部樓層
  1. /*
  2.   【Arduino】168種傳感器模塊系列實驗(資料代碼+圖形編程+仿真編程)
  3.   實驗一百五十二:GY-25 串口直接輸出角度數據 傾斜度角度傳感器模塊 MPU-6050
  4.   使用步驟:
  5.   1.先下載GY25_uart程序至arduino
  6.   2.再接上GY25模塊
  7.   3.按復位按鍵
  8.   4.打開串口,波特率115200
  9.   5、接線
  10.   GY25                arduino uno
  11.   VCC----------------------VCC
  12.   RX-----------------------TX
  13.   TX-----------------------RX
  14.   GND----------------------GND
  15.   ---------------------------------------
  16.   IICLCD2004           arduino uno
  17.   VCC----------------------VCC
  18.   SCL----------------------A5
  19.   SDA----------------------A4
  20.   GND----------------------GND
  21.   實驗之二:IICLCD2004顯示動態角度數值
  22. */

  23. #include <Wire.h>
  24. #include <LiquidCrystal_I2C.h>
  25. int YPR[3];
  26. unsigned char Re_buf[8], counter = 0;
  27. unsigned char sign = 0;
  28. int led = 13;
  29. LiquidCrystal_I2C lcd(0x27, 20, 4); // set the LCD address to 0x20 for a 20 chars and 4 line display

  30. //-----------------------------------------------------------
  31. void setup()
  32. {
  33.   lcd.init();                      // initialize the lcd
  34.   // Print a message to the LCD.
  35.   Serial.begin(115200);
  36.   delay(2000);
  37.   Serial.write(0XA5);
  38.   Serial.write(0X52);    //初始化GY25,連續輸出模式
  39.   lcd.backlight();
  40.   lcd.setCursor(0, 0);    //I2C接口LCD2004顯示初始值
  41.   lcd.print("Yaw:");
  42.   lcd.setCursor(0, 1);
  43.   lcd.print("Pitch:");
  44.   lcd.setCursor(0, 2);
  45.   lcd.print("Roll:");
  46. }
  47. //-------------------------------------------------------------
  48. void loop() {
  49.   if (sign)
  50.   {
  51.     sign = 0;
  52.     if (Re_buf[0] == 0xAA && Re_buf[7] == 0x55)   //檢查幀頭,幀尾
  53.     {
  54.       YPR[0] = (Re_buf[1] << 8 | Re_buf[2]) / 100; //合成數據,去掉小數點后2位
  55.       YPR[1] = (Re_buf[3] << 8 | Re_buf[4]) / 100;
  56.       YPR[2] = (Re_buf[5] << 8 | Re_buf[6]) / 100;

  57.       lcd.setCursor(4, 0);
  58.       lcd.print("    ");
  59.       lcd.setCursor(4, 0);
  60.       lcd.print(YPR[0]);      //顯示航向

  61.       lcd.setCursor(6, 1);
  62.       lcd.print("    ");
  63.       lcd.setCursor(6, 1);   //顯示俯仰角
  64.       lcd.print(YPR[1]);

  65.       lcd.setCursor(5, 2);
  66.       lcd.print("    ");
  67.       lcd.setCursor(5, 2);    //顯示橫滾角
  68.       lcd.print(YPR[2]);
  69.       delay(100);
  70.     }
  71.   }
  72. }
  73. //----------------------------------------------------------
  74. void serialEvent() {
  75.   while (Serial.available()) {
  76.     Re_buf[counter] = (unsigned char)Serial.read();
  77.     if (counter == 0 && Re_buf[0] != 0xAA) return; // 檢查幀頭
  78.     counter++;
  79.     if (counter == 8)             //接收到數據
  80.     {
  81.       counter = 0;               //重新賦值,準備下一幀數據的接收
  82.       sign = 1;
  83.     }
  84.   }
  85. }
復制代碼


回復

使用道具 舉報

ID:513258 發表于 2020-12-25 21:22 | 顯示全部樓層
GY-25串口傾斜度模塊實驗場景圖二,未輸出角度數據,不知哪里出問題了



22.jpg

回復

使用道具 舉報

ID:513258 發表于 2020-12-25 21:24 | 顯示全部樓層
經過調試,LCD2004A可以顯示動態角度數據了



23.jpg



24.jpg


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天堂一区二区三区 | 欧美一区二区三区在线 | 国产91精品网站 | 香蕉久久a毛片 | 日韩中文字幕在线观看视频 | 日韩久久久久久 | 国产精品久久久久久久岛一牛影视 | 亚洲男女视频在线观看 | 国产精品视频在线观看 | 国产精品久久二区 | 男女爱爱福利视频 | 国产美女黄色片 | 亚洲大片一区 | 人人干97| 日韩免费av网站 | 日本网站在线看 | 国产精品美女久久久久久久网站 | 午夜精品久久久久久久 | 91在线观看视频 | 久久久久久毛片免费观看 | 岛国午夜 | 狠狠综合久久av一区二区老牛 | 欧美日韩一 | www精品| 99视频在线免费观看 | 色综合久久伊人 | 999热视频 | 亚洲在线免费 | 亚洲国产午夜 | 综合一区二区三区 | 欧美亚洲国产一区二区三区 | 亚洲国产精选 | 日韩一级 | 免费一区二区 | 久草视频网站 | 国产视频第一页 | 国产99久久久国产精品 | 99资源 | 国产在线视频一区二区 | 国产视频1 | 午夜寂寞影院在线观看 |