0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

分享瑞萨RA MCU创意氛围赛的作品—高压电网电流监测

瑞萨MCU小百科 来源:瑞萨嵌入式小百科 2024-04-19 14:20 次阅读

今日分享瑞萨RA MCU创意氛围赛的作品——高压电网电流监测。本项目基于启明6M5开发板用于监测高压三相电流数据,并对故障进行判断的设备,使用了串口、硬件I2CADCOLED等硬件外设,使用瑞萨的FSP3.5版本。

启明6M5开发板

开发板硬件资源如图所示:

d05b5896-fe0f-11ee-a297-92fbcf53809c.jpgd081b40a-fe0f-11ee-a297-92fbcf53809c.jpg

项目实现

三路ADC获取三相瞬时正弦波电流信息

正弦波转化为三相电流有效值

判断三相电是否发生故障

本地OLED显示,并上传云平台

软件设计

本人使用J-Link的SWD接口用于RA MCU的调试和程序下载,使用keil较为方便使用,需要如下配置:

P300/TCK/SWCLK可通过跳线帽可接到P201/MD引脚。用于控制MD引脚电平,使MCU上电时进入不同的启动模式

P112/UART2_TXD和P113/UART2_RXD两个引脚可配置为串口功能

  /* TODO: add your own code here */
  Debug_UART2_Init(); // SCI4 UART 调试串口初始化


  ESP8266_UART9_Init(); // ESP8266 (SCI9 UART) 串口初始化
  
  printf("欢迎使用野火启明6M5开发板

");

硬件I2C的OLED

使用EBF Module 接口的P505,P506配置硬件I2C,驱动OLED屏幕

d0dba852-fe0f-11ee-a297-92fbcf53809c.pngd0f31fd2-fe0f-11ee-a297-92fbcf53809c.png

使用相关驱动初始化后,OLED打印信息。

 OLED_ShowString(0, 16, (const uint8_t*)"AIrms", 16, 1);
        OLED_ShowString(43, 16,(const uint8_t*)"BIrms", 16, 1);
        OLED_ShowString(87, 16,(const uint8_t*)"CIrms", 16, 1);
        
        OLED_ShowString(0, 32, AIrms_str, 16,1);        
        OLED_ShowString(43, 32, BIrms_str, 16,1);    
        OLED_ShowString(87, 32, CIrms_str, 16,1);    
        OLED_ShowString(0, 0, (const uint8_t*)"state:", 16, 1);
        OLED_ShowNum(87, 0, state,1,16, 1);
  OLED_Refresh_Gram();

数据采集

使用开口式电流互感器,可选一次侧与二次侧的变比100:1,200:1,500:1,将开口式电流互感器二次侧接入采样电阻,可转化为电压值进行ADC采样。

ADC配置

d144dcfa-fe0f-11ee-a297-92fbcf53809c.pngd16d2ce6-fe0f-11ee-a297-92fbcf53809c.png

配置ADC扫描参数,赋能ADC通道。在此函数中设置通道特定设置。

 /* Enable scan triggering from ELC events. */
    (void) R_ADC_ScanStart(&g_adc0_ctrl);

回调函数adc_callback ()

void adc_callback(adc_callback_args_t * p_args)
{
  FSP_PARAMETER_NOT_USED(p_args);
  scan_complete_flag = true;
}

读取ADC值

 err =R_ADC_Read(&g_adc0_ctrl, ADC_CHANNEL_0, &adc_data1);
    assert(FSP_SUCCESS == err);


    a1=(double)(adc_data1/4095.0)*3.3;

读取三通道ADC值

//ADC转换完成标志位
volatile bool scan_complete_flag = false;


void adc_callback(adc_callback_args_t * p_args)
{
  FSP_PARAMETER_NOT_USED(p_args);
  scan_complete_flag = true;
}


void ADC_Init(void)
{
  fsp_err_t err;
  err = R_ADC_Open(&g_adc0_ctrl, &g_adc0_cfg);
  err = R_ADC_ScanCfg(&g_adc0_ctrl, &g_adc0_channel_cfg);
  assert(FSP_SUCCESS == err);
}


/* 进行ADC采集,读取ADC数据并转换结果 */
void Read_ADC_Voltage_Value(double *adcdata)
{
  
            uint16_t adc[3];


  (void) R_ADC_ScanStart(&g_adc0_ctrl);
  while (!scan_complete_flag) //等待转换完成标志
  {
    ;
  }
  scan_complete_flag = false; //重新清除标志位
        
  /* 读取通道0数据 */
        R_ADC_Read(&g_adc0_ctrl, ADC_CHANNEL_1, &adc[0]);
  /* ADC原始数据转换为电压值(ADC参考电压为3.3V) */
  adcdata[0] = (double)(adc[0]*3.3/4095);
        
          /* 读取通道0数据 */
        R_ADC_Read(&g_adc0_ctrl, ADC_CHANNEL_2, &adc[1]);
  /* ADC原始数据转换为电压值(ADC参考电压为3.3V) */
  adcdata[1] = (double)(adc[1]*3.3/4095);
        
          /* 读取通道0数据 */
        R_ADC_Read(&g_adc0_ctrl, ADC_CHANNEL_3, &adc[2]);
  /* ADC原始数据转换为电压值(ADC参考电压为3.3V) */
  adcdata[2] = (double)(adc[2]*3.3/4095);
        
}

计算出电流有效值

/******************************************************
函数名称:    getrms
描述:        遍历查找电流样本点,得到极致点序列,计算出电流有效值
输入:        iphase:电流样本数组
                SAMPLE_N:电流样本数据点数
                
输出:    
返回:        电流有效值
******************************************************/
float getrms(float *phase,int SAMPLE_N)
{
    int changeSignCount=0;
    int changeSignIndex[changeSignCount];
// 遍历查找电流样本点
for (int i = 1; i < SAMPLE_N; i++) 
{      


        //极大值,
if((phase[i-1] <= phase[i] && phase[i] >=phase[i+1]) ) 
    {
      changeSignIndex[changeSignCount] = i;
      changeSignCount++; 
    }
 }
// 创建新数组,放置查找结果
float changeSignSeq[changeSignCount];
     float max = 0;
    float min = 0;
for(int i = 0; i < changeSignCount; i++) 
                {
        changeSignSeq[i] = phase[changeSignIndex[i]];
                        if (maxchangeSignSeq[i]) {
            min=changeSignSeq[i];
            }
            
  }
        //得出电流有效值
        if(fabs(max)>fabs(min)) {
        return (float)(fabs(max) * 0.707);
        }
        else {
        return (float)(fabs(min) * 0.707);
        }
}

电流故障类型判断

/******************************************************
函数名称:    changesign
描述:        电流故障类型判断
输入:        Aphase,Bphase,Cphase三相电有效值
                    maxphase理论最大电流
                                    
输出:    
返回:        错误类型
******************************************************/


int GetCableFaulttype(float Aphase,float Bphase,float Cphase,float maxphase)
{
    int Fault;
        
    if(Aphase100||Bphase>100||Cphase>100)
    {
        Fault = 3;//隔板击穿
        
    }
    //排序得到最大最小值
    float max=Aphase;
    float min=Bphase;
    if(max<=Bphase)
                {
                        max=Bphase;
                        min=Aphase;
                }
        if(max<=Cphase)
                {
                        max=Cphase;
                }                
        if(min>=Cphase)
        {
            min=Cphase;
        }    
        
    if(max>6*min)
    {
        Fault = 0;////接地错误
        
    }    
    if(max>6+min)
    {
        Fault = 2;//外护套破损
        
    }    
    
    
}
    return Fault;
}
GROUND_ERROR = 0,//接地错误 WATER_IN_BOX = 1,//接地箱进水 OUTER_SHEATH_DAMAGE = 2,//护套破损

