esp32c3驱动iic1306oled屏

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

SSD1306 display(0x3c, 4, 5);

void setup() {
  display.init();

  display.setFont(ArialMT_Plain_24);
  display.drawString(0, 0, "Hello World");
  display.display();
}

void loop() {
  display.init();
  display.setFont(ArialMT_Plain_24); //16,10
  display.drawString(0, 0, "Ni Hao");
  display.display();
  delay(1000);
  display.init();
  display.setTextAlignment(TEXT_ALIGN_LEFT);
  display.setFont(ArialMT_Plain_10);
  display.drawString(0, 0, "Hello world");
  display.setFont(ArialMT_Plain_16);
  display.drawString(0, 10, "Hello world");
  display.setFont(ArialMT_Plain_24);
  display.drawString(0, 26, "Hello world");
  display.display();
  delay(1000);
}

https://github.com/ThingPulse/esp8266-oled-ssd1306

离线方式
arduino可以通过【项目】-【加载库】-【添加.zip库】-装指定离线库压缩包

参考资料: https://blog.csdn.net/qq_63523190/article/details/124785234

在这里插入图片描述

显示温湿度:
来源:
https://blog.csdn.net/weixin_44107116/article/details/122491820
在这里插入图片描述

#include "DHT.h"
/* 使用0.96寸的OLED屏幕需要使用包含这个头文件 */
#include "SSD1306Wire.h"

//dht11定义
#define DHTPIN 7     //数据引脚 
#define DHTTYPE DHT11   // DHT 11
DHT dht(DHTPIN, DHTTYPE);

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

/* 新建一个oled屏幕对象,需要输入IIC地址,SDA和SCL引脚号 */
SSD1306Wire oled(I2C_ADDR, SDA_PIN, SCL_PIN);
//测试屏幕显示
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() {
  Serial.begin(115200); //串口频率
   dht.begin();   //dht11
  // put your setup code here, to run once:
 /*  oled屏幕初始化 */
  oled.init();
 oled.flipScreenVertically();          // 设置屏幕翻转
  oled.setContrast(255);                // 设置屏幕亮度
  drawRect();                           // 测试屏幕显示
  oled.clear(); oled.display();         // 清除屏幕
}

void loop() {
  delay(5000);
  float h = dht.readHumidity(); 
  float t = dht.readTemperature(); 
  // put your main code here, to run repeatedly:
  /*  显示字母 */
  oled.setFont(ArialMT_Plain_16);       // 设置字体
  oled.drawString(0,0, "Temp:" +String(t)+"C"); // 将要显示的字母写入缓存
  oled.drawString(0,20, "Humidity:"+String(h)+"%"); // 将要显示的字母写入缓存
  oled.display();                       // 将缓存里的文字在屏幕上显示
  delay(3000);
  oled.clear(); 
 oled.display();         // 清除屏幕

  //可以让我们通过串口查看数据
  Serial.print(F("  Humidity: "));        
  Serial.print(h);
  Serial.print(F("%  Temperature: "));
  Serial.print(t);
  Serial.print(F("*C  \n "));
}
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值