步进电机控制程序是什么?

步进电机控制程序是什么?,第1张

AT89C51单片机,步进电机驱动器L298N驱动,实现单片机识别并输出显示键盘输入的数据信息(转角)并产生连续脉冲控制步进电机转动,电机型号是两相步进电动机42BYG121,其步进角为1.8度,通过半步驱动方式进行细分可获得0.9度的步进角兄备;环形分配器和电机驱动器...

控制器接收到上位机的命令后,首先获取需要转动的步数,然后根据相应命令打开相应定时器的计数功能。控制程序中用定时器1控制二路脉冲输出,定时器2控制一路脉冲输出,从而完成3路电机的控制。    定时器2使用CTC模式,匹配中断使能。轮或通过匹配中断,在OCR2端口可以输出脉冲,通过设定寄存器OCR2寄存器的值可以改变输山脉冲频率。定时器1使用相位与频率修正模式...

键则反向转1~9圈;左键固定正转90度,右键固定反转90;Esc 键终止转动。通过这个程序,我们也可以进一步体会到如何用按键来控制程序完成复杂的功能,以及控制和执行模块之间如何协调工作,而你的编程水平也可以在这样的实践练习中得到锻炼和提升。#include 羡桐毁<reg52.h>sbit KEY_IN_1 = P2...

给你一段电机走一步的函数吧!

/***************************************************************************************************

函数名:步进电机正反转一步虚信唤

调 用:MOTOR()

参 数:Mot=0,电机反转一步 ,Mot=1电机正转

返回值:无

结 果:电机坐标 Motor 自动加一或减差凯一,电机走一步

***************************************************************************************************/

void MOTOR(void){ //步进电机正反转一步子程序

code unsigned char MOTOR_DB[]={0x00,0xb0,0x90,0xd0,0x50,0x70,0x60,0xe0,0xa0,0x00}//定义电机输出编码

unsigned char i

MOIC=0 //开电坦旅机电流

i=0 //电机输出编码初值设00

CBB=10 //设减小电机电流时间设为10

if(Mot==1)Mo_data++

else{if(Mo_data!=0)Mo_data--}//如果电机反转,并且当前电机坐标不小于1时,坐标减一

while(1)

{

if(Mot)Motor_t ++//当前电机输出编码加一指向下一编码

else Motor_t --//电机输出编码减一

i=MOTOR_DB[Motor_t]//取电机输出编码

if(i!=0)break

else{

if(Mot)Motor_t=0

else Motor_t=9

}

}

i=i&0xf8//屏蔽低3位,高5位不变

M_data=M_data&0x07//屏蔽P1口的高5位,低3位不变

M_data=M_data|i//高5位送P1口,P1口的低3位不变

}

本人没用过A4988,但你给出的数据有明销态显错误:

1、VBB(电机电源):最小8V最大35V,你用(VMOT接+5V)5V(A4988资料上没VMOT这一接口)。

2、ENABLE(使能)端口接+A4988才能工作,你给它0V即是叫它禅知休息不亏袭源必工作。

以上


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12225780.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存