找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 14491|回复: 24
收起左侧

单片机控制无刷电机初步调试成果和学习经历

  [复制链接]
ID:165424 发表于 2017-9-13 21:18 | 显示全部楼层 |阅读模式
调了一天多的无刷电机,用的无刷电调,其实本来应该是用32做的,但是不知道原理,  于是用了比较熟悉的51单片剂一下来进行调试 一下,查询的资料,还是蛮简单的,但是实际操作并没有那么容易, 在网上查也没有能用的程序,尤其是51,因为基本用无刷的都是无人机 四六轴。所以今天贴上我的程序,分享给大家,希望能对各位减少时间学习,快速上手,本程序实现的功能是在第一次给无刷电机上电后,首先拉高油门,然后降低油门,最后满开油门,注意,,,,注意,,,,注意,一定不要用带螺旋桨的无刷电机来实验,危险,开机后会全速运行,我开全速是为了用涵道,所以全速,,
PWM控制LED亮度.jpg

废话不多说,贴程序
51单片机源程序如下:
  1. /**************************************************************************/

  2.           //-----------------直流电机PWM调速实验程序----------------//

  3. //测试单片机:STC89C52

  4. //晶振:11.0592M (外部)

  5. //复位方式:内部复位
  6.                     
  7. //调试环境:KEIL3

  8. //硬件测试环境:使用“清翔电子”单片机开发板测试通过

  9. //程序功能: PWM也就是脉宽调制,是指在周期脉冲信号频率不变的情况下,改变高电平
  10. //
  11. //                         和低电平的比例,也就是改变占空比。PWM在灯具调光,直流电机调速方面
  12. //
  13. //                         有着广泛的应用。程序使用定时器0中断模拟PWM定时,S2、S3 两个独立按
  14. //
  15. //                         键控制电机速度,为使演示结果明显,PWM输出
  16. //
  17. //                     到整个P1接口,通过板上的LED灯可以看到亮度的变化。
  18. //
  19. /****************************************************************************/        

  20. #include <reg51.h>

  21. typedef unsigned char uint8;
  22. typedef unsigned int  uint16;

  23. sbit down = P3^0;
  24. sbit up = P3^1;

  25. uint8 t = 0;
  26. uint8 PWM_T = 0;   //占空比控制变
  27. uint8 pwm_init_ready;
  28. void delay_1ms(uint16 t)
  29. {
  30.         uint16 x,y;
  31.         for(x=t;x>0;x--)
  32.                 for(y=120;y>0;y--);
  33. }


  34.          
  35. /****************************************************
  36.                   主程序
  37. ****************************************************/
  38. void main(void)      
  39. {

  40.         TMOD = 0x02;   //定时器0,工作模式2,8位定时模式
  41.         TH0=(65536-20000)/256;// ?????11.0592,???????46080,?????50000?????????
  42.         TL0=(65536-20000)%256;//46080???,?50000*11.0592/12
  43.         TR0=1;       //启动定时器
  44.         ET0=1;       //允许1定时器0中断
  45.         EA=1;        //允许总中断
  46.         P1=0xff;          //初始化P1,输出端口

  47.                 PWM_T=19;
  48.                 delay_1ms(1000);
  49.     PWM_T=11;
  50.          while(1)              
  51.          { // delay_1ms(3000);
  52.                          PWM_T=48;         
  53.     /*  if(!up)
  54.                   {
  55.                                 if(PWM_T<200)
  56.                                         {
  57.                                           PWM_T++;
  58.                                         }
  59.                                         while(!up);
  60.                                 delay_1ms(10);
  61.                   }
  62.                  if(!down)
  63.                          {
  64.                                 if(PWM_T>0)
  65.                                         {
  66.                                           PWM_T--;
  67.                                         }
  68.                                 while(!down);
  69.                                 delay_1ms(10);
  70.                         }*/

  71.         
  72.          }      
  73. }
  74. timer0() interrupt 1  
  75. {         
  76.          t++;    //每次定时器溢出加1
  77.          TH0=(65536-20000)/256;// ?????11.0592,???????46080,?????50000?????????
  78.    TL0=(65536-20000)%256;//46080???,?50000*11.0592/12
  79.          if(t==200)   //PWM周期 100个单位
  80.                  {
  81.                           t=0;  //使t=0,开始新的PWM周期
  82.                           P1=0xff;  //输出端口
  83.                  }
  84.          
  85.          if(t==PWM_T)  //按照当前占空比切换输出为高电平
  86. ……………………

  87. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
51调试无刷电调.zip (808.05 KB, 下载次数: 323)

评分

参与人数 2黑币 +115 收起 理由
GUOXUAN + 15 共享资料的黑币奖励!
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:165424 发表于 2017-9-14 14:10 | 显示全部楼层
哪里来的动图,我咋不知道
回复

使用道具 举报

ID:232875 发表于 2017-9-14 15:18 | 显示全部楼层
最近正在找PWM调控灯亮度的程序,下载来参考下
回复

使用道具 举报

ID:292359 发表于 2018-3-15 16:18 | 显示全部楼层
好文,感谢
回复

使用道具 举报

ID:332796 发表于 2018-5-18 10:50 | 显示全部楼层
这个有proteus的仿真吗?
回复

使用道具 举报

ID:61218 发表于 2018-5-18 12:00 | 显示全部楼层
不是無刷的吧!!!
回复

使用道具 举报

ID:388780 发表于 2018-9-3 21:32 | 显示全部楼层
我试了下,好像达不到满速啊
回复

使用道具 举报

ID:427870 发表于 2018-11-16 19:36 | 显示全部楼层
可以,想下载可是黑币不够
回复

使用道具 举报

ID:200735 发表于 2019-1-22 05:46 | 显示全部楼层
非常感谢,可以调多大电流的?
回复

使用道具 举报

ID:477022 发表于 2019-2-16 02:00 | 显示全部楼层
看起来很方便呀
回复

使用道具 举报

ID:500426 发表于 2019-3-31 13:46 | 显示全部楼层
学习学习
回复

使用道具 举报

ID:468240 发表于 2019-4-3 15:48 来自手机 | 显示全部楼层
驱动模块,用的是什么?
回复

使用道具 举报

ID:409016 发表于 2019-4-16 22:00 | 显示全部楼层
不错,代码写的挺好
回复

使用道具 举报

ID:467178 发表于 2019-4-17 19:36 | 显示全部楼层
想收藏帖子但是不知道在哪收藏
回复

使用道具 举报

ID:249416 发表于 2019-4-21 15:48 | 显示全部楼层

学习学习
回复

使用道具 举报

ID:525710 发表于 2019-5-1 20:36 | 显示全部楼层
可以  学习学习
回复

使用道具 举报

ID:523759 发表于 2019-5-2 09:49 | 显示全部楼层
P3^0P3^1是什么
回复

使用道具 举报

ID:497714 发表于 2019-5-19 22:09 | 显示全部楼层
可以可以 找无刷电机的调速找了好久
回复

使用道具 举报

ID:249416 发表于 2019-6-16 11:14 | 显示全部楼层
版主这个是不带霍尔的对吧
回复

使用道具 举报

ID:386691 发表于 2019-8-20 08:38 | 显示全部楼层
收下了,谢谢!
回复

使用道具 举报

ID:648726 发表于 2019-11-26 20:59 | 显示全部楼层
不错,值得分享。
回复

使用道具 举报

ID:452333 发表于 2019-11-27 07:07 | 显示全部楼层
看不太懂,谢谢分享
回复

使用道具 举报

ID:361620 发表于 2020-8-24 10:50 | 显示全部楼层
相序检测比较电路时序图有吗???
回复

使用道具 举报

ID:868138 发表于 2020-12-26 10:30 | 显示全部楼层
huang112233 发表于 2018-5-18 10:50
这个有proteus的仿真吗?

没有吧,很多元件那个proteus里面都没有
回复

使用道具 举报

ID:510170 发表于 2021-4-1 09:40 | 显示全部楼层
谢谢楼主无私奉献。目前研究中。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表