PARTITION_BREAKDOWN = 3,//隔板击穿

PROTECTOR_BREAKDOWN = 4,//保护器击穿 GROUND_GRID_LOOSE = 5,//接地网脱落 GROUND_OK = 6//正常

一般使用4G模块,也可使用本开发板上板载的ESP8266

实现效果

没有实际接入高压电,ADC通道1,直接接入函数发生器生成的50HZ正弦波3.3V波峰,有效值为3.3*0.7.7=2.3331V,故障状态6表示正常。

d19109fe-fe0f-11ee-a297-92fbcf53809c.png

d1baa3fe-fe0f-11ee-a297-92fbcf53809c.png



审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电流互感器
    +关注

    关注

    23

    文章

    757

    浏览量

    31292
  • I2C接口
    +关注

    关注

    1

    文章

    125

    浏览量

    25190
  • 电网电流
    +关注

    关注

    0

    文章

    3

    浏览量

    6194
  • ADC采样
    +关注

    关注

    0

    文章

    134

    浏览量

    12840
  • OLED显示
    +关注

    关注

    1

    文章

    55

    浏览量

    17001

原文标题:【瑞萨RA MCU创意氛围赛】项目34——高压电网电流监测

文章出处:【微信号:瑞萨MCU小百科,微信公众号:瑞萨MCU小百科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于RA6M5的智能烟雾感应吸除系统设计

    今日分享野火创意氛围选手的作品——基于RA6M
    的头像 发表于 11-06 12:21 1154次阅读
    基于<b class='flag-5'>RA</b>6M5的智能烟雾感应吸除系统设计

    【名单公布】RA4M2(Cortex-M33内核MCU)物联网网关设计挑战初审通过名单

    初审名单公布开发板及模块申请申请链接 :RA4M2(Cortex-M33内核MCU)物联网网关设计挑战模块申请表单*注:请已通过初审的
    发表于 01-06 17:04

    【精品合集】RA4M2物联网网关设计挑战作品合集

    大赛详情:RA4M2(Cortex-M33内核MCU)物联网网关设计挑战【资料合集】
    发表于 03-07 14:33

    RA MCU创意氛围】以RA2E的车载VFD屏幕时钟

    引言 很高兴能有机会参加【RA MCU创意氛围
    发表于 05-21 17:02

    RA MCU创意氛围——作品制作记录

    ------------------------------------ 2023年5月6日 小记: 之前在武汉芯源的群里潜水的时候看到了野火发布的RA MCU
    发表于 05-26 09:42

    RA MCU创意氛围】3. 硬件I2C驱动OLED显示汉字

    RA MCU创意氛围】1. PWM驱动LED
    发表于 05-26 14:06

    高压电网自控保安电路

    高压电网自控保安电路
    发表于 02-10 09:01 748次阅读
    <b class='flag-5'>高压电网</b>自控保安电路

    高压电的原理和用途 围墙高压电网原理

    围墙高压电网是一种常用于园林、农业、工业等领域的防盗装置,其原理是通过高电压电流形成电击效应,起到防止外人非法侵入的效果。
    发表于 04-11 16:13 1.2w次阅读

    什么叫特高压电网

    高压电网是指额定电压达到1100千伏及以上的电网。特高压电网是在超高压电网的基础上的进一步发展,在电力传输和配电上具有更大的送电容量、更远的送电距离、更少的能量损耗、更小的占地面积等
    发表于 04-23 14:30 6227次阅读

    开发活动 | 野火&amp;电子发烧友【RA MCU创意氛围第一期已开启

    野火电子与电子发烧友联合举办RA MCU创意氛围
    的头像 发表于 05-29 12:15 615次阅读
    开发活动 | 野火&amp;电子发烧友【<b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b> <b class='flag-5'>MCU</b>】<b class='flag-5'>创意</b><b class='flag-5'>氛围</b><b class='flag-5'>赛</b>第一期已开启

    直播预告 | 6月8日 RA6T2电机板新品发布会&amp;RA MCU创意氛围说明

    本文导读 1、 野火电子将在6月8号19:30在B站进行有奖直播活动, 向大家介绍关于野火RA6T2电机开发板以及 RA MCU
    的头像 发表于 06-08 17:00 839次阅读
    直播预告 | 6月8日 <b class='flag-5'>RA</b>6T2电机板新品发布会&amp;<b class='flag-5'>RA</b> <b class='flag-5'>MCU</b><b class='flag-5'>创意</b><b class='flag-5'>氛围</b><b class='flag-5'>赛</b>说明

    RA MCU创意氛围作品赏析】项目1——Qt遥控小车

    RA MCU创意氛围
    的头像 发表于 08-14 12:05 1145次阅读

    基于RA MCU的简易智能养花系统设计

    爱在家里养些植物的小伙伴,最苦恼的的莫过于有时候工作繁忙或者要出差,不能及时给花浇水导致植物枯萎。今天跟大家分享一下参加野火【RA MCU 创意
    的头像 发表于 08-28 14:18 1099次阅读
    基于<b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b> <b class='flag-5'>MCU</b>的简易智能养花系统设计

    基于R7FA2E1A72DFL MCU制作双机位切换的USB HUB

    今日跟大家分享下RA MCU 创意氛围参赛选手
    的头像 发表于 09-11 12:45 1461次阅读
    基于<b class='flag-5'>瑞</b><b class='flag-5'>萨</b>R7FA2E1A72DFL <b class='flag-5'>MCU</b>制作双机位切换的USB HUB

    基于单片机的环境温湿度监测装置设计

    今日跟大家分享下RA创意氛围选手的项目——基于
    的头像 发表于 10-16 16:28 921次阅读
    基于<b class='flag-5'>瑞</b><b class='flag-5'>萨</b>单片机的环境温湿度<b class='flag-5'>监测</b>装置设计