• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

【单片机开源学习】输出5S内电压变化

套件收到后按捺不住兴奋,立马装好了。BOM发布后有几个料贴的不对,还好改。只是变压器耽误了时间。

通电发现输出电压5S内电压变化由最高电压逐渐到设定电压,使用时忘了找个事,结果一颗FAN3227立马起火。

还好火势容易控制只着一颗FAN3227。心痛啊只买了6颗。

决定调整软件。想法是让她输出时电压由低到高升,这样对我这个只能看懂流水灯的菜鸟简单些。

// PWMCFG &= ~0x04; // 设置PWM输出端口的初始电平为0

PWMCFG |=  0x04; // 设置PWM输出端口的初始电平为1

把这里反过来。编译烧录。发现输出不受控制-----想法失败。

换个思路:现在的控制流程应该是输出电压电压最高后检测与设定值的差后,控制PWM调整输出达到设定电压。

如果是开始输出电压0.由设定值直接控制输出电压,这样也能解决。可打开mian.c确不知如何入手。

看来要多练练基本功啊。

全部回复(18)
正序查看
倒序查看
2015-01-19 09:54
有图嘛 ?~
0
回复
qiang7260
LV.5
3
2015-01-31 08:07
@电源网-娜娜姐
有图嘛?~
0
回复
qiang7260
LV.5
4
2015-01-31 08:12
@qiang7260
[图片][图片][图片][图片][图片][图片][图片]

经过几天测试,其他功能基本正常,在恒流状态下快速开关会有失控的现象。变压器没买到,朋友帮忙绕的,高手应能看出来,出不来30V5A,来了个变通的方法,第一档5A,第二档2A.

这几天忙,没做壳子。主要在攻软件。还有很长的路要走啊。

0
回复
2015-01-31 09:11
@qiang7260
经过几天测试,其他功能基本正常,在恒流状态下快速开关会有失控的现象。变压器没买到,朋友帮忙绕的,高手应能看出来,出不来30V5A,来了个变通的方法,第一档5A,第二档2A.这几天忙,没做壳子。主要在攻软件。还有很长的路要走啊。
恩不错,空的时候把程序的BUG全部标记出来,空的时候大家都一起来修正这些BUG,希望这个开源板最后能成为一个像样的数控电源。
0
回复
2015-02-02 10:16
@qiang7260
[图片][图片][图片][图片][图片][图片][图片]
帖子非常不错,推荐到帖子底部经典图库。更多请点击哦:http://www.dianyuan.com/bbs/classic/
0
回复
2015-02-02 10:41
@qiang7260
经过几天测试,其他功能基本正常,在恒流状态下快速开关会有失控的现象。变压器没买到,朋友帮忙绕的,高手应能看出来,出不来30V5A,来了个变通的方法,第一档5A,第二档2A.这几天忙,没做壳子。主要在攻软件。还有很长的路要走啊。

棒棒哒 ,qiang7260  已经入选到 学业PK中了,希望你再接再厉,取得好成绩~~

具体的看这里:

http://www.dianyuan.com/bbs/1507128.html

0
回复
qiang7260
LV.5
8
2015-02-02 17:51
@qiang7260
经过几天测试,其他功能基本正常,在恒流状态下快速开关会有失控的现象。变压器没买到,朋友帮忙绕的,高手应能看出来,出不来30V5A,来了个变通的方法,第一档5A,第二档2A.这几天忙,没做壳子。主要在攻软件。还有很长的路要走啊。

刚才调试一下在

if(VOL_OUT_FLAG==1)

在这加一段延时想避开开机时的高电压,

结果延时后高电压还会出来。郁闷。

再想其他办法》》》》》

0
回复
2015-02-03 08:53
@qiang7260
刚才调试一下在if(VOL_OUT_FLAG==1)在这加一段延时想避开开机时的高电压,结果延时后高电压还会出来。郁闷。再想其他办法》》》》》
告诉你一个方法,用占空比去处理,开机的瞬间让功率管导通时间从5左右开始上升到设定值,一定不能为0哈,为0占空比会不正常。
0
回复
qiang7260
LV.5
10
2015-02-03 16:49
@yueyunno1
告诉你一个方法,用占空比去处理,开机的瞬间让功率管导通时间从5左右开始上升到设定值,一定不能为0哈,为0占空比会不正常。
谢谢老师指点迷津。占空比,PWM这块还不太熟。今晚好好看看。
0
回复
qiang7260
LV.5
11
2015-02-03 17:06
@电源网-娜娜姐
棒棒哒,qiang7260 已经入选到学业PK中了,希望你再接再厉,取得好成绩~~具体的看这里:http://www.dianyuan.com/bbs/1507128.html
谢谢娜娜姐!
0
回复
2015-02-04 11:16
@qiang7260
谢谢老师指点迷津。占空比,PWM这块还不太熟。今晚好好看看。
加油~~
0
回复
qiang7260
LV.5
13
2015-02-07 08:29
@yueyunno1
告诉你一个方法,用占空比去处理,开机的瞬间让功率管导通时间从5左右开始上升到设定值,一定不能为0哈,为0占空比会不正常。
这几天一有空就看【原创】高山云教你之三--单片机玩转太阳能逆变系统[564帖 数控电源--电流检测]

