|
8| 0
|
[ESP8266/ESP32] ESP32 C5初体验——炫彩风车再改造 |
|
本帖最后由 DFrkOy0F-FE 于 2025-10-25 23:43 编辑 由于最近很忙,作业一直迟迟未交,很荣幸这次参与了DFRobot的活动,看到ESP32-C5开发板的试用招募时,我的心情是无比激动的。而当我真的收到中选通知,亲手拿到这块板子时,那种“终于等到你”的喜悦感瞬间爆棚!这不仅是一块开发板,更是我们迈向更高效、更稳定物联网连接时代的一张“头等舱机票”。感谢DFRobot提供这次宝贵的试用机会! 一、 开箱与硬件初窥 FireBeetle系列的包装一贯简洁环保。打开盒子,开发板本体静静地躺在其中。 ![]() 听其他大佬说,我们拿到的是ECO1(试用版),正式版将为ECO2。这枚芯片的意义非凡:
板载Type-C接口、用户按键和RGB LED等外设一应俱全,引脚布局也清晰合理,为后续的扩展开发打下了坚实基础。 二、 开发环境搭建(我选择用的是Arduino IDE) 1.这里我们将Arduino Ide升级到了2.3.6版本 ![]() 2.然后需要下载esp32 v3.3.0-alpha1,有可能是因为行动太晚的缘故,看了好多大佬提供的github的网址,就像shengjz0303大佬说的一样,直接在官方支持的开发板管理添加会失败,最近也不知道怎么回事,github我是一直转圈没进去过。所以我就用了大佬提供的国内镜像“
![]() 测试好后,我有拿出了我之前的炫彩风车,进行基本功能的测试
// 引脚定义 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.呈现的效果 ![]() |
沪公网安备31011502402448© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed