基于晶闸管的单项桥式整流电路
单相桥式整流电路,使用外部中断触发方案分享
·
高压危险,建议使用隔离变压器,并在前端严格安装漏电保护器,在后端安装自耦调压器,如果完全没有经验不要尝试,如果完全没有经验不要尝试,如果完全没有经验不要尝试。不使用隔离变压器和漏电保护器有可能会造成触电危害。
电力电子技术都学过的单项桥式整流电路,大多数实验室内部使用的都是硬件触发电路,还要锯齿脉冲,麻烦至极。
又因为我的毕业设计里面涉及到晶闸管桥式整流和有源逆变,于是研究了一下。系统采用STM32F411CEU6,当然C8T6效果相同,他们都使用外部中断触发
首先先看一下cubemx的配置,由于交流电一个周期是0.02s,也就是20000us,所以我们需要微秒延时,但又又又,stm32hal库内部只有HAL_Delay,他是毫秒级延时,所以我们需要配置一个微秒延时。

时钟选择Internal Clock

如果使用f411ceu6的话,如图配置,如果使用f103c8t6的话,请在第一个Prescaler位置改为72-1,下面的Counter Period改为65535即可,这就是微秒延时。其他的情况随意,我是在程序里开了一个ADC用于检测直流电压。
延时的程序如图:
#define TIM_HANDLE &htim2
#define KEY0 HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_5)//
void delay_us(int nus)
{
__HAL_TIM_SET_COUNTER(TIM_HANDLE, 0); //把计数器的值设置为0
__HAL_TIM_ENABLE(TIM_HANDLE); //开启计数
while (__HAL_TIM_GET_COUNTER(TIM_HANDLE) < nus); //每计数一次,就是1us,直到计数器值等于我们需要的时间
__HAL_TIM_DISABLE(TIM_HANDLE); //关闭计数
}
给与角度和ADC检测的代码如图:
/* USER CODE BEGIN WHILE */
while (1)
{
HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1, 50);//等待转换完成,第二个参数表示超时时间,单位ms.
if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1), HAL_ADC_STATE_REG_EOC)){
AD_Value = (HAL_ADC_GetValue(&hadc1)*3300.0/4096);//读取ADC转换数据,数据为12位
}
if(bright<7)bright=7;
if(bright>160)bright=160;
opentime=cal_map(bright,0,180,0,10000);
/* USER CODE END WHILE */
当给与bright角度0-180时,他会自动将角度转化为0-10000us,传给延时变量
外部接线如图,火线和零线经过电阻分压,PC817光耦后端接成开漏输出,实现脉冲采集,并且配置外部中断

外部中断配置,同时配置上升沿和下降沿,因为我们要交替给4个晶闸管导通信号:

核心代码:
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin == GPIO_PIN_5)//有中断就触发B7 B6 B5 B4,对应1234
{
if(KEY0==0)
{
delay_us(opentime);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7,GPIO_PIN_SET); //13开
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5,GPIO_PIN_SET); //
delay_us(50);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7,GPIO_PIN_RESET); //13关
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5,GPIO_PIN_RESET); //
}
if(KEY0==1)
{
delay_us(opentime);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6,GPIO_PIN_SET); //24开
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4,GPIO_PIN_SET); //
delay_us(50);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6,GPIO_PIN_RESET); //24关
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4,GPIO_PIN_RESET); //
}
}
}
晶闸管接线参考
图:

附一张采样效果的图片:

纯电阻负载效果:

基于stm32的单相桥式整流电路
更多推荐



所有评论(0)