37款傳感器與執行器的提法,在網絡上廣泛流傳,其實Arduino能夠兼容的傳感器模塊肯定是不止這37種的。鑒於本人手頭積累了一些傳感器和執行器模塊,依照實踐出真知(一定要動手做)的理念,以學習和交流為目的,這里准備逐一動手嘗試系列實驗,不管成功(程序走通)與否,都會記錄下來---小小的進步或是搞不掂的問題,希望能夠拋磚引玉。
【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程)
實驗九十三:0.96寸I2C IIC通信128*64顯示器 OLED液晶屏模塊
OLED(OrganicLight-Emitting Diode)
又稱為有機電激光顯示、有機發光半導體(OrganicElectroluminesence Display,OLED)。OLED屬於一種電流型的有機發光器件,是通過載流子的注入和復合而致發光的現象,發光強度與注入的電流成正比。OLED在電場的作用下,陽極產生的空穴和陰極產生的電子就會發生移動,分別向空穴傳輸層和電子傳輸層注入,遷移到發光層。當二者在發光層相遇時,產生能量激子,從而激發發光分子最終產生可見光。一般而言,OLED可按發光材料分為兩種:小分子OLED和高分子OLED(也可稱為PLED)。OLED是一種利用多層有機薄膜結構產生電致發光的器件,它很容易制作,而且只需要低的驅動電壓,這些主要的特征使得OLED在滿足平面顯示器的應用上顯得非常突出。OLED顯示屏比LCD更輕薄、亮度高、功耗低、響應快、清晰度高、柔性好、發光效率高,能滿足消費者對顯示技術的新需求。全球越來越多的顯示器廠家紛紛投入研發,大大的推動了OLED的產業化進程。
OLED特點
(1)功耗低——與LCD相比,OLED不需要背光源,而背光源在LCD中是比較耗能的一部分,所以OLED是比較節能的。例如,24in的AMOLED模塊功耗僅僅為440mw,而24in的多晶硅LCD模塊達到了605mw。
(2)響應速度快——OLED技術與其他技術相比,其響應速度快,響應時間可以達到微秒級別。較高的響應速度更好的實現了運動的圖像。根據有關的數據分析,其響應速度達到了液晶顯示器響應速度的1000倍左右。
(3)較寬的視角——與其他顯示相比,由於OLED是主動發光的,所以在很大視角范圍內畫面是不會顯示失真的。其上下,左右的視角寬度超過170度。
(4)能實現高分辨率顯示——大多高分辨率的OLED顯示采用的是有源矩陣也就是AMOLED,它的發光層可以是吸納26萬真彩色的高分辨率,並且隨着科學技術的發展,其分辨率在以后會得到更高的提升。
(5)寬溫度特性——與LCD相比,OLED可以在很大的溫度范圍內進行工作,根據有關的技術分析,溫度在-40攝氏度到80攝氏度都是可以正常運行的。這樣就可以降低地域限制,在極寒地帶也可以正常使用。
(6)OLED能夠實現軟屏——OLED可以在塑料、樹脂等不同的柔性襯底材料上進行生產,將有機層蒸鍍或塗布在塑料基襯上,就可以實現軟屏。
(7)OLED成品的質量比較輕——與其他產品相比,OLED的質量比較小,厚度與LCD相比是比較小的,其抗震系數較高,能夠適應較大的加速度,振動等比較惡劣的環境。
OLED結構
由基板、陰極、陽極、空穴注入層(HIL)、電子注入層(EIL)、空穴傳輸層(HTL)、電子傳輸層(ETL)、電子阻擋層(EBL)、空穴阻擋層(HBL)、發光層(EML)等部分構成。其中,基板是整個器件的基礎,所有功能層都需要蒸鍍到器件的基板上;通常采用玻璃作為器件的基板,但是如果需要制作可彎曲的柔性OLED器件,則需要使用其它材料如塑料等作為器件的基板。陽極與器件外加驅動電壓的正極相連,陽極中的空穴會在外加驅動電壓的驅動下向器件中的發光層移動,陽極需要在器件工作時具有一定的透光性,使得器件內部發出的光能夠被外界觀察到;陽極最常使用的材料是ITO。空穴注入層能夠對器件的陽極進行修飾,並可以使來自陽極的空穴順利的注入到空穴傳輸層;空穴傳輸層負責將空穴運輸到發光層;電子阻擋層會把來自陰極的電子阻擋在器件的發光層界面處,增大器件發光層界面處電子的濃度;發光層為器件電子和空穴再結合形成激子然后激子退激發光的地方;空穴阻擋層會將來自陽極的空穴阻擋在器件發光層的界面處,進而提高器件發光層界面處電子和空穴再結合的概率,增大器件的發光效率;電子傳輸層負責將來自陰極的電子傳輸到器件的發光層中;電子注入層起對陰極修飾及將電子傳輸到電子傳輸層的作用;陰極中的電子會在器件外加驅動電壓的驅動下向器件的發光層移動,然后在發光層與來自陽極的空穴進行再結合。
發光原理
OLED器件的發光過程可分為:電子和空穴的注入、電子和空穴的傳輸、電子和空穴的再結合、激子的退激發光。具體為:
(1)電子和空穴的注入。處於陰極中的電子和陽極中的空穴在外加驅動電壓的驅動下會向器件的發光層移動,在向器件發光層移動的過程中,若器件包含有電子注入層和空穴注入層,則電子和空穴首先需要克服陰極與電子注入層及陽極與空穴注入層之間的能級勢壘,然后經由電子注入層和空穴注入層向器件的電子傳輸層和空穴傳輸層移動;電子注入層和空穴注入層可增大器件的效率和壽命。關於OLED器件電子注入的機制還在不斷的研究當中,目前最常被使用的機制是穿隧效應和界面偶極機制。
(2)電子和空穴的傳輸。在外加驅動電壓的驅動下,來自陰極的電子和陽極的空穴會分別移動到器件的電子傳輸層和空穴傳輸層,電子傳輸層和空穴傳輸層會分別將電子和空穴移動到器件發光層的界面處;與此同時,電子傳輸層和空穴傳輸層分別會將來自陽極的空穴和來自陰極的電子阻擋在器件發光層的界面處,使得器件發光層界面處的電子和空穴得以累積。
(3)電子和空穴的再結合。當器件發光層界面處的電子和空穴達到一定數目時,電子和空穴會進行再結合並在發光層產生激子。
(4)激子的退激發光。在發光層處產生的激子會使得器件發光層中的有機分子被活化,進而使得有機分子最外層的電子從基態躍遷到激發態,由於處於激發態的電子極其不穩定,其會向基態躍遷,在躍遷的過程中會有能量以光的形式被釋放出來,進而實現了器件的發光。
OLED與LED\LCD對比
1、相較於LED或LCD的晶體層,OLED的有機塑料層更薄、更輕而且更富於柔韌性。
2、OLED的發光層比較輕,因此它的基層可使用富於柔韌性的材料,而不會使用剛性材料。OLED基層為塑料材質,而LED和LCD則使用玻璃基層。
3、OLED比LED更亮,OLED有機層要比LED中與之對應的無機晶體層薄很多,因而OLED的導電層和發射層可以采用多層結構。此外,LED和LCD需要用玻璃作為支撐物,而玻璃會吸收一部分光線。OLED則無需使用玻璃。
4、OLED並不需要采用LCD中的逆光系統。LCD工作時會選擇性地阻擋某些逆光區域,從而讓圖像顯現出來,而OLED則是靠自身發光。因為OLED不需逆光系統,所以它們的耗電量小於LCD(LCD所耗電量中的大部分用於逆光系統)。這一點對於靠電池供電的設備(例如移動電話)來說,尤其重要。
5、OLED制造起來更加容易,還可制成較大的尺寸。OLED為塑膠材質,因此可以將其制作成大面積薄片狀。而想要使用如此之多的晶體並把它們鋪平,則要困難得多。
6、OLED的視野范圍很廣,可達170度左右。而LCD工作時要阻擋光線,因而在某些角度上存在天然的觀測障礙。OLED自身能夠發光,所以視域范圍也要寬很多。
0.96寸I2C IIC通信128*64顯示器 OLED液晶屏模塊
電壓:3V~5V DC
工作溫度:-30℃~70℃
駕駛義務:1/64職責
高分辨率:128 * 64
面板尺寸:26.70 * 19.26 * 1.85mm / 1.03 * 0.76 * 0.07英寸(約)
有效面積:21.74 * 11.2mm /0.86*0.44英寸(約)
驅動IC:SSD1306
128 * 64 LED顯示模塊,支持多種控制芯片。
完全兼容51系列,MSP430系列,STM32 / 2,CSR IC等
超低功耗:全屏點亮0.08W
超高亮度和對比度可調
帶嵌入式驅動/控制器
接口類型為IIC
模塊電原理圖
實驗接線示意圖
【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程)
實驗九十三:0.96寸I2C IIC通信128*64顯示器 OLED液晶屏模塊
安裝驅動庫:工具—管理庫—搜索“U8glib”-下載-安裝
實驗接線:A4---SDA, A5---SCL
項目一:第一次點亮OLED屏
/* 【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程) 實驗九十三:0.96寸I2C IIC通信128*64顯示器 OLED液晶屏模塊 安裝驅動庫:工具—管理庫—搜索“U8glib”-下載-安裝 實驗接線:A4---SDA, A5---SCL 項目一:第一次點亮OLED屏 */ #include "U8glib.h" String i="Time:"; int s=0;//變量秒 用來顯示 U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // 小E開發板上面就是用的這個 void draw() { u8g.setFont(u8g_font_unifont); // 設置字體 這句必要 u8g.drawStr( 1, 10, "Hello Eagler8!");//第一個是x第二個是y坐標 u8g.setFont(u8g_font_ncenB14);//還是先設置一個字體 u8g.setPrintPos(0,44);//然后設置一個位置 u8g.print(i);//然后就是數據 u8g.print(s); } void setup(void) { } void loop(void) { if(s!=millis()/10) s=millis()/10; //上面這一句是取系統運行秒數 單位ms除以1000就是秒 u8g.firstPage(); do { draw(); } while( u8g.nextPage() ); //延遲一段時間后重新生成圖片 delay(10); }
實驗場景圖
【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程)
實驗九十三:0.96寸I2C IIC通信128*64顯示器 OLED液晶屏模塊
安裝驅動庫:工具—管理庫—搜索“U8glib”-下載-安裝
實驗接線:A4---SDA, A5---SCL
項目二:測試之1-100循環顯示數字
/* 【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程) 實驗九十三:0.96寸I2C IIC通信128*64顯示器 OLED液晶屏模塊 安裝驅動庫:工具—管理庫—搜索“U8glib”-下載-安裝 實驗接線:A4---SDA, A5---SCL 項目二:測試之1-100循環顯示數字 */ #include "U8glib.h" //加載顯示庫文件 U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI 實例化 void setup() { } void loop() { for(int i=1;i<101;i++){ u8g.firstPage(); //一下是顯示實現部分 do { u8g.setFont(u8g_font_fub30); //設置字體和自號,目前測試字號有fub14,17,20,30 u8g.setPrintPos(0, 50); //顯示的位置 u8g.print(i);//顯示變量i的值 u8g.setFont(u8g_font_fub14);//設置字體和自號 u8g.setPrintPos(95, 50); //顯示的位置 u8g.print("cm");//顯示cm字樣 } while( u8g.nextPage() ); delay(100);//顯示的時間間隔。 } }
有關OLED的兩個非常重要的知識點:
其一 像素點點陣
點陣圖也叫柵格圖像,像素圖,簡單的說,就是最小單位由像素構成的圖,縮放會失真。構成位圖的最小單位是像素,位圖就是由像素陣列的排列來實現其顯示效果的,每個像素有自己的顏色信息,在對位圖圖像進行編輯操作的時候,可操作的對象是每個像素,我們可以改變圖像的色相、飽和度、明度,從而改變圖像的顯示效果。舉個例子來說,位圖圖像就好比在巨大的沙盤上畫好的畫,當你從遠處看的時候,畫面細膩多彩,但是當你靠的非常近的時候,你就能看到組成畫面的每粒沙子以及每個沙粒單純的不可變化顏色。
OLED其實就是一個M x n 的像素點陣,想顯示什么就得把具體位置的像素點亮起來。對於每一個像素點,有可能是1點亮,也有可能是0點亮。
其二 坐標系
坐標系,是理科常用輔助方法。常見有直線坐標系,平面直角坐標系。為了說明質點的位置、運動的快慢、方向等,必須選取其坐標系。在參照系中,為確定空間一點的位置,按規定方法選取的有次序的一組數據,這就叫做“坐標”。在某一問題中規定坐標的方法,就是該問題所用的坐標系。坐標系的種類很多,常用的坐標系有:笛卡爾直角坐標系、平面極坐標系、柱面坐標系(或稱柱坐標系)和球面坐標系(或稱球坐標系)等。中學物理學中常用的坐標系,為直角坐標系,或稱為正交坐標系。從廣義上講:事物的一切抽象概念都是參照於其所屬的坐標系存在的,同一個事物在不同的作標系中就會有不同抽象概念來表示,坐標系表達的事物有聯系的抽象概念的數量【既坐標軸的數量】就是該事物所處空間的維度。兩件能相互改變的事物必須在同坐標系中。
在OLED坐標系中,左上角是原點,向右是X軸,向下是Y軸。
實驗開源圖形編程(Mind+、Mixly、編玩邊學)
實驗場景圖
實驗開源圖形編程(Mind+、Mixly、編玩邊學)
實驗場景圖
實驗開源圖形編程(Mind+、Mixly、編玩邊學)
實驗場景圖
實驗開源仿真編程(Linkboy V4.62)