小学生
最后登录1970-1-1
在线时间 小时
注册时间2017-12-26
|
请各位帮助写个STM32控制步进电机的程序(标准库);程序目的:将[信号ADC2]的值调整到最小(约等于0)。 有时间和兴趣的朋友,请联系我QQ:3242289681
开发板的端口不限;
57两相四线电机两个;
配套驱动器两个;
程序要求:
方法一:
0、上电时回原点,即电机在运动中要能记住位置;
1、能控制两个步进电机;(电机1,电机2)
电机转动时要防止丢步和失步;
2、检测两路ADC输入信号;(信号ADC1,信号ADC2)
3、开发板上电后,检测到[信号ADC1]大于设定值(200mv,可调整)时,开始工作;当[信号ADC1]小于设定值时,返回原点;
3.1,[电机1]正向转动1圈,同时捕获[信号ADC2]的值;
3.2,计算出[电机1]转动在哪个位置时,[信号ADC2]的值最小;
3.3,调整[电机1]反向转回[信号ADC2]值最小的哪个位置;
3.3,[电机2]正向转动1圈,同时捕获[信号ADC2]的值;
3.4,计算出[电机2]转动在哪个位置时,[信号ADC2]的值最小;
3.5,调整[电机2]反向转回[信号ADC2]值最小的哪个位置;
3.6,[电机1]在当前位置做正向和反向转动30度(要调整)位置,同时捕获[信号ADC2]的值;
3.7,计算出[电机1]转动在哪个位置时,[信号ADC2]的值最小;
3.8,调整[电机1]转回[信号ADC2]值最小的哪个位置;
3.9,[电机2]在当前位置做正向和反向转动30度(要调整)位置,同时捕获[信号ADC2]的值;
3.10,计算出[电机2]转动在哪个位置时,[信号ADC2]的值最小;
3.11,调整[电机2]转回[信号ADC2]值最小的哪个位置;
4、储存找到的两个位置;下次工作时优先转到这个位置时,若[信号ADC2]值不约等0,则再次回到原点。
方法二:
写出电机转动(带参)函数,输入方向、角度、速度。函数中包括[信号ADC2]捕获。
停止函数。
|
|