Funpack4-2 - 基于dsPIC33CK64MC105 Curiosity Nano评估板制作LED升压驱动电源
该项目使用了dsPIC33CK64MC105 Curiosity Nano评估板,实现了LED升压驱动电源的设计,它的主要功能为:恒流驱动功能和负载断路保护,并通过按键实现多档调光功能。用户可以通过按键在1到6档之间切换亮度,当处于第6档时再次按下按键可以关闭灯光,满足不同照明需求。
标签
Funpack活动
PWM
Microchip
LED驱动
dsPIC33CK64MC105
恒流
开路保护
BOOST
鲜de芒果
更新2025-07-02
50

一、项目介绍

本项目基于 Microchip dsPIC33CK64MC105 Curiosity Nano评估板和一些分立器件设计和实现一个LED升压驱动电路。该电路支持恒流驱动功能和负载断路保护,并通过按键实现多档调光功能。用户可以通过按键在1到6档之间切换亮度,当处于第6档时再次按下按键可以关闭灯光,满足不同照明需求。


1.1 硬件介绍

  • dsPIC33CK64MC105 Curiosity Nano评估板:这是一块集成了 dsPIC33CK64MC105 微控制器的开发板,具有丰富的I/O接口,非常适合进行嵌入式系统的开发和评估。
  • 分立器件:包括电感、电容、二极管、MOSFET等器件,用于搭建升压转换器的外围电路。


1.2 功能概览

  • LED升压驱动:使用BOOST拓朴有效实现提高输入电压以驱动高电压需求的LED。
  • 恒流驱动:提供稳定的电流输出以保证LED亮度的稳定性。
  • 负载断路保护:在检测到负载断路时自动限制输出电压以保护电路。
  • 6档调光功能:通过按键实现LED亮度的多档调节,支持六档调光并可最终关闭灯光(1档最暗→6档最亮→关闭)。
  • 串口数据上报:通过串口实时上报当前电路状态,包括设定电流,输出电压ADC,LED电流采样ADC,输出电压,目标电压ADC,目标电流ADC,输出电流等。


1.3 设计思路

本项目采用BOOST升压电路设计,通过 dsPIC33CK64MC105 Curiosity Nano评估板 实现驱动信号的生成与调节。输出电压采用1/10电阻分压后接入ADC采集,LED驱动电流使用ADC采集100Ω电阻电压,使用PID进行控制PWM输出的恒压和恒流以及负载断路保护。部调光功能通过评估板板载用户按键切换。


二、功能实现

2.1 软件流程图

该系统通过上电初始化配置时钟、PWM、ADC及GPIO,进入主循环后并行处理按键检测与ADC采样。按键触发时,更新亮度等级并计算对应PWM占空比以调节LED亮度;ADC实时监测电流/电压,电流波动时通过PID算法动态调整PWM实现恒流驱动,电压异常(>20V)则触发过压保护机制,限制输出并进入安全模式,确保系统稳定运行。


2.2 实现过程

2.2.1 硬件仿真与面包板电路

上图为使用 CircuitJs 搭建的硬件仿真图,以下是根据仿真硬件搭建的面包板实验电路:


2.2.2 恒流控制

电流采样:通过 100Ω 采样电阻获取电压信号, ADC每 1μs 采样一次(配置为软件触发),MCC配置截图如下:

根据采集的电流电压信号数据,使用PID计算得到控制输出的PWM占空比,关键代码如下:

uint16_t dutyCycleSetAValue = update(&pid, (((0.1 * set_current) / 3.3) * 4095.0), output_a_adc_value * 1.0);
pwm->DutyCycleSet(dutyCycleSetAValue);


2.2.3 调光功能

使用外部中断检测按键按下,实现按键响应迅速,能够准确切换1至6档亮度,并在最高档后熄灭灯光。MCC配置截图如下:

产生外部中断时,在按钮中断回调函数中进行 0 ~ 6 档的循环切换。关键代码如下:

void EXT_INT1_Callback(void) {
set_current ++;
if(set_current > MAX_CURRENT_SET) {
set_current = 0; // 循环切换
}
printf("用户按键按下,当前电流设定为:%d!\r\n", set_current);
}


2.2.4 保护机制

由于BOOST升压电路的特性,当负载突然断开时,会导致输出电压升高,如果不及时调整会导致输出电压异常从而击穿输出电路器件。为了防止以及保护输出电路这里使用软件进行控制,同时使用PID进行参数调节,当负载开路时限制输出的最大电压在20V以下。


三、功能展示

3.1. 调光演示:

短按按键:亮度从1→2→3→4→5→6档平滑过渡 第7次按下:LED完全熄灭。


3.2. 恒流特性:

设置好调试档位后,通过切换灯珠数量,可看出万用表电压变化为2.5V左右,而电流始终保持,可以支持2~5串LED驱动。 通过拍摄的视频可看出LED无频闪,这是典型的恒流驱动模式才有的特点。


3.3. 保护测试:

断开LED回路后,输出电压限制在20V以下。效果图中万用表中显示为22V左右,因为电路器件误差所致,程序中设定保护电压为20V。


3.4. 串口数据图形化展示:

通过串口实时上报当前电路状态,包括设定电流,输出电压ADC,LED电流采样ADC,输出电压,目标电压ADC,目标电流ADC,输出电流等。 下图中为上位机图形化展示LED驱动电路的高光档位、输出电压、输出电流采样电压。


四、总结

遇到的问题

  1. 原本仿真时使用NMOS搭建电路感觉一切正常,实测发现NMOS不太好控制,很容易导致电流过大而烧录NMOS。只好改用三级管进行驱动,这样比较好控制开关管的电流。
  2. 输出电压的误差较大,约达到10%左右,因缺乏这方面的知识而不知所措。但推测可能是分立器件的精度导致。
  3. 输出电流过大时会有闪烁,但那种闪烁不是频闪,而是驱动电流不足导致的明暗闪烁。这就需要更换更大功率的三极管或使用MOS管来实现。


心得体会

本项目成功利用dsPIC33CK64MC105 Curiosity Nano评估板实现了LED的升压驱动,具备恒流输出和负载断路保护功能。通过按键进行调光非常直观且易于操作。此设计不仅展示了微控制器在电源控制中的应用潜力,还提供了一种高效、可靠的LED驱动方案。后续可以进一步优化电路和算法以提高效率和响应速度。

最后,感谢硬禾学堂联合 DigiKey 推出的这次活动!此次活动带给我许多宝贵实践经验和机会,在此表示感谢!


五、参考资料

附件下载
LED.X.zip
项目源码
团队介绍
电子爱好者
团队成员
小丸子
电子爱好者
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号