2016年5月16日 星期一

Grove 128x64 OLED 測試 使用 LinkIt Smart 7688 Duo

 Grove 128x64 OLED 測試  LinkIt Smart 7688 Duo

   ****注意 LinkIt 7688 Duo 在 Arduino IDE 1.6.9 有問題 Arduino IDE 要用1.6.7******

   Grove Starter Kit for LinkIt 7688 Duo 套件內的OLED 解析度 128x64點 介面為I2C。第一個實驗就做OLED在於日後實驗感測器的回應可以顯示於OLED不用透過序列埠監控視窗LinkIt 7688 Duo 的序列埠監控視窗有一缺點在Arduino IDE 上傳完資料後重置LinkIt 7688 Duo串列埠會先跳到別的序號在跳回來,這過程會導致序列埠監控視窗發生錯誤

OLED 介紹

   有機發光二極體(英文:Organic Light-Emitting Diode,縮寫:OLED),與薄膜電晶體液晶顯示器(TFT)為不同類型的產品,前者具有自發光性、廣視角、高對比、低耗電、高反應速率、全彩化及製程簡單等優點,但相對的在大面板價格、技術選擇性 、壽命、解析度、色彩還原便無法與後者匹敵,有機發光二極體顯示器可分單色、多彩及全彩等種類。
    有機發光二極體基本結構是由一薄而透明具半導體特性之銦錫氧化物(ITO),與電力之正極相連,再加上另一個金屬陰極,包成如三明治的結構。整個結構層中包括了:電洞傳輸層(HTL)、發光層(EL)與電子傳輸層(ETL)。當電力供應至適當電壓時,正極電洞與陰極電子便會在發光層中結合,產生光子,依其材料特性不同,產生紅、綠和藍三原色,構成基本色彩。OLED的特性是自發光,不像薄膜電晶體液晶顯示器需要背光,因此可視度和亮度均高,且無視角問題,其次是驅動電壓低且省電效率高,加上反應快、重量輕、厚度薄,構造簡單,成本低等。

OLED基本結構:1. 陰極 (−);2. 發光層(Emissive Layer, EL);3. 陽極空穴與陰極電子在發光層中結合,產生光子;4. 導電層(Conductive Layer);5. 陽極 (+)


Grove - OLED Display 1.12''

   Grove - OLED Display 1.12'' 貨號 : 104030008 ,在seeed網站上標示為 0.96",但是產品包裝上標示1.12"有點怪。包裝內容物 : 一個 OLED Display 模組一條連接線


     Grove 模組線材都有防呆把線材一端插到模組另一端在插到 LinkIt 7688 Duo 的底版 I2C



 Grove Starter Kit for LinkIt 7688 Duo 沒有提供整包的函式庫可下載需一個個模組分開下載Grove - OLED Display 1.12'' 函式庫在這裡下載

https://github.com/Seeed-Studio/OLED_Display_128X64


 按右邊 " Download ZIP" , 下載後解壓縮放在C:\Users\Kisa\Desktop\arduino-1.6.7-windows\arduino-1.6.7\libraries 




開啟Arduino IDE 在 檔案 > 範例  >  就會有 OLED_Display_128X64-master 這個選單


 用USB 將 LinkIt Smart 7688 Duo 與電腦連線



開啟Arduino 檔案 > 範例 > OLED_Display_128x64-master > OLED_hello_World


Arduino IDE 會開啟另一個視窗


        工具 > 版子與串列埠 都選 LinkIt Smart 7688 Duo注意每次LinkIt Smart 7688 Duo串列埠都會跑掉


選好後直接 按 "上傳"


Arduino IDE 會自動編譯


    編譯完後會自動上傳 LinkIt Smart 7688 Duo上傳完畢後會重置LinkIt Smart 7688 Duo這時LinkIt Smart 7688 Duo的串列埠也會抓錯如果Arduino IDE 開著串列埠監控視窗也會出現錯誤



上傳完畢後OLED會顯示 Hello Word



 OLED_Hello World 範例解說

#include <Wire.h>                                       //載入I2C函式庫
#include <SeeedOLED.h>                           //載入SeeedOLED函式庫


void setup()                                                  //初始化副程式
{
  Wire.begin();
  SeeedOled.init();                                       //初始化 OLED 

  SeeedOled.clearDisplay();                       //清除螢幕
  SeeedOled.setNormalDisplay();              //設定螢幕為正常模式(非反白)
  SeeedOled.setPageMode();                     //設定尋址模式頁模式
  SeeedOled.setTextXY(0,0);                    //設定啟始坐標
  SeeedOled.putString("Hello World!");   //列印字元 "Hello World"

}

void loop()
{
  
}


參考資料 : 聯發科創意實驗室                   http://home.labs.mediatek.com/
                    Seeed Technology Co., Ltd  :   http://www.seeedstudio.com/depot/
                    Arduino LLC                          https://www.arduino.cc/

沒有留言:

張貼留言