查看: 29805|回复: 50

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

  [复制链接]
  • TA的每日心情
    开心
    2019-6-27 01:49
  • 签到天数: 704 天

    [LV.9]以坛为家II

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

    https://blog.csdn.net/wubo_fly
    qq群:491507716    博哥私人号:2421818708

    一、前言
          
          之前博哥在写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, 下载次数: 1087)
    打赏作者鼓励一下!
  • TA的每日心情
    开心
    2019-6-27 01:49
  • 签到天数: 704 天

    [LV.9]以坛为家II

     楼主| 发表于 2017-9-24 21:07 | 显示全部楼层
    楼主做好冷板凳
    打赏作者鼓励一下!
  • TA的每日心情
    慵懒
    2019-5-22 11:04
  • 签到天数: 732 天

    [LV.9]以坛为家II

    发表于 2017-9-25 08:48 | 显示全部楼层
    楼主威武,膜拜中!
    打赏作者鼓励一下!
  • TA的每日心情
    开心
    2019-6-27 01:49
  • 签到天数: 704 天

    [LV.9]以坛为家II

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

    哈哈哈  赶紧用起来
    打赏作者鼓励一下!

    该用户从未签到

    发表于 2017-9-28 10:00 | 显示全部楼层
    博哥第一粉来了,先评再看哈哈
  • TA的每日心情
    开心
    2019-6-27 01:49
  • 签到天数: 704 天

    [LV.9]以坛为家II

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

    感谢美女支持
    打赏作者鼓励一下!
  • TA的每日心情
    开心
    2017-11-17 11:09
  • 签到天数: 9 天

    [LV.3]偶尔看看II

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

    [LV.9]以坛为家II

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

    哈哈哈  我的笔名有
    打赏作者鼓励一下!

    该用户从未签到

    发表于 2017-10-19 21:06 | 显示全部楼层
    楼主,请教oled 和 UN怎么接线的?
  • TA的每日心情
    开心
    2019-6-27 01:49
  • 签到天数: 704 天

    [LV.9]以坛为家II

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

    看看UN的I2C总线
    打赏作者鼓励一下!
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    做了一个定时喂鱼的装置
    做了一个定时喂鱼的装置
    快放假了,怕鱼饿瘦了做了这么个控制,每天定时投鱼粮。用ESP8266编写,web设定参数,
    【项目】基于Arduino Nano的多功能桌面感应垃圾桶
    【项目】基于Arduino Nano
    基于Arduino Nano的多功能桌面感应垃圾桶随着大学生活不断往前迈进,宿舍桌面上的杂物
    arduino +MPU6050控制云台相机匀速转动(接受付费)!
    arduino +MPU6050控制云台
    最近在调试云台(用的有刷直流减速电机挂大相机的那种),发现相机在往下移动时往往速
    光敏电阻检测环境光实验
    光敏电阻检测环境光实验
    本文节选自《Arduino程序设计基础》 一些简单的电子元件就可以做传感器使用,例如我
    基于Esp8266的点阵时钟
    基于Esp8266的点阵时钟
    芯片是ESP8266 12F 配合点阵单元板(64*32,单色),实现自动对时,天气预报,农历,
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表