跟这篇帖子学PWM。尝试加入 PWM_DATA=5

if(VOL_OUT_FLAG==1)

{     

    //delay_1ms(100); 

    PWM_DATA=5

   OUT_Voltage_PWM=ADJ_VOL;

编译没通过。提示未定义。

0
回复
qiang7260
LV.5
14
2015-02-07 08:33
@qiang7260
这几天一有空就看【原创】高山云教你之三--单片机玩转太阳能逆变系统[564帖数控电源--电流检测]跟这篇帖子学PWM。尝试加入 PWM_DATA=5if(VOL_OUT_FLAG==1){      //delay_1ms(100);   PWM_DATA=5  OUT_Voltage_PWM=ADJ_VOL;编译没通过。提示未定义。
马上要放假回老家过年了。上网不方便。提前祝大家春节愉快!来年鸿运连连!
0
回复
duhanyu
LV.2
15
2015-02-09 17:11
@qiang7260
这几天一有空就看【原创】高山云教你之三--单片机玩转太阳能逆变系统[564帖数控电源--电流检测]跟这篇帖子学PWM。尝试加入 PWM_DATA=5if(VOL_OUT_FLAG==1){      //delay_1ms(100);   PWM_DATA=5  OUT_Voltage_PWM=ADJ_VOL;编译没通过。提示未定义。

PWM很简单,就是看多少位然后分占空比,STC一般赋值0的话 就是输出全高  赋最大值就是输出全低 8位赋A0 就是50%波形

提示未定义的话,看一下你程序里这些寄存器变量(例如:PWM_DATA),

其实操作都是针对寄存器操作的,STC的头文件库里面吧 把寄存器和代号连接在一起方便操作。

如果没有加头文件库的话或者头文件里面不包括这些寄存器的define 编译应该是通不过的。

没定义的可以自己定义一下,包含头文件库的话 一般用的都有了。

程序里包含了,还得下了头文件放到文件夹里,不然编译器找不到也编译不了

0
回复
qiang7260
LV.5
16
2015-02-28 08:16
@duhanyu
PWM很简单,就是看多少位然后分占空比,STC一般赋值0的话就是输出全高 赋最大值就是输出全低8位赋A0就是50%波形提示未定义的话,看一下你程序里这些寄存器变量(例如:PWM_DATA),其实操作都是针对寄存器操作的,STC的头文件库里面吧把寄存器和代号连接在一起方便操作。如果没有加头文件库的话或者头文件里面不包括这些寄存器的define编译应该是通不过的。没定义的可以自己定义一下,包含头文件库的话一般用的都有了。程序里包含了,还得下了头文件放到文件夹里,不然编译器找不到也编译不了
谢谢老师指点。晚上回去多看看。
0
回复
qiang7260
LV.5
17
2015-03-18 13:55
@qiang7260
谢谢老师指点。晚上回去多看看。

这几天有朋友指点,出现这种情况是因:

if((SET_CURRENT-OUT_CURRENT)>5) //判断恒流还是恒压模式

{if(OUT_VOLTAGE5){if(ADJ_VOL<(1023-15))ADJ_VOL+=10;else if((ADJ_VOL>(1023-15))&&(ADJ_VOL<1020))ADJ_VOL+=2;}else{if(ADJ_VOL<1023)ADJ_VOL++;elseADJ_VOL=1023;}

及电流判断时先检测如果输出为0时控制PWM由高到低扫描。

解决方法是:

Voltage_Gath_calc();   //各通道电压采集

OUT_VOLTAGE=VOL_TEMP[2];    //电压

OUT_CURRENT=VOL_TEMP[1]; //电流 显示

在这加入:if(OUT_VOLTAGE!=0&&OUT_CURRENT!=0)

{

VOLTAGE_ADJUST();

}

这时就可避开那段高压和大电流。

盆友们可试试。

我有个想法请教乐工:能否实现将程序改成一个三段式的充电器?

设定到固定电压、电流的算法能解释一下吗?

0
回复
YY2010
LV.4
18
2016-02-23 23:25
0
回复
2022-11-04 20:04
@qiang7260
这几天有朋友指点,出现这种情况是因:if((SET_CURRENT-OUT_CURRENT)>5)//判断恒流还是恒压模式{if(OUT_VOLTAGE5){if(ADJ_VOL(1023-15))&&(ADJ_VOL

电源有两种模式?恒流和恒压,不是恒压限流?

 

0
回复