CN105824271B - 一种stm32控制多路步进电机同步运行的控制系统及控制方法 - Google Patents

一种stm32控制多路步进电机同步运行的控制系统及控制方法 Download PDF

Info

Publication number
CN105824271B
CN105824271B CN201610141070.8A CN201610141070A CN105824271B CN 105824271 B CN105824271 B CN 105824271B CN 201610141070 A CN201610141070 A CN 201610141070A CN 105824271 B CN105824271 B CN 105824271B
Authority
CN
China
Prior art keywords
motor
function
operations
stm32
stepping motor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610141070.8A
Other languages
English (en)
Other versions
CN105824271A (zh
Inventor
韩防
安昕
张浠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oupu Mandi Technology Co ltd
Original Assignee
Guangdong Optomedic Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Optomedic Technology Co Ltd filed Critical Guangdong Optomedic Technology Co Ltd
Priority to CN201610141070.8A priority Critical patent/CN105824271B/zh
Publication of CN105824271A publication Critical patent/CN105824271A/zh
Application granted granted Critical
Publication of CN105824271B publication Critical patent/CN105824271B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25341Single chip programmable controller

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Control Of Stepping Motors (AREA)

Abstract

本发明公开了一种STM32控制多路步进电机同步运行的控制系统,其中,包括一STM32单片机、步进电机驱动器和多路步进电机,所述STM32单片机和所述步进电机驱动器电连接,步进电机驱动器驱动步进电机,单片机控制多路步进电机同步运行,采用本发明可利用单片机的定时器资源模拟FPGA里的CLK时钟信号,把定时器中断函数里的代码执行时间近似成一个时刻点(相对于低速的步进电机),来模拟FPGA的并行执行效果,对多路电机进行同步控制,控制灵活,成本低。

Description

一种STM32控制多路步进电机同步运行的控制系统及控制 方法
技术领域
本发明涉及单片机控制系统领域,尤其涉及的是一种STM32单片机控制多路步进电机同步运行的控制系统及控制方法。
背景技术
在嵌入式控制领域里,步进电机是工业控制中的一种常用执行部件,具有控制灵活、价格低等优点,因而在许多设备和装置中常被采用。而对多个步进电机进行同步控制,传统的嵌入式解决方案是采用FPGA或CPLD等芯片。采用FPGA芯片虽然可以精确地对多路步进电机进行同时控制,但其成本高昂。由于单片机里的程序是一条条顺序执行的,对多个步进电机的控制也只能是一个紧接着一个顺序地进行。若要采用单片机实现对N个电机的同步控制,则要用N+1块单片机;其中的N块单片机负责单独驱动N个电机,另外的一块负责整体控制,通过串口命令对其他的N个电机进行控制,这样也可以达到同步控制的目的,但是非常浪费单片机资源。
因此,现有技术还有待于改进和发展。
发明内容
本发明的目的在于提供一种STM32控制多路步进电机同步运行的控制系统及控制方法,以解决现有技术中同步控制步进电机存在如下问题:
1.采用FPGA或CPLD等芯片虽然可以精确地对多路电机同时控制,但其成本高昂。
2.若要采用单片机实现对N个电机的同步控制则要用N+1块单片机,非常浪费单片机资源。
本发明的技术方案如下:
一种STM32控制多路步进电机同步运行的控制系统,其中,包括一STM32单片机、步进电机驱动器和多路步进电机,所述STM32单片机和所述步进电机驱动器连接,步进电机驱动器驱动步进电机,单片机控制多路步进电机同步运行。
所述的STM32控制多路步进电机同步运行的控制系统,其中,所述每一路步进电机配置有一个用于复位的位置传感器。
所述的STM32控制多路步进电机同步运行的控制系统,其中,所述STM32单片机包括至少一组用于推挽输出的GPIO,GPIO连接所述步进电机驱动器,驱动电平信号经比较放大后输出到多路步进电机上。
所述的STM32控制多路步进电机同步运行的控制系统,其中,所述STM32单片机还包括外部中断,所述外部中断配置为上拉输入并和所述位置传感器连接,用于接收电机复位信号。
所述的STM32控制多路步进电机同步运行的控制系统,其中,所述STM32单片机还包括定时器,所述定时器用于产生某一频率的时钟信号,控制电机运行的步数和运行的速度。
所述的STM32控制多路步进电机同步运行的控制系统,其中,所述STM32单片机还包括一与外界通讯的RS232串口。
一种STM32控制多路步进电机同步运行的控制方法,其中,包括以下步骤:
步骤a:单片机主函数执行电机初始化函数,对连接到步进电机的GPIO端口进行初始化,并根据具体应用来设定定时器的频率;
步骤b:根据用户需求,调用用户需求的步进电机运行函数,将相应电机的运行参数通过全局变量传递到定时器中断函数中,在中断函数里设置对应电机的开关、电机速度等参数;
步骤c:若有电机运行函数被调用,则触发定时器中断函数,执行步骤d操作,否则执行步骤m操作。
步骤d:如果第一路步进电机函数有调用,执行步骤e操作,否则执行i操作。
步骤e:在定时器内,打开对应电机的开关,再根据对应电机的速度参数值设置需要等待的定时器时钟个数;
步骤f:在没有触发到位传感器的情况下,执行步骤g操作;否则执行步骤h操作。
步骤g:电机先加速运行,达到指定的速度后开始匀速运行,在最后预计的步数内做减速运动,最后停止在预定的位置上,然后跳转至步骤i执行操作。
步骤h:电机减速到用户预设值后,再反向运行一定步数。
步骤i:程序进入下一个电机的执行函数入口。
步骤j:如果第二路电机函数有调用,执行步骤e-h操作;否则执行步骤i操作。
步骤k:如果第三路电机函数有调用,执行步骤e-h操作;否则执行步骤i操作。
步骤l:直至最后第N路电机函数被调用,程序重复步骤e-h操作;否则执行步骤m操作。
步骤m:退出定时器中断函数,返回主程序执行。
所述的STM32控制多路步进电机同步运行的控制方法,其中,在步骤a中,所述定时器的频率设置为40K。
本发明的有益效果:本发明利用单片机的定时器资源模拟FPGA里的CLK时钟信号,把定时器中断函数里的代码执行时间近似成一个时刻点(相对于低速的步进电机),来模拟FPGA的并行执行效果,对多路电机进行同步控制,控制灵活,成本低。
附图说明
图1是本发明中STM32控制多路步进电机同步运行的控制系统电路图。
图2是本发明中单片机的主程序流程图。
图3是本发明中单片机中串口中断流程图。
图4是本发明中定时器的中断函数流程图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。
参阅图1,本发明提供一种STM32控制多路步进电机同步运行的控制系统,其中,包括一STM32单片机1、步进电机驱动器2和多路步进电机3,所述STM32单片机1和所述步进电机驱动器2连接,步进电机驱动器驱动步进电机3,单片机控制多路步进电机3同步运行。
进一步地,所述每一路步进电机3配置有一个用于复位的位置传感器31。在本发明中,步进电机用于照相机或其他成像设备的镜头、机身的自动对焦、电子变焦,位置传感器31用于准确探测步进电机3的准确位置以使步进电机3精确复位。
进一步地,所述STM32单片机1包括若干用于推挽输出的GPIO 11,GPIO11连接所述步进电机驱动器2,驱动电平信号经比较放大后输出到多路步进电机3上。
进一步地,所述STM32单片机还包括外部中断12,所述外部中断12配置为上拉输入并和所述位置传感器31连接,用于接收步进电机3的复位信号。
进一步地,所述STM32单片机1还包括定时器13,所述定时器13用于控制步进电机运行的步数。步进电机3收到一个脉冲,需要延时大约250微秒才能运行,如果步进电机3接收到的脉冲频率过快则会造成步进电机3不能启动。在本实施例中,定时器13频率设定为40K,定时器中断函数每隔25微秒就会被调用一次。
进一步地,所述STM32单片机1还包括一个与外界通讯的RS232串口14。
参阅图2,图2是单片机主程序流程图,单片机上电后开始对串口、GPIO、定时器以及外部中断进行初始化。初始化完成后复位步进电机3,若是步进电机3没有检测到位置传感器31程序将停止前进并提示错误信息,否则程序进入到一个主循环。在该循环里,程序每隔5毫秒获取消息队列中的消息,如消息队列为空,没有获得命令,则等待5毫秒后继续获取;如果获取到的消息不为空,则执行相应的命令。如果命令执行成功,等待5毫秒后继续重复如上操作;如果命令执行失败,再次尝试执行,如果尝试3次后都失败,丢弃该命令并提示错误信息。
图3是串口中断函数流程图,串口14初始化完成后串口中断函数就可响应外部事件。当串口14收到命令后,中断函数首先对命令做解析,解析完毕后把命令存放到消息队列中通知主函数读取,然后跳转到主函数里。
参阅图4,本发明还提供一种STM32单片机控制多路电机同步运行的控制方法,其中,包括以下步骤:
步骤a:单片机主函数执行电机初始化函数,对步进电机进行初始化,根据具体应用来设定定时器的频率,在本实施例中,由于电机的运行的最高频率为4K,因此设置定时器频率为40K,留有供电机加减速的调节的余地;
步骤b:根据用户需求,调用用户需求的步进电机运行函数,将相应电机的运行参数通过全局变量传递到定时器中断函数中,在中断函数里设置对应电机的开关、电机速度等参数;
步骤c:若有电机运行函数被调用,则触发定时器中断函数,执行步骤d操作,否则执行步骤m操作。
步骤d:如果第一路步进电机函数有调用,执行步骤e操作,否则执行i操作。
步骤e:在定时器内,打开对应电机的开关,再根据对应电机的速度参数值设置需要等待的定时器时钟个数;
步骤f:在没有触发到位置传感器的情况下,执行步骤g操作;否则跳转至步骤h执行操作。
步骤g:电机先加速运行,达到指定的速度后开始匀速运行,在最后预计的步数内做减速运动,最后停止在预定的位置上,然后跳转至步骤i执行操作。
步骤h:电机减速到用户预设值后,再反向运行一定步数。
步骤i:程序进入下一个电机的执行函数入口。
步骤j:如果第二路电机函数有调用,执行步骤e-h操作;否则执行步骤i操作。
步骤k:如果第三路电机函数有调用,执行步骤e-h操作;否则执行步骤i操作。
步骤l:直至最后第N路电机函数被调用,程序重复步骤e-h操作;否则执行步骤m操作。
步骤m:退出定时器中断函数,返回主程序执行。
虽然实质上单片机并非严格意义上的同时发送脉冲给多路步进电机3,而是按照先后顺序对各路步进电机3发送脉冲,但由于单片机执行一条指令时间大约十几到几十纳秒,相对于低速运行的步进电机(脉冲间延时至少需要250微秒)而言,整个中断函数里的所有代码可以认为在同一时刻完成的,再加上中断函数每隔25微秒执行一次,所以可以等效成FPGA的并行效果。本发明利用单片机的定时器资源模拟FPGA里的CLK同步时钟信号,把定时器中断函数里的代码执行时间近似成一个时刻点(相对于低速的步进电机),来模拟FPGA的并行执行效果,对多路电机进行同步控制,控制灵活,成本低。
当然,本发明控制多路步进电机同步运行的控制系统及方法不仅仅应用于STM32单片机,本发明同样可以应用于其他型号的单片机。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (7)

1.一种STM32控制多路步进电机同步运行的控制系统,其特征在于,包括一STM32单片机、步进电机驱动器和多路步进电机,所述STM32单片机和所述步进电机驱动器连接,步进电机驱动器驱动步进电机,单片机控制多路步进电机同步运行;所述STM32单片机还包括定时器,所述定时器用于产生某一频率的时钟信号,控制电机运行的步数和运行的速度;
调用用户需求的步进电机运行函数,将相应电机的运行参数通过全局变量传递到定时器中断函数中,在中断函数里设置对应电机的开关、电机速度、根据对应电机的速度参数值设置需要等待的定时器时钟个数;若有电机运行函数被调用,则触发定时器中断函数,否则退出定时器中断函数,返回主程序执行;
定时器中断函数:如果第一路步进电机函数有调用,则在定时器内打开对应电机的开关,再根据对应电机的速度参数值设置需要等待的定时器时钟个数,若第一路步进电机函数无调用,程序进入下一个电机的执行函数入口。
2.根据权利要求1所述的STM32控制多路步进电机同步运行的控制系统,其特征在于,所述每一路步进电机配置有一个用于复位的位置传感器。
3.根据权利要求2所述的STM32控制多路步进电机同步运行的控制系统,其特征在于,所述STM32单片机包括至少一组用于推挽输出的GPIO,GPIO连接所述步进电机驱动器,驱动电平信号经比较放大后输出到多路步进电机上。
4.根据权利要求3所述的STM32控制多路步进电机同步运行的控制系统,其特征在于,所述STM32单片机还包括外部中断,所述外部中断配置为上拉输入并和所述位置传感器连接,用于接收电机复位信号。
5.根据权利要求1所述的STM32控制多路步进电机同步运行的控制系统,其特征在于,所述STM32单片机还包括一与外界通讯的RS232串口。
6.一种STM32控制多路步进电机同步运行的控制方法,其特征在于,包括以下步骤:
步骤a:单片机主函数执行电机初始化函数,对连接到步进电机的GPIO端口进行初始化,并根据具体应用来设定定时器的频率;
步骤b:根据用户需求,调用用户需求的步进电机运行函数,将相应电机的运行参数通过全局变量传递到定时器中断函数中,在中断函数里设置对应电机的开关、电机速度参数;
步骤c:若有电机运行函数被调用,则触发定时器中断函数,执行步骤d操作,否则执行步骤m操作;
步骤d:如果第一路步进电机函数有调用,执行步骤e操作,否则执行i操作;
步骤e:在定时器内,打开对应电机的开关,再根据对应电机的速度参数值设置需要等待的定时器时钟个数;
步骤f:在没有触发到位置传感器的情况下,执行步骤g操作;否则执行步骤h操作;
步骤g:电机先加速运行,达到指定的速度后开始匀速运行,在最后预计的步数内做减速运动,最后停止在预定的位置上,然后跳转至步骤i执行操作;
步骤h:电机减速到用户预设值后,再反向运行一定步数;
步骤i:程序进入下一个电机的执行函数入口;
步骤j:如果第二路电机函数有调用,执行步骤e-h操作;否则执行步骤i操作;
步骤k:如果第三路电机函数有调用,执行步骤e-h操作;否则执行步骤i操作;
步骤l:直至最后第N路电机函数被调用,程序重复步骤e-h操作;否则执行步骤m操作;
步骤m:退出定时器中断函数,返回主程序执行。
7.根据权利要求6所述的STM32控制多路步进电机同步运行的控制方法,其中,在步骤a中,所述定时器的频率设置为40K。
CN201610141070.8A 2016-03-11 2016-03-11 一种stm32控制多路步进电机同步运行的控制系统及控制方法 Active CN105824271B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610141070.8A CN105824271B (zh) 2016-03-11 2016-03-11 一种stm32控制多路步进电机同步运行的控制系统及控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610141070.8A CN105824271B (zh) 2016-03-11 2016-03-11 一种stm32控制多路步进电机同步运行的控制系统及控制方法

Publications (2)

Publication Number Publication Date
CN105824271A CN105824271A (zh) 2016-08-03
CN105824271B true CN105824271B (zh) 2018-07-27

Family

ID=56987695

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610141070.8A Active CN105824271B (zh) 2016-03-11 2016-03-11 一种stm32控制多路步进电机同步运行的控制系统及控制方法

Country Status (1)

Country Link
CN (1) CN105824271B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109976243B (zh) * 2017-12-28 2020-08-25 深圳市优必选科技有限公司 机器人同步控制方法、装置及设备
CN108310544A (zh) * 2018-01-31 2018-07-24 广东顺德工业设计研究院(广东顺德创新设计研究院) 注射泵控制设备、方法以及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1043643A2 (de) * 1999-04-03 2000-10-11 SEW-EURODRIVE GMBH & CO. Kabelsystem zur Verkabelung einer Zelle
EP1110729A2 (en) * 1999-12-21 2001-06-27 Tokyo Kikai Seisakusho, Ltd. System and method for synchronous control of rotary presses
DE69726180T2 (de) * 1996-09-10 2004-07-29 Avecontrol Oy Vorichtung zur steuerung mehrerer verschiedener elektrischer geräte
CN203104344U (zh) * 2013-03-13 2013-07-31 郭婵 生产设备中多电机同步控制系统
CN104660127A (zh) * 2014-12-04 2015-05-27 重庆谱思机器人控制系统有限公司 一种步进电机控制器及其控制方法
CN205644131U (zh) * 2016-03-11 2016-10-12 佛山市南海区欧谱曼迪科技有限责任公司 一种stm32控制多路步进电机同步运行的控制系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69726180T2 (de) * 1996-09-10 2004-07-29 Avecontrol Oy Vorichtung zur steuerung mehrerer verschiedener elektrischer geräte
EP1043643A2 (de) * 1999-04-03 2000-10-11 SEW-EURODRIVE GMBH & CO. Kabelsystem zur Verkabelung einer Zelle
EP1110729A2 (en) * 1999-12-21 2001-06-27 Tokyo Kikai Seisakusho, Ltd. System and method for synchronous control of rotary presses
CN203104344U (zh) * 2013-03-13 2013-07-31 郭婵 生产设备中多电机同步控制系统
CN104660127A (zh) * 2014-12-04 2015-05-27 重庆谱思机器人控制系统有限公司 一种步进电机控制器及其控制方法
CN205644131U (zh) * 2016-03-11 2016-10-12 佛山市南海区欧谱曼迪科技有限责任公司 一种stm32控制多路步进电机同步运行的控制系统

Also Published As

Publication number Publication date
CN105824271A (zh) 2016-08-03

Similar Documents

Publication Publication Date Title
CN100442016C (zh) 一种基于双dsp的集成化组合导航计算机
CN105824271B (zh) 一种stm32控制多路步进电机同步运行的控制系统及控制方法
CN202094830U (zh) 多轴同步伺服驱动系统
JP5402401B2 (ja) モーションコントロールシステム
CN105577052B (zh) 一种基于fpga的步进电机无抖动驱动控制系统及基于该系统的控制方法
CN104518716A (zh) 一种小型直流电动机闭环控制系统及该系统的控制方法
CN205644131U (zh) 一种stm32控制多路步进电机同步运行的控制系统
US20130253668A1 (en) Positioning apparatus and plc system using same
CN112448627A (zh) 一种多步进电机控制器、方法及多步进电机系统
CN105930133B (zh) 一种基于单片机系统的串行指令的发送方法
CN103092114A (zh) 一种用于光刻机的嵌入式控制设备及控制方法
CN109688339A (zh) 一种可编程led光源频闪控制器
CN101526800B (zh) 一种利用多周期pwm信号传递多个参数的方法和系统
CN103401495A (zh) 利用单片机控制的步进电机系统及控制方法
JP2007536659A (ja) 自動化システムのシミュレーションのための方法及び装置
CN103970027B (zh) 一种综合电子软件仿真环境中的遥测处理单元模拟方法
Deng et al. A real-time walking robot control system based on Linux RTAI
CN200987142Y (zh) 陀螺电机二相永磁电机控制器
CN115001325B (zh) 一种定时中断控制方法和多步进电机同步控制系统及方法
Ren et al. The design of networked DC motor speed control platform based on WiFi
CN102594236B (zh) 一种步进电机控制系统及其控制方法
CN102522965B (zh) 一种单稳态脉冲的软件触发方法
CN217486415U (zh) 步进电机控制电路、系统
CN113595460B (zh) 一种基于多处理器架构的xy振镜数字控制系统
CN202201585U (zh) 一种8层电梯运行模拟系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 528251 Guangdong Province Nanhai District of Foshan City, Guicheng Guicheng Ping Chau Street No. 1 Yongan Road, A block 504 Jingu Photoelectric Industrial community

Applicant after: GUANGDONG OPTOMEDIC TECHNOLOGY CO.,LTD.

Address before: 528251 Guangdong Province Nanhai District of Foshan City, Guicheng Guicheng Ping Chau Street No. 1 Yongan Road, A block 504 Jingu Photoelectric Industrial community

Applicant before: FOSHAN CITY NANHAI DISTRICT OPTOMEDIC TECHNOLOGY CO.,LTD.

GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 528253 Room 503, Floor 5, Building A, Jingu Zhichuang Industrial Community, No. 2, Yong'an North Road, Dawu Community, Guicheng Street, Nanhai District, Foshan City, Guangdong Province (residence declaration)

Patentee after: Guangdong Oupu Mandi Technology Co.,Ltd.

Address before: 504, Building A, Jingu Optoelectronics Industry Community, No.1 Yong'an North Road, Guicheng Pingzhou, Guicheng Street, Nanhai District, Foshan, Guangdong 528251

Patentee before: GUANGDONG OPTOMEDIC TECHNOLOGY CO.,LTD.