查看: 54227|回復: 250
打印 上一主題 下一主題

[教程] 【Arduino教程】使用u8g2驅動圖形顯示器

  [復制鏈接]
  • TA的每日心情
    郁悶
    2018-12-6 22:21
  • 簽到天數: 48 天

    [LV.5]常住居民I

    跳轉到指定樓層
    樓主
    發表于 2016-12-24 22:19 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
    在《Arduino程序設計基礎》上介紹過u8glib這個arduino上最最牛逼的開源圖形顯示器驅動庫:
    使用U8glib驅動12864圖形液晶顯示器   http://www.shjukg.icu/thread-20081-1-1.html
    u8g2顯示圖片教程:http://www.shjukg.icu/thread-42174-1-1.html


    但這里要使用的不是u8glib,而是新一代的u8g——u8g2,其和u8glib有諸多不同:

    ----------------------------------------------------------------------
    Full "RAM" memory buffer without picture loop
    Arduino SPI and TWI Libraries instead of custom code
    Support for Unicode and UTF-8
    Faster compilation
    High speed text only API (U8x8)
    Hardware 180 degree rotation for some displays available
    ----------------------------------------------------------------------

    本教程使用的顯示設備——Openjumper出品的OLED模塊
    https://item.taobao.com/item.htm?id=43554060969

    1.安裝u8g2
    ·通過IDE自帶的庫管理器,搜索 u8g2,點擊安裝即可。
    Arduino IDE使用——通過庫管理器添加引用庫   http://www.shjukg.icu/thread-17883-1-1.html
    ·也可以通過以下鏈接下載u8g2:
    https://github.com/olikraus/U8g2_Arduino/archive/master.zip

    2.準備顯示設備并連接到Arduino
    在u8g2中,不同的顯示設備對應不同的構造函數。
    教程中使用的設備為 OpenJumper OLED模塊

    3.可使用兩種類實例化一個顯示器對象
    u8g2提供了兩類api——u8g2和u8x8,前者是標準完備的u8g api,后者是高效精簡api。
    對于OpenJumper OLED模塊,可以使用如下語句進行實例化:

    kittenblock中小學創客名師推薦的圖形化編程軟件

    
    U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, SCL, SDA,resetPin); 
    U8X8_SSD1306_128X64_NONAME_SW_I2C u8x8(SCL,SDA,resetPin); 
    


    4.使用例程即可了解如何開發

    這里提供一個顯示中文的例程:

    kittenblock中小學創客名師推薦的圖形化編程軟件

    #include <Arduino.h>
    #include <U8g2lib.h>
    
    Reset_Pin=2;
    
    U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0,SCL,SDA,Reset_Pin);
    
    void setup(void) {
      u8g2.begin();
      u8g2.enableUTF8Print(); 
    }
    
    void loop(void) {
      u8g2.setFont(u8g2_font_unifont_t_chinese2); 
      u8g2.setFontDirection(0);
      u8g2.clearBuffer();
      u8g2.setCursor(0, 15);
      u8g2.print("www.shjukg.icu");
      u8g2.setCursor(0, 40);
      u8g2.sendBuffer();
      delay(1000);
    }
    

    附 字表:
    1.請注意,你使用的中文必須在表中,且在print前,使用setFont選中對應的字表,如:
      

    kittenblock中小學創客名師推薦的圖形化編程軟件

     u8g2.setFont(u8g2_font_unifont_t_chinese2); 
    u8g2.print("凹凸"); 

    2.使用中文會消耗大量的內存,更建議你使用Arduino 101、due等高配版的arduino。






    QQ截圖20161224221204.jpg (14.8 KB, 下載次數: 122)

    QQ截圖20161224221204.jpg
    如果以上內容對你有幫助,你可以通過打賞支持作者

    1人打賞

  • TA的每日心情
    開心
    2017-3-22 08:09
  • 簽到天數: 5 天

    [LV.2]偶爾看看I

    沙發
    發表于 2016-12-24 23:46 | 只看該作者
    頂一下看看
  • TA的每日心情

    2017-2-22 13:27
  • 簽到天數: 23 天

    [LV.4]偶爾看看III

    板凳
    發表于 2016-12-25 10:53 | 只看該作者
    教程在哪里?

    該用戶從未簽到

    地板
    發表于 2016-12-25 14:27 | 只看該作者
    Support for Unicode and UTF-8
    關鍵是能不能出個支持中文字符的教程。
  • TA的每日心情
    郁悶
    2018-12-6 22:21
  • 簽到天數: 48 天

    [LV.5]常住居民I

    5#
     樓主| 發表于 2016-12-25 21:08 | 只看該作者
    Waston 發表于 2016-12-25 14:27
    Support for Unicode and UTF-8
    關鍵是能不能出個支持中文字符的教程。

    我也在研究怎么顯示中文
    如果以上內容對你有幫助,你可以通過打賞支持作者
  • TA的每日心情
    擦汗
    2017-8-16 16:44
  • 簽到天數: 229 天

    [LV.7]常住居民III

    7#
    發表于 2016-12-26 13:41 | 只看該作者
    謝謝分享                       
  • TA的每日心情
    開心
    2016-12-13 11:27
  • 簽到天數: 1 天

    [LV.1]初來乍到

    8#
    發表于 2016-12-26 15:58 | 只看該作者
    謝謝樓主分享啊
  • TA的每日心情
    開心
    2018-7-18 17:56
  • 簽到天數: 4 天

    [LV.2]偶爾看看I

    9#
    發表于 2016-12-26 17:10 | 只看該作者
    謝謝分享     
  • TA的每日心情
    開心
    2019-10-11 09:30
  • 簽到天數: 755 天

    [LV.10]以壇為家III

    10#
    發表于 2016-12-26 19:55 | 只看該作者
    謝謝奉獻哈哈哈
    打賞作者鼓勵一下!
    您需要登錄后才可以回帖 登錄 | 立即注冊  

    本版積分規則

    熱門推薦

    arduino實現L298N控制工業步進電機
    arduino實現L298N控制工業
    求助 L298N是ST公司生產的一種高電壓、大電流電機驅動芯片。該芯片采用15腳封裝。主
    arduino IDE錯誤,有點崩潰了,要搞作業!
    arduino IDE錯誤,有點崩
    無論編譯什么程序文件都是這個錯誤!程序自帶例程,最簡單的點亮led燈也是 這個 問題
    【項目】基于Arduino Nano的多功能桌面感應垃圾桶
    【項目】基于Arduino Nano
    基于Arduino Nano的多功能桌面感應垃圾桶隨著大學生活不斷往前邁進,宿舍桌面上的雜物
    在芯間投資成立的零知實驗室發布國內的STM32開源開發板
    在芯間投資成立的零知實驗
    在芯間電子元器件商城成立于2016年,是集電子元器件采購、SMT貼片、PCB打樣、于一
    【原創】全球最小口袋3D打印機mini one直播教程貼
    【原創】全球最小口袋3D打
    最近閑得蛋疼,沒事搞個掌上3D打印機,先放效果圖吧。 搞了半天,終于能正常打印,
    Copyright   ©2015-2016  Arduino中文社區  Powered by©Discuz!   ( 蜀ICP備14017632號-3 )
    快速回復 返回頂部 返回列表
    江西时时今天开奖号