ESP32S3 点亮 RGB LED 灯珠

一、环境:

平台:arduino IDE 或 VS Code PlatformIO 皆可。

我的是后者,具体为:

        框架:VS + PlatformIO + Arduino

        第三方库:Adafruit NeoPixel

二、硬件准备:

一个esp32s3,注意:ESP32S3连接的RGB LED引脚,我的是IO48

一台电脑

一根数据线

三、代码功能:

        点亮一个RGB LED:

四、下载Adafruit NeoPixel库:

1、点击小蚂蚁图标,进入PIO Home。

2、点击Libraries。

3、输入Adafruit NeoPixel,搜索。

4、点击Adafruit NeoPixel库。

5、点击Add to Project。

6、选择你要把这个库加入到哪个工程。 

7、点击Add。

8、在你的工程中,点击 platformio.ini 文件。

9、此时,可以见到你已经把Adafruit NeoPixel库加入到工程。本来结束,但是,还有10。

 10、在一系列目录里,有文件夹 example 里面是这个库的各种例程。大家可以多多发掘,尽情享用。

五、最简代码

#include <Adafruit_NeoPixel.h>
#include <Arduino.h>

#define LED_PIN 48         // 板载RGB灯珠的引脚,根据实际使用的开发板型号而定
#define LED_COUNT 1         // LED灯条的灯珠数量(板载的是一颗)

/*
使用 Adafruit_NeoPixel 库创建了一个名为 strip 的对象,控制LED灯珠
LED_COUNT 表示 LED 条上的 LED 数量,LED_PIN 表示连接到 Arduino 的引脚,NEO_GRB + NEO_KHZ800 用于设置 LED 条的颜色排列和通信速率
*/ 
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);


void setup() {
	strip.begin();
	strip.setBrightness(50); // 设置亮度(0-255范围)
}

void loop() {
	strip.setPixelColor(0, strip.Color(255, 0, 0)); // 设置灯珠为红色 (R, G, B)
	strip.show(); // 显示颜色
	delay(1000);  // 延迟1秒

	strip.setPixelColor(0, strip.Color(0, 255, 0)); // 设置灯珠为绿色 (R, G, B)
	strip.show(); // 显示颜色
	delay(1000);  // 延迟1秒

	strip.setPixelColor(0, strip.Color(0, 0, 255)); // 设置灯珠为蓝色 (R, G, B)
	strip.show(); // 显示颜色
	delay(1000);  // 延迟1秒
}

最后,我有话说:

        如果文章对你有帮助,我很开心。有疑问,请留言,看到后,我会回复。

借鉴了这位哥哥的文章【ESP32开发】——RGB LED灯(灯珠)点亮_esp32 led-CSDN博客

ESP32-S3是一款由Espressif Systems公司开发的单片机,集成了Wi-Fi和蓝牙功能,常用于物联网(IoT)应用。在Arduino中使用ESP32S3控制LED和按键,你可以按照以下步骤操作: 1. **硬件连接**: - 将LED的正极连接到ESP32 S3的GPIO引脚(通常是数字IO pin,如D1或D2)。 - 将LED的负极接到GND。 - 按键连接到另一个GPIO引脚(如D3或D4),通常使用中断模式来检测按键按下事件。 2. **软件配置**: - 在Arduino IDE中,选择适合ESP32-S3的Boards(如`Espressif ESP32S3`)。 - 使用`#include <WiFi.h>` 和 `#include <ArduinoJson.h>` 或其他必要的库(如果要处理网络请求)。 - 初始化GPIO,设置按键的中断模式,并为LED定义一个函数,比如`void ledOn()`和`void ledOff()`来控制亮度。 ```cpp void setup() { // 初始化GPIO pinMode(LED_PIN, OUTPUT); // LED PIN是你的LED对应引脚 pinMode(KEY_PIN, INPUT_PULLUP); // KEY_PIN是你的按键对应引脚,设置为上拉 // 如果需要,注册按键中断 attachInterrupt(digitalPinToInterrupt(KEY_PIN), keyPressHandler, RISING); } void loop() { if (keyPressed()) { // 判断按键是否被按下 digitalWrite(LED_PIN, HIGH); // LED亮起 } else { digitalWrite(LED_PIN, LOW); // LED熄灭 } } void keyPressHandler() { digitalWrite(LED_PIN, HIGH); // 按键按下时,点亮LED delay(1000); // 示例中短暂保持点亮状态,可根据需求修改 digitalWrite(LED_PIN, LOW); // 松开按键后,LED熄灭 } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值