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

51单片机制作变频器

这仅仅是一个不作死就不会死业余程序猿干出的蠢事,大神们手下留情,砖头少飞一下,小的在此先谢过了。

很多年前,大约在07年还是05年。就有过用单片机模拟DSP跑变频器程序的想法。因为老一辈曾经用2051跑俄罗斯方块,想想人家既然能同时处理场、行还有视频信号,那么跑一个120度相差的三相正弦波应该没问题吧,迫不及待的敲一段代码,烧进AT89S52单片机一运行,结果是否定的。

   S5224M的晶振居然只能跑出几赫兹的变频正弦波来。失望之余就把代码丢一旁,后来一次硬盘损坏,代码也丢失了。

上个月由于生病加上工作的不容易,宅家里,没事瞅了瞅老姚的STC单片机,发现其中到了STC12CXXX以上的单片机居然都是1T指令周期,时钟能上35MHz,心头一亮,又闪出了想跑一跑变频器的想法。

 

说干就干,找来洞洞板,搭上最小系统,时钟吗,找了张DVD解码板,搞到一颗27M的,先用上再说。

紧接着就是满盘找以前写的代码,结果是失望的,想起那次硬盘损坏,代码早就无影无踪了。

老早就听说过变频器算法是很复杂的,毕竟没玩过DSP,也没听人家说过。只听人说过,这算法不是歪着脖子半小时能想出的东东。我现在也早已没有了当年的激情了。

思来想去,反正51速度也不够。那还是用当年的查表法吧。(有人就要说了,PIC不是1T的吗,而且人家一开始就是!?)您可别忘了,PIC是快,最高时钟一个指令200NS。可是你也别忘了,由于它的指令过于简单,简单到查表指令都没。而且我当年就用PIC测试过,那一堆查表指令下来,还没S52跑得快!

好了,回到正题,当年的数据表没了,而且你现在叫我用手算,你还是杀了我吧。。。。

歪脖子一想还是交给电脑吧,好吧立马动手敲代码。N小时后如下结果,计算一次居然要差不多十分钟,由于没开多线程,计算过程中界面也卡死,奇葩吧? ^_^

     吼吼!你那不是相差120度的三角波波么?你骗我这刚上幼儿园的小盘友?!

额额,是的,一张51能把这波波跑出来也就很能干了,何况还有一个业余的程序猿。。。。

 

迫不及待烧入STC12C5A32S2,嘿嘿,电机转起来了(家里没放三相电机,这里用的一个三相无刷电机测试的,闲余时我去搭一个三相全桥IGBT,直接输出380V AC,挂一个7.5KW电机玩玩)结果又悲剧了,电机虽然运行平稳,而且可以很低速运行(市面上的电调可不行,我手上买有2套,启动平稳运行大约都十几赫兹以上)可是最高速度也就十几赫兹,而且程序还老是复位!而我又没开启看门狗!汗。。。

注:三相直流电机与三相鼠笼式电机最大的区别是,直流电机直接挂50Hz无法启动,而鼠笼式可以。

沉思之后明白了,检查代码,居然38K字节了,人家STC12C5A32S2只有32K好么。

另,一共360度,每度再分成100份,光数据表大不说,指针溢出,一个周期跑下来也耗时多多。

更改代码重新计算,再次烧入,电机再次转起来,慢慢提高频率,电机也跟着快起来,当高到50Hz左右时电流开始减小,再高电机停转,这也是三相无刷直流电机高速不能输入正弦波的缘故。

好了,今儿到此结束,以后有空继续鼓捣。

 

                              结束语

       为啥本文中不提供代码?

玩儿这东东,可不光是能敲代码就可以的,老鸟很明白。(老鸟也不需要代码,只需要思路即可。)

 倘若您也喜欢跟我作死,那么我总结几条会作死的总结。

1、 硬件

无论是MOS管,还是IGBT,对于没太玩过的,您注意了,爆管就如同爆花生米,特别是玩上380AC的,那烟花是一个劲的赞^_^,本尊已经不知道爆了多少米了。。。。。

 

2、 代码

这个到没什么,要求就是精简。汇编妥妥的^_^,您要是会C++等,那么算法就OK了。

只是需要时间罢了^_^

全部回复(7)
正序查看
倒序查看
2016-09-23 18:54
沙发自己坐了
0
回复
12zm
LV.5
3
2016-09-23 21:02
故弄玄虚
0
回复
2016-09-24 15:31
@12zm
故弄玄虚[图片]
0
回复
2016-09-26 14:00
帖子已被设置为头条,恭喜楼主可添加电源网私人官网微信(dianyuan_com)为好友,领取现金红包(备注信息:头条红包)

      注:现金红包仅限当日领取

      活动介绍:http://www.dianyuan.com/bbs/1531738.html

     

0
回复
2016-10-01 15:09
第一,就简简单单写个变频代码容量就38K了?我真是对你写代码的水平很好奇。第二,这类代码很简单不需要你歪着脖子想半小时。

0
回复
2016-10-02 01:19
@binglian66
第一,就简简单单写个变频代码容量就38K了?我真是对你写代码的水平很好奇。第二,这类代码很简单不需要你歪着脖子想半小时。[图片]
666
0
回复
风丶殇
LV.4
8
2016-11-09 01:50
@liying1981
666
学习学习
0
回复