STM32采集电流互感器(电流互感器模块)数据

这篇具有很好参考价值的文章主要介绍了STM32采集电流互感器(电流互感器模块)数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 电流互感器简介
在发电、变电、输电、配电和用电的线路中电流大小悬殊,从几安到几万安都有。为便于测量、保护和控制需要转换为比较统一的电流,另外线路上的电压一般都比较高如直接测量是非常危险的。电流互感器就起到电流变换和电气隔离作用。

2. 电流互感器模块
电流互感器模块可以将交流电信号转换为电压信号,此时就能用stm32的ADC采集模块输出的AD信号。

(1)模块介绍
模块搭载ZMCT103c系列小型高精度电流互感器以及高精度运放电路,对信号做精确采样和适当补偿等功能。方便对5A以内的交流电进行信号采集。对应输出模拟交流信号可以调节,可根据电位器(调节放大比例,放大范围0-100倍)来调节所需输出电压,但是输出端(OUT)的最大电压不会超出1/2vCCo
stm32电流采样,stm32,单片机
(2)引脚说明
stm32电流采样,stm32,单片机
3. STM32采集电流互感器模块数据

此处需要注意的问题是在用STM32采集时如果无交流电通过线圈,STM32的AD接到OUT引脚相当于悬空状态,此时会AD会返回一个STM32悬空的AD值,所以在实际使用时需要在OUT和GND之间加一个下拉电阻:
stm32电流采样,stm32,单片机

ADC配置代码如下:

 #include "adc.h"
 #include "delay.h"
															   
void  Adc_Init(void)
{ 	
	ADC_InitTypeDef ADC_InitStructure; 
	GPIO_InitTypeDef GPIO_InitStructure;

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_ADC1, ENABLE );	 
	RCC_ADCCLKConfig(RCC_PCLK2_Div6);  
	
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;		
	GPIO_Init(GPIOA, &GPIO_InitStructure);
                      
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;		
	GPIO_Init(GPIOA, &GPIO_InitStructure);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;	
	GPIO_Init(GPIOA, &GPIO_InitStructure);	

	ADC_DeInit(ADC1); 

	ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;	
	ADC_InitStructure.ADC_ScanConvMode = DISABLE;	
	ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;	
	ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
	ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;	
	ADC_InitStructure.ADC_NbrOfChannel = 1;	
	ADC_Init(ADC1, &ADC_InitStructure);	 
	ADC_Cmd(ADC1, ENABLE);	
	
	ADC_ResetCalibration(ADC1);	
	 
	while(ADC_GetResetCalibrationStatus(ADC1));	
	
	ADC_StartCalibration(ADC1);	 
 
	while(ADC_GetCalibrationStatus(ADC1));	 	

}				  

u16 Get_Adc(u8 ch)   
{
  
	ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 );				    
  
	ADC_SoftwareStartConvCmd(ADC1, ENABLE);		
	 
	while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));

	return ADC_GetConversionValue(ADC1);	
}

u16 Get_Adc_Average(u8 ch,u8 times)
{
	u32 temp_val=0;
	u8 t;
	for(t=0;t<times;t++)
	{
		temp_val+=Get_Adc(ch);
		delay_ms(5);
	}
	return temp_val/times;
} 	 

主函数采集通过串口发送数据到上位机:

#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"	  
#include "adc.h"
#include "common.h"
#include "usart2.h"
#include "usart3.h"
#include <string.h>
 
u8 mp3_set1[7]={0xAA,0x07,0x02,0x00,0x06,0xB9};
u8 mp3_set2[7]={0xAA,0x07,0x02,0x00,0x05,0xB8};
 
 int main(void)
 {	 
    u16 adcx;
	u8 re = 0;
	 
	delay_init();	      
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
	Adc_Init();	//ADC初始化	  		
	usart2_init(9600);//串口2初始化
	delay_ms(200);
 
	while(1)
	{
			adcx=Get_Adc_Average(ADC_Channel_0,10);//ADC通道0采集电流互感器的输出值
			u2_printf("%d\r\n",adcx);//通过串口发送出去			
	}
}

实物图如下,用电风扇线作为测试,串口观察输出:
stm32电流采样,stm32,单片机
在风扇断电状态下输出为0:
stm32电流采样,stm32,单片机
在电风扇开启状态下便可采集到电流互感器模块的输出:
stm32电流采样,stm32,单片机

代码工程链接:https://pan.baidu.com/s/1Pdcm7M7UqIl-YyeDvcFCSA
提取码:nigw文章来源地址https://www.toymoban.com/news/detail-664577.html

