码迷,mamicode.com
首页 > 其他好文 > 详细

220V 调压采集

时间:2020-04-27 13:21:12      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:tar   ESS   图片   概述   star   free   ++   nta   白炽灯   

220V 调压采集

一、功能概述

  • 用于220V白炽灯调光
  • 采集输出电流电压并显示
  • 接入CAN总线,可用CAN控制

二、硬件原理

1、硬件参数

  • 主控芯片STM32F103C8T6
  • CAN芯片TJA1050
  • AC电流电压采集BL0937
  • 晶闸管BTA16
  • AC220V转DC5V PB5N-2025
  • DC5V转DC3.3V AMS1117
  • 隔离DC5V转DC5V B0505S
  • 整流桥DS207S
  • 光耦 MOC3020 CYTLP521 PC817

2、电路原理

技术图片

技术图片


晶闸管原理

电流电压采集芯片BL0937资料


3、软件原理

软件程序使用FreeRTOS,硬件中断(上升沿下降沿)接收220V过零检测信号。

过零检测中断处理

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
    switch(GPIO_Pin)
    {
        case GPIO_PIN_8:
            if(control_task_run)
            {
                if(DevInfo.LedSta == Adjust)
                {
                    if(DevInfo.AdjustMessage.Adjust == 0)
                    {
                        HAL_GPIO_WritePin(GPIOA, OUT_Pin, GPIO_PIN_SET);
                    }
                    else
                    {
                        if(PAin(8) == 0)
                        {
                            TIM3->ARR = DevInfo.AdjustMessage.Adjust * 100 + 2;
                            HAL_TIM_Base_Start_IT(&htim3);
                        }
                        else
                        {
                            HAL_GPIO_WritePin(GPIOA, OUT_Pin, GPIO_PIN_SET);
                        }
                    }
                }
            }
        break;
        default:
            break;
    }
}

因BL0937返回的是脉冲信号,所以开个定时器采集,部分程序如下:

void Tim2Callback(TIM_HandleTypeDef *htim)
{
    TIM2Ch3Cnt++;
    TIM2Ch4Cnt++;
}


void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{
    static uint32_t TIM2CH3CapturedValue[2] = {0};
    static uint32_t TIM2CH4CapturedValue[2] = {0};
    static uint8_t TIM2CH3Sta = 0;
    static uint8_t TIM2CH4Sta = 0;
    if(TIM2 == htim->Instance)
    {
        if(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_3)
        {
            if(TIM2CH3Sta == 0)
            {
                TIM2Ch3Cnt = 0;
                TIM2CH3CapturedValue[0] = HAL_TIM_ReadCapturedValue(&htim2,TIM_CHANNEL_3);
                TIM2CH3Sta++;
            }
            else
            {
                TIM2CH3CapturedValue[1] = HAL_TIM_ReadCapturedValue(&htim2,TIM_CHANNEL_3);
                TIM2CH3Sta = 0;
                CF_CNT = 0xFFFF * TIM2Ch3Cnt + TIM2CH3CapturedValue[1] - TIM2CH3CapturedValue[0];
            }
        }
        else if(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_4)
        {
            if(TIM2CH4Sta == 0)
            {
                TIM2Ch4Cnt = 0;
                TIM2CH4CapturedValue[0] = HAL_TIM_ReadCapturedValue(&htim2,TIM_CHANNEL_4);
                TIM2CH4Sta++;
            }
            else
            {
                TIM2CH4CapturedValue[1] = HAL_TIM_ReadCapturedValue(&htim2,TIM_CHANNEL_4);
                TIM2CH4Sta = 0;
                CF1_CNT = 0xFFFF * TIM2Ch4Cnt + TIM2CH4CapturedValue[1] - TIM2CH4CapturedValue[0];
            }
        }
    }  

}	

三、效果图

技术图片

220V 调压采集

标签:tar   ESS   图片   概述   star   free   ++   nta   白炽灯   

原文地址:https://www.cnblogs.com/c951/p/12785682.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!