发 帖  
原厂入驻New

[经验] 基于单片机的PWM三相无刷直流电机控制系统

2016-1-6 11:18:06  25863 PWM 单片机
分享
38
推荐课程:
张飞软硬开源:基于STM32的BLDC直流无刷电机驱动器(视频+硬件)  
http://url.elecfans.com/u/73ad899cfd      


一个三相无刷直流电机驱动,通过霍尔传感器检测转子位置,霍尔值改变的次数检定速度测量单片机的脉冲宽度调节(PWM)来调节速度来达到控制三相无刷直流电机的目的。

1.检测霍尔传感器的值可以判断出转子的位置,再使能相应的上下桥臂,则能驱动电机运动;若要让电机持续转动,则必须再次检测传感器值及使能相应的上下桥臂。这里采用的是将霍尔传感器输出的三根线相边的IO口配置成外部中断,并且为边沿触发,在中断函数中加入传感器检测与上下桥臂切换程序,如此电机就能持续运转了。


2.上桥臂的控制采用IO口置高低电平来控制上桥臂的通断,下桥臂则使用单片机内部集成的三路PWM波来控制,通过控制PWM波的占空比,可以实现对电机的调速了。实际测得,占空比与电机的速度成正比例关系,在PWM波频率为20KHz时,占空比增加1%,速度增加60rpm,并在占空比为53%时达到额定转速3000rpm(空载)。
3.速度测量则采用如下公式:电机每转一圈,霍尔值改变6次x5个周期=30次,记录边沿触发的中断次数N/30=电机转 过的圈数,设运转时间为t(s)则电机转速v=N/30/t*60 rpm。即动转时间为2s时,霍尔值改变次数即为速度值,单位rpm。

4.调速:给定速度,由电机驱动板自动由当前速度平滑过渡到给定速度。实际测试发现,速度变化量很大时,电机会有突然加速或减速时的冲击;因此,调速应有一个缓冲的过程。即加速或减速应以小步进缓慢增加或减少占空比来让速度渐渐达到最终值。



控制代码:
游客,如果您要查看本帖隐藏内容请回复

函数:void EXti15_10_IRQHandler(u8 dir,u8 hall)
描述:霍尔传感器中断
参数:
返回:
*****************************************************************************************/
void EXTI15_10_IRQHandler(void)
{
    Hall_Conter++;
    IF ((EXTI_GetITStatus(EXTI_Line11) != RESET)||(EXTI_GetITStatus(EXTI_Line12) != RESET)||(EXTI_GetITStatus(EXTI_Line15) != RESET))
    {

        if(Motor.State!=STOP)
        PWM_T_Int(Motor.Dir,Motor.Speed);
    }        
    EXTI_ClearITPendingBit(EXTI_Line11); //清除标志
    EXTI_ClearITPendingBit(EXTI_Line12); //清除标志
    EXTI_ClearITPendingBit(EXTI_Line15); //清除标志
}
/*****************************************************************************************
函数:void Test_Motor(u8 dir,u8 hall)
描述:电机控制
参数:
返回:
*****************************************************************************************/
void Test_Motor(void)
{
    while(1)
   {
        switch(Motor.State)
        {
            case STOP :
                Motor_Stop();
                break;
            case RUN :
                Motor_Start();
                Motor.State=FREE;
                break;
            default :
                break;
        }
   }
}




相关经验

niuleru 2016-1-6 21:25:44
谢谢分享,学习共勉
回复

举报

32icnhsp 2016-1-6 23:46:03
看看 谢谢分享 找了这个好久了,是不是有什么模版啊?
回复

举报

剪刀脚 2016-1-7 08:54:58
感谢楼主分享
回复

举报

xkq306 2016-3-2 08:55:53
学习                                                     
回复

举报

24不可说 2016-3-2 08:59:45
厉害,学习一下啊
回复

举报

安妮与提伯斯 2016-3-2 20:41:18
学习学习 共勉共勉~~~~~
回复

举报

chjchj816 2016-3-4 21:33:47
我来看看,这个写得怎么样
回复

举报

zhnala 2016-3-7 00:02:58
看看不错好东西不错好东西
回复

举报

scmscm 2016-3-8 10:04:04
厉害!!!终于找到了!!!!
回复

举报

flyinrain1999 2016-3-9 20:10:47
这个可以看看.
回复

举报

zhangqihu87 2016-3-13 11:23:16
看看 怎么样 大啊打底啊
回复

举报

lhlbest 2016-3-14 09:04:49
不理解三相控制PWM交替输出
回复

举报

joeshu 2016-3-14 15:16:12
回复才能看,那我就只能回复啊回复……
回复

举报

秋天枫叶林 2016-3-15 16:41:54
好东西,需要学习!!!!!!!!!!!!!!!!
回复

举报

e-xp 2016-3-17 09:52:18
参考这里学习一下
回复

举报

晨凉 2016-3-17 09:54:23
正好是所需,找了一阵子。谢谢分享
回复

举报

hehonghua 2016-3-17 15:17:38
谢谢楼主分享!
回复

举报

xukai198919 2016-3-18 21:53:44
看看,,,,,,,,,,
回复

举报

wusongjushi 2016-5-10 16:49:59
学习了 ,先看看 谢谢楼主
回复

举报

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发经验
关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表