一、元器件清单
硬件 | 作用 |
STM32F103C8T6开发板 | 作为主控芯片 |
3个MQ-3酒精传感器 | 检测酒精数据 |
0.96寸4针OLED屏幕 | 显示数据 |
ST-LINK烧录器 | 烧录代码、调试 |
杜邦线 | (公对公、公对母、母对母)连接作用 |
面包板 | 方便组装 |
二、硬件实物接线
三、功能实现
1.检测三组酒精数据 ,显示在OLED屏幕上
2.三组酒精数据发送到串口调试助手
四、串口调试助手打印数据
五、main.c代码
u16 MQ3_Value;//酒精浓度
u16 MQ3_Value2;//酒精浓度
u16 MQ3_Value3;//酒精浓度
int main(void)
{
Adc_Init();
OLED_Init();
mfq_Init();
Serial_Init();
OLED_ShowChinese(0, 12, "酒精浓度");
OLED_ShowString(96,12,"1:",OLED_8X16);
OLED_ShowString(96,12,"mg/L",OLED_8X16);
OLED_ShowChinese(0, 29, "酒精浓度:");
OLED_ShowString(96,29,"2:",OLED_8X16);
OLED_ShowString(96,29,"mg/L",OLED_8X16);
OLED_ShowChinese(0, 47, "酒精浓度:");
OLED_ShowString(96,47,"3:",OLED_8X16);
OLED_ShowString(96,47,"mg/L",OLED_8X16);
OLED_Update();
while(1)
{
MQ3_Value=(Get_Adc_Average(ADC_Channel_0,10)*400)/22500;//酒精浓度值
MQ3_Value2=(Get_Adc_Average(ADC_Channel_1,10)*400)/22500;//酒精浓度值
MQ3_Value3=(Get_Adc_Average(ADC_Channel_2,10)*400)/22500;//酒精浓度值
OLED_ShowNum(70,12,MQ3_Value,3,OLED_8X16);
OLED_ShowNum(70,29,MQ3_Value2,3,OLED_8X16);
OLED_ShowNum(70,47,MQ3_Value3,3,OLED_8X16);
OLED_Update();
//fmq(MQ3_Value);//25mg/L
printf("酒精浓度= %d ",MQ3_Value);
Serial_SendString("mg/L\r");
printf("酒精浓度= %d ",MQ3_Value2);
Serial_SendString("mg/L\r");
printf("酒精浓度= %d ",MQ3_Value3);
Serial_SendString("mg/L\r\n");
}
}