3d打印机步进值调试 用c语言程序实现步进电机的正反转加减速的编程?

[更新]
·
·
分类:互联网
1377 阅读

3d打印机步进值调试

用c语言程序实现步进电机的正反转加减速的编程?

用c语言程序实现步进电机的正反转加减速的编程?

内容:1、本程序用于测试4相步进电机常规驱动
2、需要用跳帽或者杜邦线把信号输出端和对应的步进电机信号输入端连接起来
3、速度不可以调节的过快,不然就没有力矩转动了
4、按s4(设置成独立按键模式)可以控制正反转
------------------------------------------------*/
#include
bit Flag;//定义正反转标志位
unsigned char code F_Rotation[4]{0xf1,0xf2,0xf4,0xf8}; //正转表格
unsigned char code B_Rotation[4]{0xf8,0xf4,0xf2,0xf1}; //反转表格
/******************************************************************/
/* 延时函数 */
/******************************************************************/
void Delay(unsigned int i)//延时
{
while(--i);
}
/******************************************************************/
/* 主函数 */
/******************************************************************/
main()
{
unsigned char i;
EX11; //外部中断0开
IT11; //边沿触发
EA1; //全局中断开
while(!Flag)
{
P00x71;//显示 F 标示正转
for(i0;i
{
P1F_Rotation[i]; //输出对应的相 可以自行换成反转表格
Delay(500); //改变这个参数可以调整电机转速 ,数字越小,转速越大
}
}
while(Flag)
{
P00x7C;//显示 b 标示反转
for(i0;i
{
P1B_Rotation[i]; //输出对应的相
Delay(500); //改变这个参数可以调整电机转速 ,数字越小,转速越大
}
}
}
/******************************************************************/
/* 中断入口函数 */
/******************************************************************/
void ISR_Key(void) interrupt 2 using 1
{
Delay(300);
Flag!Flag; //s3按下触发一次,标志位取反
}

3d打印机打印总是跑打印总是错位怎么回事?

您好!错层一般有三个原因,你可以参考下并作出调整。
1.步进电机失步。打印速度或运动的加速度过大(尤其在突然转弯的地方)将超过电机的额定负荷,导致喷头不能运动到预定位置。可通过降低打印速度或更改加速度设置改善。电机失步也有可能是电机设置的电流不够大,电机的输出扭矩不足,可以适当调整步进电机的静态参考电压来调节输出电流或直接换高档的步进电机驱动板。
2.传动环节出错。电机输出轴与同步轮未锁紧,同步轮与长轴未锁紧,同步带太紧或太松等。可通过检查顶丝、移动同步带等排查原因。运动件摩擦力过大(装配精度不够、润滑保养不及时等引起)
3.过热。电机、电机驱动器或电源过热都将间接影响喷头运动。