2024-4-20 23:54:42 [显示全部楼层]
96浏览
查看: 96|回复: 0

[ESP8266/ESP32] “FireBeetle 2 ESP32 C6开发板”制作呼吸彩灯

[复制链接]
1.FireBeetle 2 ESP32 C6开发板简介
FireBeetle 2 ESP32-C6是一款基于ESP32-C6芯片设计的低功耗物联网主控板,适用于智能家居项目。ESP32-C6支持Wi-Fi 6、Bluetooth 5、Zigbee 3.0、Thread 1.3通讯协议,可接入多种通讯协议的物联网网络。FireBeetle 2 ESP32-C6支持Type-C、5V DC、太阳能供电,部署时有更多的供电方式选择。
多种传输协议支持,扩展无线连接性
FireBeetle 2 ESP32-C6支持Wi-Fi、Thread通讯协议,因此可以制作Matter Wi-Fi 终端设备和 Matter Thread 终端设备,实现多系统、多平台智能家居设备的无缝通信与协作。此外,FireBeetle 2 ESP32-C6还支持BLE、Zigbee通讯协议,与其他MCU组合,可作为Thread 边界路由器、Matter 网关和 Zigbee 网桥。
支持Wi-Fi 6,实现超低功耗物联网设备
ESP32-C6是乐鑫首款支持Wi-Fi 6协议(802.11ax)的芯片,Wi-Fi 6有更好的网络容量,可以让设备进行高效率、低延迟的工作。此外,Wi-Fi 6的目标唤醒时间(TWT,Target Wake Time)技术,能有效降低设备功耗,延长电池使用时间,让设备长久续航。
优秀的电源系统,设备供电更方便
FireBeetle 2 ESP32-C6集成了锂电池充电管理,可以通过type-C、5V DC、太阳能板为锂电池进行充电,太阳能充电解决了部署在阳台、窗户、屋顶等无电源线的场景带来的问题。FireBeetle 2 ESP32-C6使用太阳能电源管理模块 5V@1A同款太阳能电源管理芯片,可最大限度的利用输入电源的电流输出能力,可最大化太阳能板在各种光照条件下的输出功率。FireBeetle 2 ESP32-C6支持电池电量监测,以便在电量不足时采取措施,确保设备持续运行。

2.PWM主要内容
使用FireBeetle 2 ESP32-C6制作呼吸彩灯,使用器件,七彩灯*1,MEL7132PG-N*4个,电阻*4,排针1*8P。
脉冲宽度调制或PWM是用于改变脉冲串中的脉冲宽度的常用技术。PWM有许多应用,如控制伺服和速度控制器,限制电机和LED的有效功率。
  • Arduino输出模拟信号,也就是可变电压输出。
  • pwm技术原理及实现方法
  • 利用不同技术实现pwm

1 PWM的基本原理
脉冲宽度调制基本上是一个随时间变化而变化的方波。基本的PWM信号如下图所示。

“FireBeetle 2 ESP32 C6开发板”制作呼吸彩灯图1
2 基本PWM信号
有很多术语与PWM相关:
  • On-Time(导通时间) - 时间信号的持续时间较长。
  • Off-Time(关断时间) - 时间信号的持续时间较短。
  • Period(周期) - 表示为PWM信号的导通时间和关断时间的总和。
  • Duty Cycle(占空比) - 它表示为在PWM信号周期内保持导通的时间信号的百分比。

周期
如图所示,Ton表示导通时间,Toff表示信号的关断时间。周期是导通和关断时间的总和,并按照以下公式计算:

“FireBeetle 2 ESP32 C6开发板”制作呼吸彩灯图3
占空比
占空比用于计算为一段时间的导通时间。使用上面计算的周期,占空比计算为:
“FireBeetle 2 ESP32 C6开发板”制作呼吸彩灯图2


3 调节电压变化
(1)改变电路中的电压。
  • 缺点:体积增大,电能变成热能

(2)省电又环保的PWM变频技术
  • 称为:脉冲宽度调制(Pulse Width Modulation)
  • 通过改变脉冲宽度,将能仿真模拟电压高低变化的效果。
  • 公式:
“FireBeetle 2 ESP32 C6开发板”制作呼吸彩灯图4




4 模式输出(PWM)指令和默认频率
(1) analogWrite()函数
  • analogWrite()函数将模拟值(PWM波)写入引脚。它可用于以不同的亮度点亮LED或以各种速度驱动电机。在调用analogWrite()函数之后,引脚将产生指定占空比的稳定方波,直到下一次调用analogWrite()或在相同引脚上调用digitalRead()或digitalWrite()。
  • Arduino 的模拟输入(analogRead)的范围值介于0~1023之间,而模拟输出(analogWrite)介于0 ~ 255。
  • 在调用analogWrite()之前,不需要调用pinMode()将引脚设置为输出。

5.硬件连接
(1)原理图
“FireBeetle 2 ESP32 C6开发板”制作呼吸彩灯图5
(2)PCB
“FireBeetle 2 ESP32 C6开发板”制作呼吸彩灯图6“FireBeetle 2 ESP32 C6开发板”制作呼吸彩灯图7
(3)成品做了适当修改加入了其他元素,只做彩灯部分可按上图操作
“FireBeetle 2 ESP32 C6开发板”制作呼吸彩灯图8

6.示例程序(程序以一个灯为例)
示例程序1
#define LED_PIN 15

void setup()
{
// put your setup code here, to run once:
pinMode(LED_PIN, OUTPUT);
}

void loop()
{
for(int i = 0;i<256;i++)
{
analogWrite(LED_PIN, i);
delay(10);
}
for(int i = 255;i>=0;i--)
{
analogWrite(LED_PIN, i);
delay(10);
}
}

示例程序2
#define FREQ             2000  //频率 #define CHANGE           1     //通道
#define RESOLUTION       8     //分辨率
#define LED_PIN          15    //引脚

void setup()
{
  //设置通道()  

  // ledcSetup(CHANGE,FREQ,RESOLUTION);
  // ledcAttachPin(LED_PIN,CHANGE);
  //注意:新版本ledcSetup();和ledcAttachPin();已改为ledcAttach();
   ledcAttach(LED_PIN,FREQ,RESOLUTION);

}

void loop()
{
  //实现渐凉
  for(int i = 0;i<pow(2,RESOLUTION);i++)
  {
    //输出PWM
    ledcWrite(CHANGE,i);
    delay(10);
  }
  //实现渐灭
   for(int i = pow(2,RESOLUTION)-1;i>=0;i--)
  {
    //输出PWM
    ledcWrite(CHANGE,i);
    delay(10);
  }

}   




您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail