原创 飞思卡尔HCS12自带电机驱动的应用

2009-9-4 23:49 3447 4 5 分类: MCU/ 嵌入式

      飞思卡尔单片机有三种驱动不经电机的模式:双倍H桥(Dual Full H-Bridge)、全桥(Full H-Bridge)、半桥(Half H-Bridge)。对于需要旋转360度的步进电机需要用双倍H桥模式。


      双倍H桥模式需要用四个引脚来驱动一个电机。步进电机的工作原理是一个脉冲电流可以驱动一个角度(假如为60度),这样就可以将电流值与机械运动联系起来。步进电机有一种叫微步驱动的方式,就是将驱动的角度微步划分,这样就需要将一个脉冲电流划分成几个点的电流值,从而来模拟正弦波形,使每次提供的电流值驱动一个微步,而不是一个全部。例如为了达到驱动15度的角度,就需要将60度划分成四段。


     利用单片机微步驱动步进电机的原理是:通过不同占空比的PWM波可以提供不同的电压值,从而提供不同的电流值,为了达到模拟正弦曲线的目的,需要PWM波的载波频率较高,一般要30K以上,这个值根据不同的电机而不同。在飞思卡尔单片机中MCPER[1:0]和MCPER共同决定了这个载波频率。


      步进电机有逆时针和顺时针旋转的方向问题,这个是通过交换两个引脚那个引脚提供PWM波来实现的。


 


 

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户188034 2009-9-13 23:11

不知道实际开发如何
相关推荐阅读
用户1431854 2009-08-24 14:56
飞思卡尔单片机进入stop和wait模式
飞思卡尔单片机从C语言中进入STOP和WAIT模式的方法:asm STOP;     asm WAI;或者asm("STOP");asm(“WAI”);注意WAIT模式不是直接写WAIT,而应该是WA...
用户1431854 2009-08-24 14:55
C语言中(int *)p的用法
先提供一段程序代码(希望读取某特定地址的值)unsigned int adddress;      //定义一个变量作为地址unsigned char value;     //地址中的值unsign...
用户1431854 2009-08-24 14:55
C语言((int *)p)++
问:我有一个char *型指针碰巧指向一些int型变量,我想跳过它们。为什么((int *)p)++;这样的代码不行?答:在C语言中,类型转换操作符并不意味着"把这些二进制位看作另一种类型,并作相应的...
我要评论
1
4
关闭 站长推荐上一条 /3 下一条