查看: 38170|回复: 56

[教程] 《博哥OLED系列》- 玩转SSD1306-12864 OLED

  [复制链接]
  • TA的每日心情
    开心
    2020-2-23 09:40
  • 签到天数: 793 天

    [LV.10]以坛为家III

    发表于 2017-9-24 21:07 | 显示全部楼层 |阅读模式
    本帖最后由 单片机菜鸟 于 2019-7-4 09:45 编辑

    个人免费交流群:ESP物联网开发之旅 622368884

    一、前言
          
          之前博哥在写ESP8266系列的时候,基本上都是通过Debug模式来获取8266 IP地址。这样就会存在一个问题,在正式环境下我们一般都会关掉debug,那么我们又如何能直观地观察当前8266的工作状态呢?既然这样,不如我们给它配上一个小的显示屏吧,然后博哥就去tb弄了一块SSD1306-12864的OLED显示屏。刚好今天又是周末,不用上班的感觉真好,果断折腾一下这个模块。
          模块就长这个样子:
           LC}T9YI9~AO[(2XJPOJAFMT.png
          简洁点,有以下基本步骤:接下来,要分别烧写两个端的代码,
          这款屏幕尺寸约为0.96英寸,由SSD1306驱动,驱动接口I2C,I2C地址(0x3c 默认/0x3d)。


          注意点:
          1.ssd1306本身支持多种总线驱动,我这里是I2C,也有是SPI的
          2.使用I2C接口,SSD1306允许有最多两位7位的I2C地址,通过相应的IO口拉低拉高来切换,一般默认为0x3c,在屏幕模块的背面,可以看到I2C地址切换提示,需要改变模块I2C地址时,只需要把提示位置的电阻取下焊接到另一个端,要注意的是板上的I2C地址是经过左移一位的数值,也就是说0x78 = 0x3c<<1, 0x7A = 0x3d << 1;
           B28LS0EIL~$EUBM${(QNR13.png

         SSD1306屏幕驱动库,最出名应该就是u8g2。但是博哥这里并不用它,改为用Adafruit_GFX 和 Adafruit_SSD1306。
         那么这两个库有什么关系呢?博哥去大概看了一下里面的源码,大家可以看看这两个图:
          }F5(V3[J[_WY6FOWS}R6YEN.png
           {1PG9IV}MIS3$IL(0`)GIN1.png

          可以看出Adafruit_GFX 定义了一系列的绘画方法(线,矩形,圆....),属于基础类,并且最重要的一点,drawPixel方法由子类来实现。
        Adafruit_SSD1306 定义了一系列跟SSD1306有关的方法,并且重写了drawPixel方法,属于扩展类。

         请先添加这两个库到arduino:
           Adafruit_GFX.rar (8.04 KB, 下载次数: 1484)
  • TA的每日心情
    开心
    2020-2-23 09:40
  • 签到天数: 793 天

    [LV.10]以坛为家III

     楼主| 发表于 2017-9-24 21:07 | 显示全部楼层
    楼主做好冷板凳
  • TA的每日心情
    郁闷
    2019-9-18 13:14
  • 签到天数: 733 天

    [LV.9]以坛为家II

    发表于 2017-9-25 08:48 | 显示全部楼层
    楼主威武,膜拜中!
  • TA的每日心情
    开心
    2020-2-23 09:40
  • 签到天数: 793 天

    [LV.10]以坛为家III

     楼主| 发表于 2017-9-25 13:35 | 显示全部楼层
    leisd 发表于 2017-9-25 08:48
    楼主威武,膜拜中!

    哈哈哈  赶紧用起来

    该用户从未签到

    发表于 2017-9-28 10:00 | 显示全部楼层
    博哥第一粉来了,先评再看哈哈
  • TA的每日心情
    开心
    2020-2-23 09:40
  • 签到天数: 793 天

    [LV.10]以坛为家III

     楼主| 发表于 2017-9-28 11:06 | 显示全部楼层
    汇研 发表于 2017-9-28 10:00
    博哥第一粉来了,先评再看哈哈

    感谢美女支持
  • TA的每日心情
    开心
    2019-10-9 11:14
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2017-10-1 18:41 | 显示全部楼层
    楼主讲得很好,名字中如果也有博字那我俩太有缘分了。顶了。
  • TA的每日心情
    开心
    2020-2-23 09:40
  • 签到天数: 793 天

    [LV.10]以坛为家III

     楼主| 发表于 2017-10-1 19:04 | 显示全部楼层
    ynqjwfb 发表于 2017-10-1 18:41
    楼主讲得很好,名字中如果也有博字那我俩太有缘分了。顶了。

    哈哈哈  我的笔名有

    该用户从未签到

    发表于 2017-10-19 21:06 | 显示全部楼层
    楼主,请教oled 和 UN怎么接线的?
  • TA的每日心情
    开心
    2020-2-23 09:40
  • 签到天数: 793 天

    [LV.10]以坛为家III

     楼主| 发表于 2017-10-19 22:51 | 显示全部楼层
    阵中人 发表于 2017-10-19 21:06
    楼主,请教oled 和 UN怎么接线的?

    看看UN的I2C总线
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    [限时福利]5分钟带你快速了解新一代开发板:M5STACK
    [限时福利]5分钟带你快速
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    ESP8266继电器没反应
    ESP8266继电器没反应
    在网上下的代码刷好后通过点灯APP按钮启动8266模块蓝色灯有亮,可是继电器没反应(没
    OLED 128*64自制可达10000000个选项的菜单(已更新)
    OLED 128*64自制可达10000
    OLED 128*64自制可达10000000个选项的菜单 温馨提示: 建议占个楼再食用本帖子
    我的ESP8266继电器也不工作
    我的ESP8266继电器也不工
    代码是下的某音上的爆改车间主任控制灯泡的那一集 #define BLINKER_WIFI #define BLIN
    点灯·blinker-3 天猫精灵接入8266+继电器控制灯
    点灯·blinker-3 天猫精灵
    继续倒腾,今天试试把“点灯”接入家里的天猫精灵。 参考“点灯”官网教程:ht
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表