《ULN2003怎样驱动5V步进电机.docx》由会员分享,可在线阅读,更多相关《ULN2003怎样驱动5V步进电机.docx(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、ULN2003怎样驱动5V步进电机网络转载导语:步进电机是将电脉冲信号转变为角位移或者线位移的开环控制电机,是当代数字程序控制系统中的主要执行元件,应用极为广泛。ULN2003是一个非门电路,包含7个单元,各二极管的正极分别接各达林顿管的集电极。用于感性负载时,该脚接负载电源正极,起续流作用在感性负载中,电路断开后会产生很大的反电动势,为防止损坏达林顿管,接反相的二极管来构成通路,使之转换为电流。是将电脉冲信号转变为角位移或者线位移的开环控制电机,是当代数字程序控制系统中的主要执行元件,应用极为广泛。在非超载的情况下,电机的转速、停顿的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,
2、当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,进而到达准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,进而到达调速的目的。ULN2003怎样驱动5V步进电机第一步进需要的驱动电流很大,因此直接使用单片机往往管脚电流不够,加上一般3.3V的单片机也无法驱动5V的步进电机,因此需要电路转换。用的ULN2003芯片驱动步进电机。ULN2003就是起到了电放逐大作用,也使得驱动电压变成了5V。除了用ULN2003也可以自己用三极管搭建电路,原理与ULN2003
3、内部构造类似。也就是步进电机要运转时,怎样给脉冲,让电机连续运动。ps:假如给错脉冲可能左转几下又转回来。下列图就是小编电机的相序。下面是正转翻转的编码根据技术要求。如图用的单双八拍。unsignedcharF_RotaTIon8=0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09;/FANunsignedcharB_RotaTIon8=0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08;/ZHENG此函数两个参数,第一个参数是圈数。第二个参数是方向也就是选择正转和翻转voidmotorNCircleintn,boolposiTIonin
4、ti=0;intj=0;intk=0;forj=0;j(n;j+fori=0;i(64*8;i+fork=0;k(8;k+ifTRUE=posiTIonSetMotorF_Rotationk;elseSetMotorB_Rotationk;Delay20000;下面就是SetMotor函数,根据传的数据不同,控制的4个IOpin输出不同。voidSetMotorunsignedcharInputDataifInputData0x08GPIO_ResetBitsGPIOC,GPIO_Pin_6;elseGPIO_SetBitsGPIOC,GPIO_Pin_6;ifInputData0x04GPI
5、O_ResetBitsGPIOC,GPIO_Pin_7;elseGPIO_SetBitsGPIOC,GPIO_Pin_7;ifInputData0x02GPIO_ResetBitsGPIOC,GPIO_Pin_8;elseGPIO_SetBitsGPIOC,GPIO_Pin_8;ifInputData0x01GPIO_ResetBitsGPIOC,GPIO_Pin_9;elseGPIO_SetBitsGPIOC,GPIO_Pin_9;以28BYJ-48为例,根据技术资料,步距的角度为5.625-64而且带有减速齿轮是1:64因此转64乘64个脉冲才是1圈。因此一个脉冲转过5.625除64=0.08789度。所以有了下面的循环。forj=0;j(n;j+fori=0;i(64*8;i+/64*8fork=0;k(8;k+/4相单双8拍ifTRUE=positionSetMotorF_Rotationk;elseSetMotorB_Rotationk;Delay20000;/留意这个延时自己去调节。0
限制150内