ESP32C3 控制0.91寸OLED

使用arduino或者ESP32控制OLED屏幕,用的最多的库是Adafruit_SSD1306库,这个库还是非常好用的。

不过在用ESP32C3的时候,这个库不知道怎么就用不了,所以尝试使用了更简单一些的SSD1306Wire。

我这里使用的是0.91寸OLED,就是下面这个,这用的I2C协议,屏幕分辨率是128*32.

// 2024年9月28日
// 测试https://detail.tmall.com/item.htm?_u=sfik42d0215&id=835667024582&spm=a1z09.2.0.0.13642e8dzaNP0o
// 测试12832屏幕

#include "SSD1306Wire.h"

/* 设置oled屏幕的相关信息 */  //有一些引脚接口不支持I2C
const int I2C_ADDR = 0x3c;    // oled屏幕的I2c地址
#define SDA_PIN 6             //
#define SCL_PIN 5             //

/* 新建一个oled屏幕对象,需要输入IIC地址,SDA和SCL引脚号 */
SSD1306Wire oled(I2C_ADDR, SDA_PIN, SCL_PIN,GEOMETRY_128_32);





//测试屏幕显示
void drawRect(void) {
  for (int16_t i = 0; i < oled.getHeight() / 2; i += 2) {
    oled.drawRect(i, i, oled.getWidth() - 2 * i, oled.getHeight() - 2 * i);
    oled.display();
    delay(50);
  }
}




void setup() {

  /*  oled屏幕初始化 */
  Serial.begin(9600);
  oled.init();
  // oled.setGeometry(GEOMETRY_128_32);
  oled.flipScreenVertically();  // 设置屏幕翻转
  oled.setContrast(255);        // 设置屏幕亮度
  drawRect();                   // 测试屏幕显示
  oled.clear();
  oled.display();  // 清除屏幕
  Serial.println("getHeight " + String(oled.getHeight()));
  Serial.println("getWidth " + String(oled.getWidth()));
}

void loop() {

  // Do the encoder reading and processing
  oled.clear();
  oled.display();  // 清除屏幕
  delay(100);
  drawRect();      // 测试屏幕显示
  oled.display();  // 将缓存里的文字在屏幕上显示
  delay(2000);

  oled.clear();
  oled.display();  // 清除屏幕
  oled.setFont(ArialMT_Plain_10);//ArialMT_Plain_16
  oled.drawString(0, 0, "Hello World");
  oled.display();  // 将缓存里的文字在屏幕上显示
  for (int i = 0; i < 20; i++) {
    oled.clear();
    oled.display();  // 清除屏幕
    oled.setFont(ArialMT_Plain_16);//ArialMT_Plain_16
    oled.drawString(0, 2, String(i));
    oled.display();  // 将缓存里的文字在屏幕上显示
    delay(100);
  }

  for (int i = 0; i < 100; i++) {
    oled.clear();
    oled.display();  // 清除屏幕
    oled.drawProgressBar(0, 0, 100, 10, i);
    oled.display();  // 将缓存里的文字在屏幕上显示
    delay(20);
  }

  delay(2000);
}

ESP32C3 控制0.91寸OLED

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值