功能介绍:采用stm32单片机作为主控CPU,采用精密电阻分压将高电压分压后接入STM32单片机ADC接口,采用ADC可以采集出当前的电压值,通过功率电阻来测量电路中的电流,通过串联电路电流相同的原理,可以测出当前负载的电流,通过LCD1602显示电流和电压值,程序有中文注释,新手容易看懂,文末有分享下载链接:
下面是实物演示视频和相关实物图片
78-基于stm32单片机电压电流检测LCD1602显示(程序+原理图+元件清单全套资料)


下面是程序部分展示(程序有中文注释,新手容易看懂)
程序部分展示:int main(void){u16 adcx,adcx1,tmp;unsigned char chr[5];float temp,temp1 ;int dianya,dianliu;u16 buf ;delay_init(); //延时函数初始化uart_init(9600);NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级Adc_Init();LCD1602_Init();while(1){adcx=Get_Adc_Average(ADC_Channel_8,10);//读取电压adcx1=Get_Adc_Average(ADC_Channel_9,10);//读取电流temp=(float)adcx/4096*3.300*2;temp1=(float)adcx1/4096*3.300/2.2;printf("V=%.3f V\r\n",temp);printf("I=%.3f A\r\n",temp1);//数据上传电脑dianya=temp*1000;//小数点后移三位,全部变成整数LCD显示dianliu=temp1*1000;//小数点后移三位,全部变成整数LCD显示LCD_Write_Command(0x80);//第一行的首地址LCD_Write_Date(' ');LCD_Write_Date(' ');LCD_Write_Date(' ');LCD_Write_Date('V');LCD_Write_Date('=');LCD_Write_Date(' ');LCD_Write_Date(dianya%10000/1000+0x30); //显示电压LCD_Write_Date('.');LCD_Write_Date(dianya%1000/100+0x30);LCD_Write_Date(dianya%100/10+0x30);LCD_Write_Date(dianya%10+0x30);LCD_Write_Date('V');LCD_Write_Command(0x80+0x40);LCD_Write_Date(' ');LCD_Write_Date(' ');LCD_Write_Date(' ');LCD_Write_Date('I');LCD_Write_Date('=');LCD_Write_Date(' ');LCD_Write_Date(dianliu%10000/1000+0x30); //显示电流LCD_Write_Date('.');LCD_Write_Date(dianliu%1000/100+0x30);LCD_Write_Date(dianliu%100/10+0x30);LCD_Write_Date(dianliu%10+0x30);LCD_Write_Date('A');delay_ms(300);}}void LCD_Write_Command(u8 com){rs=0; //写指令函数和写数据函数其实可以并一起价格 BOOL变量判断是写指令就rs=0写数据就rs=1。rw=0;en=1; //写指令 输入:RS=L,RW=L,E=下降沿脉冲GPIO_Write(GPIOA, 0X00FF&com);//该函数一般用来往一次性一个GPIO的多个端口设置delay_ms(2);en=0;}/*******************写数据函数************************/void LCD_Write_Date(u8 date){rs=1;rw=0;en=1; //写数据 输入:RS=H,RW=L,E=下降沿脉冲GPIO_Write(GPIOA, 0X00FF&date);//GPIOA的第八位用来作为8位数据口delay_ms(2);en=0;}
程序打开办法:特别注意:下载资料包以后一定要先解压!!!(建议解压到桌面上,文件路径太深会导致程序打开异常),解压后再用keil5打开。

原理图采用【AD】altium designer打开,文件中有安装包


下面是资料包里面包含的相关文件展示

本文介绍了使用STM32单片机进行电压和电流测量的项目,通过精密电阻分压、ADC采样以及LCD1602显示,提供了详细的程序代码和原理图,适合新手学习。
1398

被折叠的 条评论
为什么被折叠?



