DFrkOy0F-FE 发表于 6 天前

ESP32 C5初体验——炫彩风车再改造

本帖最后由 DFrkOy0F-FE 于 2025-10-25 23:43 编辑

由于最近很忙,作业一直迟迟未交,很荣幸这次参与了DFRobot的活动,看到ESP32-C5开发板的试用招募时,我的心情是无比激动的。而当我真的收到中选通知,亲手拿到这块板子时,那种“终于等到你”的喜悦感瞬间爆棚!这不仅是一块开发板,更是我们迈向更高效、更稳定物联网连接时代的一张“头等舱机票”。感谢DFRobot提供这次宝贵的试用机会!
一、 开箱与硬件初窥FireBeetle系列的包装一贯简洁环保。打开盒子,开发板本体静静地躺在其中。                        听其他大佬说,我们拿到的是ECO1(试用版),正式版将为ECO2。这枚芯片的意义非凡:
[*]首款支持Wi-Fi 6的RISC-V MCU:它不仅是乐鑫首款支持2.4GHz & 5GHz 双频Wi-Fi 6的芯片,还采用了开放的RISC-V架构,兼具高性能与低功耗特性。
[*]告别“手机热点”尴尬:因为绝大多数现代手机热点都已经支持5GHz频段,ESP32-C5可以直连,彻底扫清了配网障碍!
[*]充裕的“内存”:4MB Flash 和 512KB SRAM 的配置,对于处理复杂的网络协议、存储网页资源或运行轻量级算法来说,空间堪称“奢华”,再也不用为内存捉襟见肘而烦恼。
   板载Type-C接口、用户按键和RGB LED等外设一应俱全,引脚布局也清晰合理,为后续的扩展开发打下了坚实基础。二、 开发环境搭建(我选择用的是Arduino IDE)1.这里我们将Arduino Ide升级到了2.3.6版本         
2.然后需要下载esp32 v3.3.0-alpha1,有可能是因为行动太晚的缘故,看了好多大佬提供的github的网址,就像shengjz0303大佬说的一样,直接在官方支持的开发板管理添加会失败,最近也不知道怎么回事,github我是一直转圈没进去过。所以我就用了大佬提供的国内镜像“

[*]https://github.com/espressif/arduino-esp32/releases/download/3.3.0-alpha1/package_esp32_dev_index_cn.json”
[*]   3.之后我就不在说了,因为各个大佬已经说的很详细了,添加esp32 v3.3.0-alpha1即可。
[*]三、性能初探
[*]理论说得再多,不如实际跑个demo。我首先测试了最基本的Wi-Fi连接。

测试好后,我有拿出了我之前的炫彩风车,进行基本功能的测试

[*]四、改造
1.我所编写的代码如下:
// 引脚定义
int motorPin = 25;      // 电机控制引脚
int greenLedPin = 3;    // 绿灯引脚(3号管脚)
int redLedPin = 2;      // 红灯引脚(2号管脚)
int buzzerPin = 4;      // 蜂鸣器引脚(4号管脚)


void setup() {
// 初始化引脚模式
pinMode(motorPin, OUTPUT);
pinMode(greenLedPin, OUTPUT);
pinMode(redLedPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);

// 启动自检
startupSelfTest();
}


void loop() {
// 状态1: 电机驱动时 - 亮绿灯,蜂鸣器响
driveMotorWithGreenLightAndBuzzer();
delay(3000);// 运行3秒

// 状态2: 电机停止时 - 亮红灯,蜂鸣器关闭
stopMotorWithRedLight();
delay(3000);// 停止3秒

// 状态3: PWM调速演示
pwmSpeedControl();
delay(2000);
}


void driveMotorWithGreenLightAndBuzzer() {
// 亮绿灯,灭红灯
digitalWrite(greenLedPin, HIGH);
digitalWrite(redLedPin, LOW);

// 启动电机(50%功率)
analogWrite(motorPin, 128);// 使用analogWrite进行PWM控制

// 蜂鸣器响
digitalWrite(buzzerPin, HIGH);// 简单的高低电平控制
}


void stopMotorWithRedLight() {
// 停止电机
analogWrite(motorPin, 0);

// 亮红灯,灭绿灯
digitalWrite(redLedPin, HIGH);
digitalWrite(greenLedPin, LOW);

// 关闭蜂鸣器
digitalWrite(buzzerPin, LOW);
}


void pwmSpeedControl() {
// PWM加速过程
for(int speed = 0; speed <= 255; speed += 5){
    analogWrite(motorPin, speed);
    digitalWrite(greenLedPin, HIGH);
    digitalWrite(redLedPin, LOW);
    digitalWrite(buzzerPin, HIGH);// 蜂鸣器持续响
    delay(50);
}

delay(1000);// 全速运行1秒

// PWM减速过程
for(int speed = 255; speed >= 0; speed -= 10){
    analogWrite(motorPin, speed);
    if(speed < 128) {
      // 低速时切换为红灯提示
      digitalWrite(greenLedPin, LOW);
      digitalWrite(redLedPin, HIGH);
    }
    delay(50);
}

digitalWrite(buzzerPin, LOW);// 关闭蜂鸣器
digitalWrite(redLedPin, HIGH);// 停止后保持红灯
digitalWrite(greenLedPin, LOW);
}


void startupSelfTest() {
// 测试红灯(2号管脚)
digitalWrite(redLedPin, HIGH);
delay(500);
digitalWrite(redLedPin, LOW);

// 测试绿灯(3号管脚)
digitalWrite(greenLedPin, HIGH);
delay(500);
digitalWrite(greenLedPin, LOW);

// 测试蜂鸣器(4号管脚)
digitalWrite(buzzerPin, HIGH);
delay(500);
digitalWrite(buzzerPin, LOW);

// 测试电机(25号管脚 - 短暂启动)
analogWrite(motorPin, 100);
delay(300);
analogWrite(motorPin, 0);

// 关闭所有输出
digitalWrite(greenLedPin, LOW);
digitalWrite(redLedPin, LOW);

delay(1000);
}


// 紧急停止函数(可在需要时调用)
void emergencyStop() {
analogWrite(motorPin, 0);      // 立即停止电机
digitalWrite(redLedPin, HIGH); // 亮红灯
digitalWrite(greenLedPin, LOW); // 灭绿灯
digitalWrite(buzzerPin, LOW);// 关闭蜂鸣器
}
    硬件连接注意事项
    电机驱动模块:必须使用电机驱动模块(如L298N等),不要直接将电机连接到ESP32引脚。电机使用独立的外部电源(根据电机电压要求)
    2.呈现的效果
      



页: [1]
查看完整版本: ESP32 C5初体验——炫彩风车再改造