PCM开发板模块实验指导--步进电机运行指定距离实验

模块推荐:https://item.taobao.com/item.htm?ft=t&id=671629736762

        60---步进电机运行指定距离实验:

                硬件需求:PC机,PCM模块一个,microUSB线,5V/0.5A直流电源,12V/1A直流电

                源,42步进电机1个,A4988步进电机驱动器一个,导线若干;

                软件需求:PCM编译软件,串口调试助手;

                供电方式:12V电源供电给+5V电源,+5V电源输出的5V给PCM模块供电;

                连接电路:如图93(步进电机正反转实验)

                        本实验的硬件电路与步进电机正反转实验一样,此次使用steprundist指令让电机正

                转3200个脉冲,即正转一圈,然后反转3200个脉冲,即反转一圈。在电机的运行过程

                中,每秒显示一次电机的速度及运行距离。运行停止后显示总的运行距离。

                        实验程序如下:

                1 intpro int0 //马达停止中断程序

                2         stepgetdist 0 d3 //获取通道0马达运行的距离,保存到D3,单位脉冲数

                3         prints "step moto stoped\r\n" //输出马达停止的信息

                4         prints "total distance is %d pulses\r\n" d3 //打印马达运行的距离

                5         mov 0 d0 //清零D0,

                6 endint

                7 subpro sub1 //子程序

                8         mov 1 d0 //D0=1

                9         while d0 //循环

                10                 stepgetspeed 0 f0 //获取通道0马达速度,单位弧度每秒

                11                 stepgetdist 0 d3 //获取通道0马达运行的距离,保存到D3,单位脉冲数

                12         ​​​​​​​        prints "speed is %f rad/s\r\n" f0 //打印马达运行的速度

                13         ​​​​​​​        prints "distance is %d pulse\r\n" d3 //打印马达运行的距离

                14         ​​​​​​​        delay 1000 //延时1S

                15         endwhile

                16 endsub

                17 main

                18         intinit s0 int0 //初始化马达停止中断

                        //步进马达初始化0通道,电机转一圈3200个脉冲,步进马达运行停止后会置位Sn

                19         stepinit 0 3200 s0

                        //启动通道0步进电机,3200表示正转3200个脉冲,加减速时间都是1S,

                        //最大速度1.5弧度每秒,F10保存马达运行3200个脉冲需要的时间,单位S;

                20         steprundist 0 3200 1 1.5 f10

                21         prints "total run time is %fs\r\n" f10 //打印运行总时间

                22         call sub1 //调用子程序

                        //启动通道0步进电机,-3200表示反转3200个脉冲,加减速时间都是1S,

                        //最大速度1.5弧度每秒,F10保存马达运行3200个脉冲需要的时间,单位S;

                23         steprundist 0 -3200 1 1.5 f10

                24         prints "total run time is %fs\r\n" f10 //打印运行总时间

                25         call sub1 //调用子程序

                26 endmain

                        程序第1-6行为步进马达停止中断程序,当马达运行停止时会执行此程序,在程序

                中,先读取马达运行的距离,通过串口输出显示,然后清零D0寄存器;

                        第7-16行,为速度,位移显示子程序,当D0不为0,表示马达在运行,每秒显示一

                次速度与位移;

                        第17-26行为主程序,主程序中使用steprundist指令让步进马达运行指定距离,当马

                达到达指定距离后,马达会自动停止运行;

                        下图95为串口输出信息,可以看出当马达运行停止时,马达移动的距离为3200个脉

                冲。

        图95         步进电机运行指定距离实验串口输出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值