ESP32--Arduino--使用oled

安装库 https://github.com/ThingPulse/esp8266-oled-ssd1306
在这里插入图片描述

在这里插入图片描述
 首先,我们需要包含Wire.h库,这是与OLED显示器进行I2C通信所需的。我们还需要包含SSD1306.h库,我们将使用它来与设备进行交互。

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

 接下来,我们需要声明类SSD1306的对象,它将提供在显示中绘制所需的功能。我们将调用此对象显示。

 下面提到的类的构造函数接收器件的I2C地址作为第一个参数,即0x3c。作为第二个和第三个参数,构造函数分别接收SDA和SCL引脚的数量。在我们的例子中,如示意图所示,我们使用ESP32的引脚21和22。

SSD1306 display(0x3c, 21, 22); 

 现在,在setup函数中,我们将通过调用display对象的init方法初始化显示。此方法不接收任何参数并返回void。

display.init();

 接下来我们可以开始在显示屏上绘图。对于这个简单的例子,我们将绘制一个非常简单的“Hello World”消息。为此,我们可以调用display对象的drawString方法。

 此方法接收x和y坐标作为第一个和第二个参数,其中字符串将在显示器上绘制,并且作为第三个参数,它接收具有实际内容的String。

display.drawString(0, 0, "Hello World");

 最后,要将内容发送到显示器以便有效绘制,我们需要在对象上调用display方法。此方法不接收任何参数。

display.display();

 由于我们不打算更改显示内容,因此我们可能会留下一个空的Arduino循环函数。只要连接,我们刚绘制的字符串就会保留在显示屏上。最终的源代码如下所示。

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

SSD1306 display(0x3c, 21, 22);

void setup() {
  display.init();

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

void loop() {
 
}
### ESP32-S3 Arduino LED 控制教程 #### 使用ESP32-S3控制LED的基础方法 对于ESP32-S3而言,其能够利用Arduino IDE编写程序来控制不同类型的LED。无论是简单的单色LED还是复杂的RGB LED以及WS2812B灯带,都可以通过特定的方式进行有效的管理。 当涉及到调整LED亮度时,PWM(脉宽调制)技术被广泛应用。该技术允许改变输出到LED的电压水平从而达到调节亮度的效果[^1]。 针对更高级的应用场景,比如使用光敏电阻根据周围光线强度动态调整LED亮度的情况,在ESP32-S3上可以通过读取模拟输入引脚上的值并将其转换成合适的PWM信号发送给连接的LED实现这一功能。 另外,如果目标是操作像WS2812这样的地址able LED,则需要依赖专门设计用于处理这些设备的数据传输协议的库函数。例如`Adafruit_NeoPixel`或`FastLED`库可以帮助开发者简化对这类复杂灯光系统的编程工作[^2]。 下面给出一段基于上述原理编写的简单示例代码: ```cpp // 导入必要的库文件 #include "esp_wifi.h" #include <WiFi.h> #include <Wire.h> #define LED_PIN 2 // 定义LED所连GPIO编号 int sensorValue; // 存储来自光敏电阻或其他传感器的数值变量 float outputValue; // 经过映射后的最终输出值 void setup() { pinMode(LED_PIN, OUTPUT); // 设置LED针脚模式为输出 Serial.begin(9600); } void loop() { // 假设我们有一个连接至A0口的光敏电阻或者其他形式的模拟量采集装置 sensorValue = analogRead(A0); // 将获取到的最大范围内的ADC值缩放到适合于PWM使用的区间内 (假设最大占空比为255) outputValue = map(sensorValue, 0, 4095, 0, 255); // 输出计算所得的结果作为PWM波形 ledcWrite(CHANNEL_0, outputValue); delay(100); // 短暂延时以便观察效果变化 } ``` 此段代码展示了如何从一个模拟输入端子读数,并据此设置LED的亮度级别。值得注意的是实际应用中可能还需要考虑更多因素如噪声过滤等以提高稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值