到了这里,关于STM32采集电流互感器(电流互感器模块)数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • STM32—ADC和DMA的应用之电流检测(第二部分:电流检测电路与数据处理)

    STM32—ADC和DMA的应用之电流检测(第二部分:电流检测电路与数据处理)

    前一部分介绍了如何配置ADC和DMA,这一部分介绍在硬件部分如何实现电流检测以及检测到电流后的数据处理。 在半导体上外加与电流方向垂直的磁场,会使得半导体中的电子与空穴受到不同方向的洛伦兹力而在不同方向上聚集,在聚集起来的电子与空穴之间会产生电场,电场

    2024年01月20日
    浏览(9)
  • 【GD32F427开发板试用】INA226完成电流电压采集

    【GD32F427开发板试用】INA226完成电流电压采集

    本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动,更多开发板试用活动请关注极术社区网站。作者: จุ๊บ冰语 本次有幸参与并通过了极术社区组织的【GD32F427开发板试用】活动,让我对国产兆易创新的GD32处理器有了更深刻的认识。 开发板到手后,先从邮

    2024年02月02日
    浏览(12)
  • STM32模拟IIC与IIC四种实现数字光强采集模块GY30(标准库与HAL库)

    STM32模拟IIC与IIC四种实现数字光强采集模块GY30(标准库与HAL库)

    目录 代码实现是的IIC通信,数据采集后在串口显示,方便大家实现二次开发 原件选择 GY-30 数字光强度介绍 BH1750芯片参数 引脚说明  BH1750指令集 接线表设计 通过四种方式实现GY-30数据采集 1.标准库模拟IIC实现GY-30采集并串口1显示  2.标准库IIC实现GY-30采集并串口1显示 3.HAL库

    2023年04月26日
    浏览(16)
  • STM32_HAL库—ADC采集数据

    STM32_HAL库—ADC采集数据

    目录 一、简介 二、实例 1. (单通道、阻塞式)配置及实现方式 2. (单通道、中断式)配置及实现方式 3. (多通道、阻塞式)配置及实现方式 4. (多通道、DMA)配置及实现方式        STM32 的ADC精度为 12 位,且每个 ADC 最多有 16 个外部通道。各通道的A/D转换可以单次、连续、扫描或

    2024年02月10日
    浏览(14)
  • STM32-ADC多通道数据采集:理论与实践

    STM32-ADC多通道数据采集:理论与实践

    本文详细介绍了STM32-ADC多通道数据采集的理论基础和实践应用。文章首先解释了ADC的基本概念和特性,然后详细阐述了ADC采样的过程和注意事项。接着,文章深入讲解了多通道采集模式的轮询和DMA两种方法,并给出了具体的代码实现。

    2024年02月10日
    浏览(15)
  • 基于STM32电压检测和电流检测

    基于STM32电压检测和电流检测

    CPU: STM32F103C8 屏幕: 0.96寸OLED屏幕(SPI接口) 电压测量模块: INA226(IIC接口) 点流测量模块: ACS712(ADC采集) 1.可测量直流电压0~36V,适用于低电压电子电路中。 2.可测量直流电0~5A范围内,目前采用的ACS712测量量程为5A,该模块有多个量程,可测量到20A 3.实时功率监测 4.电池电量监测

    2024年02月02日
    浏览(7)
  • STM32+DHT11采集温湿度传感器数据

    STM32+DHT11采集温湿度传感器数据

            DHT11 是一款湿温度一体化的数字传感器。该传感器包括一个电阻式测湿元件和一个 NTC 测温元件,并与一个高性能 8 位单片机相连接。通过单片机等微处理器简单的电路连接就能够 实时的采集本地湿度和温度。 DHT11 与单片机之间能采用简单的单总线进行通信,仅

    2024年02月07日
    浏览(26)
  • STM32-微项目10-ADC多通道采集+DMA数据转移

    STM32-微项目10-ADC多通道采集+DMA数据转移

    一、微项目实现目标: 由于ADC多通道采集在规则组中只有一个寄存器CR,实际上在多通道采集时刻,需要把每一个同都的数据及时传出,否则上一个通道的数据会被当前通道的数据给覆盖掉。 二、微项目硬件配置需求:  stm32F103C8T6核心板一块 0.96寸OLED显示,用于显示计数 三

    2024年02月16日
    浏览(16)
  • K_A12_004 基于STM32等单片机采集人体红外感应(HC-SR501)模块串口与OLED0.96双显示

    K_A12_004 基于STM32等单片机采集人体红外感应(HC-SR501)模块串口与OLED0.96双显示

    单片机型号 测试条件 模块名称 代码功能 STC89C52RC 晶振11.0592M HC-SR501模块 STC89C52RC采集HC-SR501模块参数 串口与OLED0.96双显示 STM32F103C8T6 晶振8M/系统时钟72M HC-SR501模块 STM32F103C8T6采集HC-SR501模块参数 串口与OLED0.96双显示 其他资料目录 直戳跳转 HC-SR501模块 引脚说明 VCC 正极 3.3-5V供电

    2024年01月19日
    浏览(24)
  • 基于STM32与FPGA的数据采集系统的设计与实现

    数据采集系统在现代工程中起着至关重要的作用,用于实时获取和处理各种传感器或外部设备的数据。在本文中,我们将探讨如何基于STM32微控制器和FPGA(现场可编程门阵列)实现一个高效的数据采集系统。我们将详细介绍系统设计的关键步骤,并提供相应的源代码示例。

    2024年02月06日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包