ESP32做一个电子手表(一) 点亮OLED屏幕

ESP32做一个电子手表(一) 点亮OLED屏幕


前期准备

ESP32开发板 * 1
0.96寸OLED屏幕 * 1

一、库函数介绍

使用的是Wire.h库
使用方法:

  1. 引入库
#include "SSD1306Wire.h"
  1. 实例化一个SSD1306Wire对象
SSD1306Wire display(0x3c,22,21);//0x3c是oled的地址,22为SDA,21为SCl
  1. 初始化屏幕
display.init();
  1. 显示和清除
display.clear();
display.display();
  1. 清除某个点
display.clearPixel(x,y);
  1. 把显示屏关掉/打开:
display.diapalyOff();
display.dispalyOn();
  1. 深度睡眠后恢复
display.allocateBuffer();
  1. 绘制字符串
display.drawString(0,0,"hello");
  1. 屏幕垂直翻转
display.flipScreenVertically();
  1. 屏幕镜像显示
display.mirrorScreen();
  1. 画进度条
display.drawProgressBar(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint8_t progress);//(x,y,width,height,进度)
  1. 设置字体
display.setFont(const uint8_t *fontData)

内建字体 字高 字宽 包含字符
ArialMT_Plain_10 13 10 224个字符
ArialMT_Plain_16 19 16 224个字符
ArialMT_Plain_24 28 24 224个字符

  1. 设置一个点
display.setPixel(int16_t x, int16_t y)
  1. 画空心圆
display.drawCircle(int16_t x, int16_t y, int16_t radius)
  1. 画实心圆
display.fillCircle(int16_t x, int16_t y, int16_t radius)
  1. 画1/4圆弧
    quads是角度
display.drawCircleQuads(int16_t x0, int16_t y0, int16_t radius, uint8_t quads)
  1. 画水平线
display.drawHorizontalLine(int16_t x, int16_t y, int16_t length)
  1. 画垂直线
display.drawVerticalLine(int16_t x, int16_t y, int16_t length)
  1. 画线
display.drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1)
  1. 画空心矩形
display.drawRect(int16_t x, int16_t y, int16_t width, int16_t height)
  1. 画实心矩形
display.fillRect(int16_t x, int16_t y, int16_t width, int16_t height)
  1. 显示16*16的图标 :建议使用PCtoLCD
display.drawIco16x16(int16_t x, int16_t y, const char *ico, bool inverse = false)
  1. 显示XBM图像
display.drawXbm(int16_t x, int16_t y, int16_t width, int16_t height, const uint8_t *xbm)
  1. 显示BMP位图图像:可以用于显示中文
display.drawFastImage(int16_t x, int16_t y, int16_t width, int16_t height, const uint8)

二、代码示例

#include "SSD1306Wire.h"
#include <Wire.h>

SSD1306Wire display(0x3c,22,21);//0x3c是oled的地址,22为SDA,21为SCl

void setup() {
   //oled初始化
  display.init();
  display.clear();
  display.display();
  display.mirrorScreen();//镜像显示
  display.flipScreenVertically();//垂直翻转
}

void loop() {
  // put your main code here, to run repeatedly:
  display.drawString(0,0,"HELLO,WORLD!");
  display.display();
}

三、引脚图

请添加图片描述

  • 由于oled屏幕为IIC通信方式,我们找到芯片的SCL,SDA引脚接到对应的屏幕上的SCL和SDA脚上。
    屏幕的VCC则接到芯片的3V3引脚,GND接GND引脚即可。

显示效果

请添加图片描述

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值