查看: 55534|回复: 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.arduino.cn/thread-20081-1-1.html
    u8g2显示图片教程:http://www.arduino.cn/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.arduino.cn/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.arduino.cn");
      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
  • 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

     楼主| 发表于 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

    发表于 2016-12-26 13:41 | 显示全部楼层
    谢谢分享                       
  • TA的每日心情
    开心
    2016-12-13 11:27
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2016-12-26 15:58 | 显示全部楼层
    谢谢楼主分享啊
  • TA的每日心情
    开心
    2018-7-18 17:56
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2016-12-26 17:10 | 显示全部楼层
    谢谢分享     
  • TA的每日心情
    开心
    2019-11-4 18:07
  • 签到天数: 761 天

    [LV.10]以坛为家III

    发表于 2016-12-26 19:55 | 显示全部楼层
    谢谢奉献哈哈哈
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    Blynk与m5stack basic以及uiflow的交互玩法
    Blynk与m5stack basic以及
    Blynk与m5stack basic以及uiflow的交互玩法 [准备工作我们假设玩家已经熟悉下面的准备
    【Arduino】108种传感器模块系列实验(45)---红外避障传感器
    【Arduino】108种传感器模
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    【原创】全球最小口袋3D打印机mini one直播教程贴
    【原创】全球最小口袋3D打
    最近闲得蛋疼,没事搞个掌上3D打印机,先放效果图吧。 搞了半天,终于能正常打印,
    Arduino MEGA 与UNO 通过nRF24L模块通讯
    Arduino MEGA 与UNO 通过n
    之前在深水宝很“实惠”的店铺买了一些原件,随手砍了esp8266以及nRF24L*3 因为缺
    中文 字库 的8针 OLED 12864模块 arduino
    中文 字库 的8针 OLED 128
    屏幕电路SPI连线: 中文字库OLED Arduino UNO GND GND
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表