山顶任风吹 发表于 2022-2-15 18:20 speed(速度)、 |
两个脉冲是一步,时间上差不多的 |
我也遇到这个问题也没解决,但发现将speed直接用200也好还是2000也好,转速和圈数就对了,请哪位高手指点 |
cccc888 发表于 2020-1-16 14:19 谢谢谢谢CCCC888的帮助解惑,应该是你说的这样的了。 高4ms, 低4ms, 就是8ms了。....... ![]() ![]() 我没有考虑到,感谢大神。 |
4MS一个脉冲的话,频率是不是250HZ? 这该是比较慢的了哦……理论上12.8秒/圈, 我买的两相四线的步机最转速是1000转/秒的哦。关键是它转一圈居然要超过30秒得,这不科学,思来想去,没找到问题在哪儿, 看了步进电机最好从低速到高速再稳定,这个速度该是低速了………………。 |
baiyun1234 发表于 2020-1-16 09:09 谢谢帮助了。 2.程序这儿定义是要改为这样么: void main() { ENA=1; //ENA-接的控制口,但一样的,如果ENA=0,步进电机卡起 DIR=1; //DIR-接的控制口。初始化电机 低电平有效,测试,DIR=1,是反转, DIR=0正转。 CLK=0; Init_time(); //初始化定时器 while(1) { } } 3.这个3200是说的电机转一圈需要3200个脉冲得, 4ms输出一个脉冲感觉这个频率不高哦。 4.调成200个脉冲一圈, 步进角度是1.8度,就是不细分。4ms一个脉冲, 200个脉冲就是800ms, 0.8秒就要转一圈,这个我回去试试看看。不知道我的理解是不是有错的地方哈。 |
xuyaqi 发表于 2020-1-16 09:18 嗯, 新手就是没搞懂问题出在哪点了…… |
从代码看出(4000==4ms),好像是晶振12M,输出4ms高4ms低,周期8ms, 从实际运行看,晶振可能是11.05,那么结果基本是对的. |
步進馬達接法可能有誤? TB6600的升級版;如所附照片的驅動器,是接兩相四線的步進馬達. 樓主所說的"采用共阳接法"是不正確的. 可否秀出馬達及單片機的原理圖,方便討論市接法是否正確. |
直接东西都有了直接测一下数据都有了,用不着去算,算错说明概念理解有错。 |
sbit CLK = P1^0; //PUL- 脉冲 sbit ENA = P1^1; //ENA-使能 sbit DIR = P1^2; //DIR- 方向 1.你的步进电机是脉冲和方向控制的。你的电机动作说明使能信号OK; 2.你控制步进电机,你首先需要确定输出方向,而不是先确定输出脉冲; 3.你上来就3200的脉冲,你的电机能加起来速?最好做成梯形的加减速。 4.建议你先调成200脉冲,延时做长一点,看看能正常转不,如果你的步进电机一上电就接收高频率输出,也会不卡顿,那样慢悠悠转的。 5.如果你使用的输出频率较高,建议使用STC 1T的单片机,有100KHZ的高速脉冲输出功能。 |