查看: 28422|回复: 229

[教程] 【Arduino教程】使用u8g2驱动图形显示器

  [复制链接]
  • TA的每日心情
    奋斗
    2018-7-3 21:30
  • 签到天数: 46 天

    [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模块
    43554060969

    1.安装u8g2
    ·通过IDE自带的库管理器,搜索 u8g2,点击安装即可。
    Arduino IDE使用——通过库管理器添加引用库   http://www.arduino.cn/thread-17883-1-1.html
    ·也可以通过本帖下载u8g2:
    游客,如果您要查看本帖隐藏内容请回复


    2.准备显示设备并连接到Arduino
    在u8g2中,不同的显示设备对应不同的构造函数。
    教程中使用的设备为 OpenJumper OLED模块

    3.可使用两种类实例化一个显示器对象
    u8g2提供了两类api——u8g2和u8x8,前者是标准完备的u8g api,后者是高效精简api。
    对于OpenJumper OLED模块,可以使用如下语句进行实例化:
    [C++] 纯文本查看 复制代码
    U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, SCL, SDA,resetPin); 
    U8X8_SSD1306_128X64_NONAME_SW_I2C u8x8(SCL,SDA,resetPin); 
    


    4.使用例程即可了解如何开发

    这里提供一个显示中文的例程:
    [C++] 纯文本查看 复制代码
    #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选中对应的字表,如:
      
    [C++] 纯文本查看 复制代码
     u8g2.setFont(u8g2_font_unifont_t_chinese2); 
    u8g2.print("凹凸"); 

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






    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-7-3 21:30
  • 签到天数: 46 天

    [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的每日心情
    开心
    2018-7-22 00:22
  • 签到天数: 430 天

    [LV.9]以坛为家II

    发表于 2016-12-26 19:55 | 显示全部楼层
    谢谢奉献哈哈哈
    打赏作者鼓励一下!
    高级模式  
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    Arduino Uno 电机无法正常工作问题
    Arduino Uno 电机无法正常
    如图,请问代码有什么不对的地方吗 #include #include #include double angle_r
    顔色傳感器
    顔色傳感器
    有會使用顔色傳感器的朋友嗎?請問怎樣識別紅色和藍色,當然能來段代碼就更好了
    Blink——Arduino的Hello World!
    Blink——Arduino的Hello
    本教程节选自《Arduino程序设计基础》 Arduino编程基础(零)——Blink,Arduino的He
    创客集结号项目:太阳能陀螺仪机器人
    创客集结号项目:太阳能陀
    这是一只最简单的全自动机器人,它不像居家电器一样需要电源开关,也不需要人来维护,
    关于蓝牙4.0的问题
    关于蓝牙4.0的问题
    蓝牙4.0始终进不来AT,用的是JDY08 代码 #include SoftwareSerial BT(10, 11); // 接
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表