找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9051|回复: 18
打印 上一主题 下一主题
收起左侧

STM32 PWM输出控制步进电机-3000转每分钟串口显示+电位器调速 正反转加编码

  [复制链接]
跳转到指定楼层
楼主
ID:285686 发表于 2018-8-9 12:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用电位器控制步进电机转速,可以控制正反转,在电位器中点停止;越往左翻转越快,越往右正转越快。速度均匀,包含滤波。付完整代码。全部测试正常。

单片机源程序:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "usart.h"
  6. #include "timer.h"
  7. #include "adc.h"

  8.         
  9. int main(void)
  10. {        u16 adcx;
  11.          float temp;
  12.          int a=3999;        
  13.          //int b=0
  14.          u16 led0pwmval=200;
  15.         u8 dir=1;        
  16.         delay_init();                     //延时函数初始化         
  17.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);          //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
  18.         uart_init(115200);         //串口初始化为115200
  19.          LED_Init();                             //LED端口初始化
  20.          TIM3_PWM_Init(a,71);         //不分频。PWM频率=72000000/900=80Khz
  21.          
  22.          Adc_Init();        
  23.          
  24.            while(1)
  25.         {
  26.                 adcx=Get_Adc_Average(ADC_Channel_1,10);
  27. //                adcx=2100;
  28.                
  29.                 delay_ms(8);
  30. //        temp=(float)adcx*(3.3/4096);
  31. //                adcx=temp;
  32.      printf("adcx=%d;", adcx);
  33.                         a=adcx;
  34.                 a=a-2000;
  35.                 //a=a*1000;
  36.                 //if (-1000>a>1000) a=1;
  37.                
  38.                
  39.                 //        
  40.                 //a=a*1000;
  41.                 a=100000/a;        
  42.                  if(a > 0)
  43.   {
  44.    LED1=1;        
  45.                 //sl = speed_l;
  46.                
  47.   }
  48.   else        
  49.   {
  50.     LED1=0;
  51.         a = a * (-1);
  52.                
  53.   }
  54.         //a=1000000/a;
  55.                
  56. //                 if (a<1000) a=1000;
  57. //                if (a>100000) a=100000;
  58.         //        a=1000/a;
  59.         
  60. //if (a<0) LED1=0;
  61. //if (a>0) LED1=1;        
  62.                
  63.                         TIM3_PWM_Init(a,71);         //不分频。PWM频率=72000000/900=80Khz   最高=72000000/A*6=600000,,转速=6000000/800*60=4500
  64.                 //printf("a\r\n");        
  65.                
  66.                 //printf("count = %d\n",count);
  67.     printf("a=%d\n;", a);
  68.                 delay_ms(8);         
  69. //                if(dir)led0pwmval++;
  70. //                else led0pwmval--;

  71. //                 if(led0pwmval>300)dir=0;
  72. //                if(led0pwmval==0)dir=1;                                                                                 
  73.                 //TIM_SetCompare2(TIM3,led0pwmval);        



  74.         
  75.         }         
  76. }
复制代码

全部资料51hei下载地址:
实验9 PWM输出实验-步进电机--3000转每分钟串口显示+电位器调速 - 正反转 - 加编码器 - 副本.rar (308.31 KB, 下载次数: 306)



评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏9 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2018-8-9 14:34 | 只看该作者
楼主您好 能分享原理图吗?
回复

使用道具 举报

板凳
ID:285686 发表于 2018-8-9 14:36 | 只看该作者
用的是正点原子的开发板
回复

使用道具 举报

地板
ID:285686 发表于 2018-8-9 14:37 | 只看该作者
看程序的时候,就知道如何接线。
回复

使用道具 举报

5#
ID:285686 发表于 2018-8-9 14:39 | 只看该作者
WarShip STM32F1_V3.4_SCH.pdf (694.82 KB, 下载次数: 82)
回复

使用道具 举报

6#
ID:285686 发表于 2018-8-9 14:44 | 只看该作者
正点 原子的开发板,现在还不知道问什么不能回复图片。
回复

使用道具 举报

7#
ID:1 发表于 2018-8-9 16:13 | 只看该作者
jinhua1916 发表于 2018-8-9 14:44
正点 原子的开发板,现在还不知道问什么不能回复图片。

点击编辑框右边的高级模式即可回复图片
回复

使用道具 举报

8#
ID:607899 发表于 2019-9-6 09:11 | 只看该作者
感谢分享
回复

使用道具 举报

9#
ID:609510 发表于 2019-9-9 14:39 | 只看该作者
非常好,很有帮助
回复

使用道具 举报

10#
ID:624348 发表于 2019-10-15 10:58 | 只看该作者
很有用,满意。
回复

使用道具 举报

11#
ID:612392 发表于 2019-10-16 11:16 | 只看该作者
感谢分享,非常好用
回复

使用道具 举报

12#
ID:712755 发表于 2020-3-21 11:19 | 只看该作者
感谢分享
回复

使用道具 举报

13#
ID:698165 发表于 2020-5-26 01:18 | 只看该作者
感谢分享,很有参考价值
回复

使用道具 举报

14#
ID:761393 发表于 2020-5-26 10:31 | 只看该作者
感谢分享
回复

使用道具 举报

15#
ID:733518 发表于 2020-6-10 14:24 | 只看该作者
感谢分享
回复

使用道具 举报

16#
ID:191583 发表于 2020-6-18 10:35 | 只看该作者
感谢分享
回复

使用道具 举报

17#
ID:606888 发表于 2020-8-5 19:23 | 只看该作者
最近一直在研究编码器+步进电机 感谢分享
回复

使用道具 举报

18#
ID:98880 发表于 2020-11-5 15:32 | 只看该作者
这个资料是不错,比较牛
回复

使用道具 举报

19#
ID:329586 发表于 2021-5-14 18:56 | 只看该作者
正需要这个 下载看看效果
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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