欢迎来到天天文库
浏览记录
ID:21566570
大小:57.50 KB
页数:11页
时间:2018-10-22
《三相直流无刷电机驱动程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、WORD文档下载可编辑1.检测霍尔传感器的值可以判断出转子的位置,再使能相应的上下桥臂,则能驱动电机运动;若要让电机持续转动,则必须再次检测传感器值及使能相应的上下桥臂。这里采用的是将霍尔传感器输出的三根线相边的IO口配置成外部中断,并且为边沿触发,在中断函数中加入传感器检测与上下桥臂切换程序,如此电机就能持续运转了。2.上桥臂的控制采用IO口置高低电平来控制上桥臂的通断,下桥臂则使用单片机内部集成的三路PWM波来控制,通过控制PWM波的占空比,可以实现对电机的调速了。实际测得,占空比与电机的速度成正
2、比例关系,在PWM波频率为20KHz时,占空比增加1%,速度增加60rpm,并在占空比为53%时达到额定转速3000rpm(空载)。3.速度测量则采用如下公式:电机每转一圈,霍尔值改变6次x5个周期=30次,记录边沿触发的中断次数N/30=电机转过的圈数,设运转时间为t(s)则电机转速v=N/30/t*60rpm。即动转时间为2s时,霍尔值改变次数即为速度值,单位rpm。4.调速:给定速度,由电机驱动板自动由当前速度平滑过渡到给定速度。实际测试发现,速度变化量很大时,电机会有突然加速或减速时的冲击;因
3、此,调速应有一个缓冲的过程。即加速或减速应以小步进缓慢增加或减少占空比来让速度渐渐达到最终值。#include"stm32f10x.h"#include"driver_motor.h"#definePWM_PERIOD_T400#defineU_Up_OnGPIOB->BSRR=GPIO_Pin_13#defineU_Up_OffGPIOB->BRR=GPIO_Pin_13#defineU_Dn_OnGPIOA->BSRR=GPIO_Pin_8#defineU_Dn_OffGPIOA->BRR=GPI
4、O_Pin_8#defineV_Up_OnGPIOB->BSRR=GPIO_Pin_14#defineV_Up_OffGPIOB->BRR=GPIO_Pin_14#defineV_Dn_OnGPIOA->BSRR=GPIO_Pin_9#defineV_Dn_OffGPIOA->BRR=GPIO_Pin_9#defineW_Up_OnGPIOB->BSRR=GPIO_Pin_15#defineW_Up_OffGPIOB->BRR=GPIO_Pin_15#defineW_Dn_OnGPIOA->BSRR=
5、GPIO_Pin_10#defineW_Dn_OffGPIOA->BRR=GPIO_Pin_10#defineSU_HORGPIOA->IDR&GPIO_Pin_15#defineSV_HORGPIOA->IDR&GPIO_Pin_12#defineSW_HORGPIOA->IDR&GPIO_Pin_11//u8Motor_Dir=0;//u8Motor_EN=0;专业技术资料精心整理WORD文档下载可编辑//u8Hor_Value=7;//u16TIM2_Conter=0;u16Hall_Conte
6、r=0;MotorStructMotor={CLOCK,40,STOP};/********************************************************************************函数:voidIO_Init(void)*描述:IO*参数:*返回:*其它:*******************************************************************************/voidIO_Init(void)
7、{GPIO_InitTypeDefGPIO_InitStruct;EXTI_InitTypeDefEXTI_InitStructure;//GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);/*使能SWD禁用JTAG*//**********************LEDLight***********/GPIO_InitStruct.GPIO_Pin=GPIO_Pin_12;GPIO_InitStruct.GPIO_Mode=GPIO_Mo
8、de_Out_PP;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_2MHz;GPIO_Init(GPIOB,&GPIO_InitStruct);/***********************霍尔传感器中断**********/GPIO_InitStruct.GPIO_Pin=GPIO_Pin_11
9、GPIO_Pin_12
10、GPIO_Pin_15;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN_
此文档下载收益归作者所有