基于STM32单片机液位(水位)监控系统的设计与实现

一、元器件清单

硬件清单
硬件作用
STM32F103C8T6开发板作为主控芯片
3个水位传感器检测水位数据
0.96寸4针OLED屏幕显示数据
ST-LINK烧录器烧录代码、调试
杜邦线(公对公、公对母、母对母)连接作用
面包板方便组装

二、硬件实物接线

 三、功能实现

1.检测三组水位数据 ,显示在OLED屏幕上

2.三组水位数据发送到串口调试助手

四、串口调试助手打印数据

 五、main.c代码

u16 adcx;//ADC
float voltage;//水位
u16 adcx2;//ADC
float voltage2;//水位
u16 adcx3;//ADC
float voltage3;//水位
int main(void)
{
	 OLED_Init();
	 Adc_Init();
	 mfq_Init();
	 Serial_Init();
	 
	OLED_ShowChinese(0, 13, "水位");
	OLED_ShowChinese(40, 13, ":");
	OLED_ShowString(32,13,"1",OLED_8X16);
	OLED_ShowString(80,13,"m",OLED_8X16);
	OLED_ShowString(90,13,"m",OLED_8X16);
	OLED_ShowChinese(0, 30, "水位");
	OLED_ShowChinese(40, 30, ":");
	OLED_ShowString(32,30,"2",OLED_8X16);
	OLED_ShowString(80,30,"m",OLED_8X16);
	OLED_ShowString(90,30,"m",OLED_8X16);
	OLED_ShowChinese(0, 47, "水位");
	OLED_ShowChinese(40, 47, ":");
	OLED_ShowString(32,47,"3",OLED_8X16);
	OLED_ShowString(80,47,"m",OLED_8X16);
	OLED_ShowString(90,47,"m",OLED_8X16);
	OLED_Update();
	while(1)
	{
				adcx=Get_Adc_Average(ADC_Channel_1,10);
				voltage = 3300000/4096*adcx/10000;
				OLED_ShowNum(50,30,voltage,2,OLED_8X16);
				
				adcx2=Get_Adc_Average(ADC_Channel_0,10);
				voltage2 = 3300000/4096*adcx2/10000;
				OLED_ShowNum(50,47,voltage2,2,OLED_8X16);
				OLED_Update();
				
				adcx3=Get_Adc_Average(ADC_Channel_2,10);
				voltage3 = 3300000/4096*adcx3/10000;
				OLED_ShowNum(50,13,voltage3,2,OLED_8X16);
				
				//fmq(voltage);

				printf("水位1= %.2f mm,水位2= %.2f mm,水位3= %.2f mm \r\n",(float)voltage,(float)voltage2,(float)voltage3);

	}
}

五、程序代码下载

《STM32单片机+3个Water水位传感器+OLED屏幕显示+串口打印三组数据》源代码资源-CSDN文库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式Dora

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值