基于STM32F103单片机的直流电压电流检测仪原理图PCB设计

news/2024/11/8 18:07:42/

系统功能设计

本系统由STM32F103C8T6单片机核心板、ACS712电流检测模块、电压采集、LCD1602液晶及电源组成。
1、通过单片机检测电压(15V内)和直流电流(5A内),并在1602液晶上显示。
2、电压和电流的显示最小单位0.1V,0.1A。功率=电压*电流。
3、通过大功率电阻作为假负载产生电流以备检测。
4、如果检测外部电压或者电流大小,一定要将功率负载电阻去掉。

在这里插入图片描述

STM32F103C8T6单片机核心板:
USB供电接口,复位按键 开关按键
在这里插入图片描述
合理优秀的布局布线:
在这里插入图片描述
主程序

#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "lcd.h"
#include "adc.h"
#include <stdio.h>
#include "timer.h"
#include "lcd1602.h"unsigned char relayFlag=1;//中间变量char dis0[16];//显示
char dis1[16];float voltV,currA;//定义电压电流功率变量
float power;unsigned char count =0;//采集计数 用于封信显示float sumVolt,midV; //用于滤波 中间变量
float sumAcur,midA;		//用于滤波 中间变量int main(void){ u16 adcx;	 delay_init();	    	 //延时函数初始化	  uart_init(115200);	 	//串口初始化为115200TIM3_Int_Init(499,7199);//50ms  	 LED_Init();		  		//初始化与LED连接的硬件接口LED0=0;Adc_Init();		  		//ADC初始化	    Lcd_GPIO_init();  //初始化io lcdLcd_Init();		//初始化液晶 delay_ms(20);sprintf(dis0,"v:%3.1fV a:%3.1fA   ",voltV,currA);//打印电压Lcd_Puts(0,0,(u8 *)dis0);//显示电压power = voltV*currA;sprintf(dis1,"Power:%3.1fW",power);//打印功率Lcd_Puts(0,1,(u8 *)dis1);//显示功率while(1){adcx=Get_Adc_Average(ADC_Channel_0,10);// PA0读取ad值midA=(float)adcx*(3.3/4096)*2;//转换if(midA>2.65){midA = (midA - 2.65)/0.185;	}	//计算电流		else{midA = 0;}		adcx=Get_Adc_Average(ADC_Channel_1,10);	// PA1midV =		(float)adcx*(3.3/4096)*5;sumAcur = sumAcur + midA;	//多次测量求平均sumVolt = sumVolt + midV;	//多次测量求平均count++;//采集次数if(count >= 5){	  count = 0;currA = 	sumAcur/5;  //Q求平均if(currA < 0.1) currA= 0;//滤波微小波动sumAcur = 0;voltV = sumVolt/5;//求平均值if(voltV<0.1) voltV=0;sumVolt =0;sprintf(dis0,"v:%3.1fV a:%3.1fA   ",voltV,currA);//打印电压Lcd_Puts(0,0,(u8 *)dis0);//显示电压power = voltV*currA;sprintf(dis1,"Power:%3.1fW",power);//打印功率Lcd_Puts(0,1,(u8 *)dis1);//显示功率				}		delay_ms(10);	}											    
}	

原文:http://www.jh-tec.cn/archives/8275


http://www.ppmy.cn/news/484333.html

相关文章

交流电压电流采样基础知识

家庭、商用、工业上被广泛应用的大多都是交流电。之所以叫做交流电是因为其大小和方向都是随时间不断交替变换的电流&#xff0c;简称交流。在交变电动势作用下&#xff0c;电路中的电流、电压都是交变的&#xff0c;这样的电路叫做交流电路。 正弦交流电这样循环变化一周所需…

基于BLINKER和ESP8266的无线USB电压电流表

一、方案概述 目前市场上的USB电压电流表很多&#xff0c;但是数据的测量精度和采样频率都是固定的&#xff0c;本着DIY的精神设计了基于BLINKER的无线USB电压电流表&#xff0c;实现电流的精度和采样频率都可调节。 总体方案如下&#xff0c;用ESP8266作为主控芯片&#xff0c…

OpenCV(图像处理)-基于Python-轮廓查找

轮廓查找 1. 轮廓2.轮廓查找2.1 findContours()2.2 drawContours()2.3 contourArea()和arcLength()2.4 多边形逼近与凸包approxPolyDP()convexHull()2.5 外接矩形minAreaRect()boundingRect() 1. 轮廓 一个图像中具有相同颜色或强度&#xff08;灰度图&#xff09;的连续点所组…

电压电流的驱动能力分析以及计算方法

&#xff08;文章为笔者学习过程中看到的&#xff0c;感觉帮助较大&#xff0c;分享出来希望能帮助到大家&#xff09; 在电子电路中为什么有的地方电压会被拉低2&#xff0c;驱动能力是什么意思&#xff0c;如何提高驱动能力&#xff1f; 在很多资料上看到说驱动能力不够是因…

拆解USB电压电流表,并分析测量原理(转数码之家)测电流需串一小电阻到电路。测电压不用按照文中,可以直接让电压正进AD的输入端口测试

收拾物品的时候&#xff0c;发现了一个USB电压测量表然后就有了以下拆解完后&#xff0c;发现它测量原理很简单&#xff0c;利用了电路的串并联的分压与分流来进行测量&#xff0c;测量精度取决于采样电阻与AD的精度&#xff0c;如果精度使用环境中不是很高&#xff0c;这种做法…

INA230测量电压电流功率

INA320测量电压电流功率 INA320 可以测量电压电流功率 基本ADC功能 可以测试分流电阻的电流和VBUS的电压 工作电压2.7--5.5V 可以测量电压为0---28V 测量电流是VIN VIN-&#xff0c;测量电压是VBUS 对地的电压 VBUS电压寄存器每个单位是1.25mv&#xff0c;最大量程是40.98V&am…

【AUTOSAR】UDS协议的代码分析与解读(九)----UDS读取数据2Ah

8.11 读取数据(周期标识符) Read Data By Periodic Identifier (2Ah) 此服务允许诊断工具请求读取ECU中由一个或多个周期数据标识符(periodic Data Identifier)标识 的周期发送的数据记录值。 在初始响应报文之后&#xff0c;有两种方式来发送周期数据响应报文给诊断工具。本规…

湖大CG满分教程:作业训练一编程题9. 二叉树遍历,从前序、中序到后序

【问题描述】 二叉树是一种非常重要的数据结构&#xff0c;非常多其他数据结构都是基于二叉树的基础演变而来的。对于二叉树&#xff0c;深度遍历有前序、中序以及后序三种遍历方法。 三种基本的遍历思想为&#xff1a; 前序遍历&#xff1a;根结点 ---> 左子树 ---> …