当前位置: 代码迷 >> 综合 >> 【掌控板-arduino】2、arduino使用sh1106显示
  详细解决方案

【掌控板-arduino】2、arduino使用sh1106显示

热度:5   发布时间:2023-12-05 20:37:42.0

1 前言

硬件:掌控板2.0
平台:arduino,非mind+

使用arduino平台,在掌控板2.0上显示图像。

2 硬件介绍

掌控板2.0使用的是ssd1106进行显示,参见电路图
在这里插入图片描述
同时查看IO口
在这里插入图片描述
如图,SCL使用IO22,SDA使用IO23

3 arduino加载库

3.1 方法1——利用arduino管理库搜索

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
可以搜索"esp32 1306"或"1106",我没有找到ssd1106,也可以直接搜"sh1106"
然后选择安装。
安装好后可以在文件夹中查看代码。
代码路径:C:\Users\XXXX\Documents\Arduino\libraries
XXXX为用户名。
在这里插入图片描述
该目录下有示例examples目录,当然也可以在arduino中打开。
在这里插入图片描述
注意不要直接上传,因为还需要进行设置。参见下一章

3.2 方法2——github中下载源码

https://github.com/ThingPulse/esp8266-oled-ssd1306
在这里插入图片描述
下载好后可以直接通过arduino中选择"添加.zip库"添加,也可以直接解压到arduino库路径
在这里插入图片描述

4 修改代码适配硬件

打开示例代码,可以看到其实是支持ssd1306和sh1106的,两者需要进行区分。

1 修改头文件和参数类型

//sh1106
#include "SH1106Wire.h"
SH1106Wire display(0x3c, SDA, SCL);   //SSD1306
#include "SSD1306Wire.h"
SSD1306Wire display(0x3c, SDA, SCL);   

需要注意,有点驱动设置0x3c为SH1106,0x3D为SSD1306,看驱动定义。

2 修改SDA SCL
如第二章介绍的,查看电路图知道了对应的IO口

//sh1106
#include "SH1106Wire.h"
SH1106Wire display(0x3c, 23, 22);   //SSD1306
#include "SSD1306Wire.h"
SSD1306Wire display(0x3c, 23, 22);   

至此修改就完成了,尝试下运行示例,是否成功。
后续可以根据提供的示例修改显示内容。

结果

  1. SSD1306DrawingDemo
    在这里插入图片描述
    在这里插入图片描述

显示反了,后续再看。

  1. SSD1306ClockDemo
    在这里插入图片描述
    在这里插入图片描述
    这个看起来是定时切换画面的,可以尝试加上sensor感应转动时切换。
  相关解决方案