【不敲一行代码】豆包+arduino的直流风扇调速板

【不敲一行代码】豆包+arduino的直流风扇调速板

*本工程仅0标题部分为手写,下方图片为手动拍摄,原理图pcb手绘,其他内容均为AI生成

视频

https://www.bilibili.com/video/BV13NN3z7Efj/

使用豆包对话式AI+arduino形式生成的代码

对话:

https://www.doubao.com/thread/w59fa4306eb904aba

 

向AI描述硬件的具体步骤

1.描述使用的平台,例如:arduino,VS CODE,KEIL等

2.描述使用的主控芯片品牌和具体型号,例如:STM32F103C8T6,ESP32C3等

3.需要做什么产品,例如:本次工程的调速风扇

4.产品功能描述,以本工程举例:扭动电位器到最大,风扇转速最大,扭动电位器到最小,风扇转速最小,对应LED灯指示也随之变化,有正反开关,拨到一边是正转,另一边是反转。

5.需要特别注意的点让AI知道并特别注意,例如本工程的:正反转开关切换需要1秒停止两个输出脚PWM以免烧坏电机

6.描述输入口定义(IO脚,输入输出状态,上下拉,频率,协议等)。需要用户输入的传感器,按键,旋钮,编码器,摄像头,音频等对应到MCU的引脚上。例如本工程:旋钮控制快慢,旋钮输入ADC值;开关切换旋转方向,输入IO电平。

7.描述输出口定义(IO脚,输入输出状态,上下拉,频率,协议等)。需要输出给用户的LED灯,屏幕,数码管,提示音,又或者输出给其他器件的信号,IIC控制信号,IIS控制信号,SPI信息,PWM信息等。例如本工程:输出PWM给电机驱动芯片,电机就能旋转快慢,输入给电机驱动芯片不同的引脚就能进行正传反转。这一步对整个项目的架构和理解要求较高。

8.代码需要注意的事项或需要特别的代码架构,本工程AI提示需要注意LED闪烁快慢时间要使用非阻塞式闪烁,避免使用软件delay带来阻塞调速 / 开关检测

9.要求代码清晰备注。

编译烧录:

描述写的差不多以后即可生成第一次代码,生成出来可以不看AI的思考提示,先可以直接复制到开发工具里直接编译,可能会出现编译问题,也可能直接编译通过。

1.编译出问题可以告诉AI进行反馈debug,如果自己有经验也可以自行排除,本工程使用arduino平台较少遇到该问题,后续有其他AI工程使用KEIL的遇到该问题会教大家如何排除。

2.编译没有问题可以直接烧录进MCU看现象。

软件DEBUG:

1.烧录后仔细观察现象。

2.将现象描述清晰并且反馈给AI,AI会根据你的描述现象先排查软件问题,自己有经验也可以自行进行排查。

3.若多次反馈给AI后仍然有错误,则需要考虑是否是硬件问题

4.如果是硬件问题可以考虑软件使用其他方法代替,如果是硬伤没法代替则只能进行硬件飞线,拆换器件等操作

5.重新进行硬件描述的具体步骤、编译烧录、软件DEBUG迭代

 
基于 CH552G 单片机(CH55xDuino 开发环境)实现的直流风扇调速控制器,支持电位器调速、正反转切换、LED 转速指示功能,具备换向保护机制。
  • 转速调节:10KΩ 电位器无级调速,最小档位电机停转,最大档位转速最快
  • 正反转切换:拨动开关实现风扇正反转切换,切换时自动停止输出 1 秒,保护电机和驱动芯片
  • 转速指示:LED 灯以闪烁频率指示转速(无硬件 PWM 适配方案),转速越快闪烁频率越高,停转时 LED 常灭
  • 硬件保护:换向时强制停止电机输出 1 秒,避免瞬间换向导致的电机 / 驱动芯片损坏

【不敲一行代码】豆包+arduino的直流风扇调速板

器件名称 规格 / 参数 数量 备注 CH552G 开发板 – 1 核心控制单元 直流电机 + 驱动模块 L9110/L298N(推荐 L9110) 1 CH552G IO 口不可直接驱动电机 10KΩ 线性电位器 直插 / 贴片均可 1 ADC 输入调速 拨动开关 2 档拨动开关 1 正反转切换 LED 灯 任意颜色 1 转速指示 限流电阻 220Ω 1 LED 串联限流 杜邦线 / 面包板 – 若干

电路连

CH552G 引脚 连接器件 功能说明 P32 电位器信号端 ADC 输入(电位器反接:最大转速 AD=0,停转 AD=255) P14 拨动开关 正反转切换(高电平 = 正转,低电平 = 反转) P31 电机驱动模块 IN1 正转 PWM 输出 / 反转低电平 P30 电机驱动模块 IN2 反转 PWM 输出 / 正转低电平 P11 LED 灯(串联 220Ω 电阻) 转速指示(闪烁频率随转速变化) GND/VCC 电位器 / 开关 / LED 公共地 / 5V 供电
  1. 电位器需反接:拧到风速最大时 AD 值为 0,最小风速时 AD 值为 255
  2. 电机必须通过驱动模块连接,禁止直接接 CH552G IO 口
  3. LED 需串联 220Ω 限流电阻后再连接 P11 引脚
  4. 拨动开关未按下时为低电平(反转),按下时为高电平(正转)
  • Arduino IDE 1.8.x 或更高版本
  • CH55xDuino 核心库(安装教程:https://github.com/DeqingSun/ch55xduino)
  1. 打开 Arduino IDE,安装 CH55xDuino 核心库
  2. 选择开发板:
  3. 配置参数:
    • 时钟:
    • USB 设置:
    • 上传方式:
     
  4. 上传代码到 CH552G 开发板

 

代码结构说明

├── fan.ino # 主程序文件

│ ├── setup() # 初始化引脚模式、变量

│ ├── loop() # 主循环(ADC采样、转向检测、电机控制、LED指示)

│ ├── setMotorSpeed() # 电机转速/方向控制函数

│ └── updateLedIndicator() # LED转速指示(闪烁频率控制)

 

  1. ADC 采样:读取 P豆包 大模型 教程32 引脚电位器值,反转后转换为 PWM 占空比(0-255)
  2. 转向检测:实时读取 P14 开关状态,检测到切换时停止电机输出 1 秒
  3. 电机控制:根据占空比和转向,控制 P31/P30 的 PWM 输出
  4. LED 指示:将转速值映射为闪烁间隔(20ms~500ms),非阻塞延时实现闪烁

 

本项目为开源学习项目,无正式许可证,可自由修改、分发和使用,商用前请自行评估风险。
 
本项目仅用于学习交流,使用时需自行承担硬件损坏、安全事故等风险,作者不承担任何责任。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:Ai探索者,转载请注明出处:https://javaforall.net/271783.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月12日 下午1:46
下一篇 2026年3月12日 下午1:47


相关推荐

关注全栈程序员社区公众号