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

2016-1-6 11:18:06  13106 PWM 单片机
收藏 30 收藏 推荐 0 推荐
分享
本帖最后由 fejlkel 于 2016-1-6 14:21 编辑

一个三相无刷直流电机驱动,通过霍尔传感器检测转子位置,霍尔值改变的次数检定速度测量,单片机的脉冲宽度调节(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;
        }
   }
}




相关经验

HBIN90 2018-4-26 14:19:39
学习 学习 ,谢谢楼主分享
回复

举报

一沙鸥H 2018-4-26 15:45:40
感谢分享                                ,
回复

举报

zhangheng618 2018-5-4 12:35:10
PWM三相无刷直流电机
回复

举报

奔跑imo 2018-5-4 14:58:24
基于单片机的PWM三相无刷直流电机控制系统
http://bbs.elecfans.com/jishu_539042_1_1.html
(出处: 中国电子技术论坛)
回复

举报

jazz1 2018-5-4 19:37:42
谢谢分享,找了好久了
回复

举报

爱吃辣椒的青蛙 2018-5-5 17:01:19
OK,,,,,,,,,,,,,,
回复

举报

莫多思 2018-5-5 22:11:24
怎么下载呢,谢谢楼主,zszszszs
回复

举报

bda2222 2018-5-7 17:10:02
谢谢分享,学习共勉                     
回复

举报

jianglin0 2018-5-10 15:30:54
学习学习,谢谢楼主分享
回复

举报

cooliang 2018-5-11 14:08:09
谢谢分享,小白前来学习一下,不懂之处还望多多指教
回复

举报

威仪棣棣 2018-5-11 15:54:59
精心制作的,经验之谈,谢谢
回复

举报

jrc96 2018-5-12 13:00:19
谢谢分享,学习
回复

举报

kahn00 2018-5-15 07:12:08
学习学习,谢谢分享
回复

举报

mountain46 2018-5-16 00:12:01
在学习中,谢谢 了
回复

举报

rainy雨 2018-5-16 09:42:07
谢谢楼主的治疗
回复

举报

橘子有点甜 2018-5-16 15:52:06
最近在搞直流电机,谢谢楼主的分享
回复

举报

笑笑111 2018-5-19 17:45:17
学习学习,目前正在找这方面的资料,不错不错
回复

举报

banzhang 2018-5-20 23:37:04
感谢楼主分享   
回复

举报

猫山居士 2018-5-22 14:19:56
6666666666666666,学习交流,+1111111111111111
回复

举报

xieyang34 2018-5-28 14:43:45
好东西  笑啦了
回复

举报

评论

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

发经验
关闭

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

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

推荐专区

技术干货集中营

专家问答

用户帮助┃咨询与建议┃版主议事

工程师杂谈

项目|工程师创意

招聘|求职}工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

ARM技术论坛

Android论坛

Linux论坛

单片机/MCU论坛

MSP430技术论坛

FPGA|CPLD|ASIC论坛

STM32/STM8技术论坛

NXP MCU 技术论坛

PIC单片机论坛

DSP论坛

瑞萨单片机论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

无线充电技术

-

硬件设计论坛

PCB设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PADS技术论坛

Protel|AD|DXP论坛

Allegro论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

Orcad论坛

-

综合技术与应用

电机控制

智能电网

光电及显示

工程资源中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

-

无线通信论坛

无线通信技术专区

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Mixed Signal/SOC[数模混合芯片设计]

Analog/RF IC设计

设计与制造封装测试

-

厂商专区

TI论坛

TI Deyisupport社区

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

电子展览展会专区

芯片求购|供应发布区