X
首页
技术
模拟电子
单片机
半导体
电源管理
嵌入式
传感器
最能打国产芯
应用
汽车电子
工业控制
家用电子
手机便携
安防电子
医疗电子
网络通信
测试测量
物联网
最能打国产芯
大学堂
首页
直播
专题
TI 培训
论坛
汽车电子
国产芯片
电机驱动控制
电源技术
单片机
模拟电子
PCB设计
电子竞赛
DIY/开源
嵌入式系统
医疗电子
颁奖专区
【厂商专区】
【电子技术】
【创意与实践】
【行业应用】
【休息一下】
最能打国产芯
活动中心
直播
发现活动
颁奖区
电子头条
参考设计
下载中心
分类资源
文集
排行榜
电路图
Datasheet
最能打国产芯
电机驱动控制(Motor Control)
[原创] 【iMOTION2go套件】6. MCEDesigner工具实现电机控制应用
hehung
2023-2-4 23:39
楼主
# 过往分享 [【iMOTION2go套件】1. 开箱](https://bbs.eeworld.com.cn/thread-1229533-1-1.html) [【iMOTION2go套件】2. MCEWizard工具使用+控制脚本分析](https://bbs.eeworld.com.cn/thread-1230537-1-1.html) [【iMOTION2go套件】3. MCEDesigner工具使用](https://bbs.eeworld.com.cn/thread-1231098-1-1.html) [【iMOTION2go套件】4. 控制脚本编写之LED控制](https://bbs.eeworld.com.cn/thread-1231101-1-1.html) [【iMOTION2go套件】5. 更新脚本导致版本不兼容问题绕过方法](https://bbs.eeworld.com.cn/thread-1232011-1-1.html) # 前言 年前分享的帖子[【iMOTION2go套件】3. MCEDesigner工具使用](https://bbs.eeworld.com.cn/thread-1231098-1-1.html)详细讲解了如何使用MCEDesigner以及MCEDesigner只能够各个模块的功能。本文将以实操方式,使用MCEDesigner来操作电机,控制电机顺时针/逆时针转动。 > 本文将实现MCEDesigner控制电机顺时针转动5秒,然后停止一秒,在逆时针转动5秒,然后停止。 # 实现过程 > 如果需要使用MCEDesigner来控制电机进行标定调试,则我们需要一个空的脚本,也就是任何操作都不做的脚本,不然脚本控制电机的过程与MCEDesigner控制的功能会冲突。 ## 空脚本 使用MCEWizard导入如下空脚本,编译生成ldf文件,并使用MCUDesigner下载,过程不再赘述,可以参考之前的帖子内容。 ```C #SET SCRIPT_USER_VERSION (1.00) /*Script version value should be 255.255*/ #SET SCRIPT_TASK0_EXECUTION_PERIOD (50) /*Script execution time for Task0 in mS, maximum value 65535*/ #SET SCRIPT_TASK1_EXECUTION_PERIOD (1) /*Script execution time for Task1 in 10mS, maximum value 65535*/ #SET SCRIPT_START_COMMAND (0x3) /* Start command, Task0 : Bit0, Task1 : Bit1; if bit is set, script executes after init */ #SET SCRIPT_TASK0_EXECUTION_STEP (1) /* Script Task0 step, This defines number of lines to be executed every 1mS*/ #SET SCRIPT_TASK1_EXECUTION_STEP (10) /* Script Task1 step, This defines number of lines to be executed every 10mS*/ /*********************************************************************************************************************/ int sVar0,led; /*********************************************************************************************************************/ /*Task0 init function*/ Script_Task0_init() { } /******************************************************************************************************************/ /*Task0 script function*/ Script_Task0() { } /******************************************************************************************************************/ /*Task1 init function*/ Script_Task1_init() { } /******************************************************************************************************************/ /*Task1 script function*/ Script_Task1() { } ``` ## MCEDesigner控制电机实现过程 1. 打开2-Motor窗口 如下图方式,打开电机控制窗口。
2. 新建应用功能 右键单击User Application Funxtion Definitions,新建一个Application Function ‘MotorControlFunc’。
3. 添加需要被控制的寄存器以及功能 添加方式如下图,右键单击‘MotorControlFunc’,选择需要添加的功能即可。
本例需要添加的寄存器有AngleSelect,CtrlModeSelect,TargetSpeed,Command。 本例还需要添加Delay延时功能。 - AngleSelect:设置选择通量角,即2; - CtrlModeSelect:设置选择控制方式为速度控制,即2; - TargetSpeed:设置目标速度(通过验证,无论设置什么值,最终的速度都不会被改变,电机的真实转速应该是由板载的电位计控制的,输出的电压才能真实的改变速度,这也是我的猜测,如果不对,欢迎指正); - Command:电机动作控制命令;1:则电机转动;0:电机停止。 然后进行如下的设计就可以实现电机顺时针转动5s->停止1s->逆时针转动5秒->停止的功能:
# 如何控制电机顺时针/逆时针转动 其实控制原理很简单,如果需要电机顺时针转动,则设置寄存器TargetSpeed为正值,如果需要电机逆时针转动,则设置寄存器TargetSpeed为负值。 TargetSpeed寄存器最大写入值为16383。控制电机顺时针转动,写入一个比16383小的数就可以了。 如果控制电机逆时针转动也很简单,写一个比0小但是比-16383大的数就可以了,其原理是,16为寄存器的最大值为0xFFFF,最高位为符号位,1就表示负数,想要控制电机逆时针转动,最高位就写1,然后低15为写一个比16383小的数,例如写入0x83E8,就表示-1000。 > 注意:不要直接写负数,实测MCEDesigner自动转换出来的值好像出来不对。 # 试验结果 如下图为实现结果,可以看到先顺时针转动然后逆时针转动,试验成功。 双击‘MotorControlFunc’运行。
本帖最后由 hehung 于 2023-2-5 10:33 编辑
点赞
回复评论 (1)
沙发
lugl4313820
如下图为实现结果,可以看到先顺时针转动然后逆时针转动,试验成功。
恭喜恭喜!
点赞
2023-2-5 08:46
最新活动
有奖直播报名中!抢占工业4.1先机 文晔科技日等你来!
2024 瑞萨电子MCU/MPU工业技术研讨会——深圳、上海站, 火热报名中
罗姆有奖直播 | 重点解析双极型晶体管的实用选型方法和使用方法
STM32N6终于要发布了,ST首款带有NPU的MCU到底怎么样,欢迎小伙们来STM32全球线上峰会寻找答案!
免费下载 | 安森美电动汽车充电白皮书,看碳化硅如何缓解“里程焦虑”!
是德科技有奖直播 | 应对未来高速算力芯片的设计与测试挑战
随便看看
TMS320F28022项目合作
DSP硬件设计的一些注意事项
大功率LED驱动电路
lm567能数字调制吗
BB Black入门基础之 LCD CAPE 开机启动
CC3200 低功耗深度睡眠(LPDS)模式
毕业设计的问题,诚心求一个高手帮帮忙。
为什么这个for循环跑不出来了
APP读心术 想个啥 就来了
关于STM8L152 12864液晶显示问题
汇编交通灯程序
求一个比较好的IQ解调器芯片
stm32f103vc发送中断
运算放大器的保护
【NucleoF446试用】——使用MATLAB和Simulink开发STM32嵌入式应用
PADS layout这个过孔怎么打?
求救:关于AD6654
有关quartus中ip核问题
WINCE multi-open 驱动问题
UCOSII中任务堆栈如何具体的实现保存CPU寄存器的值?
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
京公网安备 11010802033920号
回复
写回复
收藏
回复