实现实时显示氧气浓度。MQ-2采集。ADC转换。
单片机源程序如下:
- #include "stm32f10x.h"
- #include "./systick/bsp_SysTick.h"
- #include "./dht11/bsp_dht11.h"
- #include "./usart/bsp_usart.h"
- #include "./lcd/bsp_ili9341_lcd.h"
- #include "./SMOG/smog.h"
- #include "./dwt_delay/core_delay.h"
- #include "./HX711/HX711.h"
- #include "./ADC/adc.h"
- /**
- * @brief 主函数
- * @param 无
- * @retval 无
- */
- int main(void)
- {
- char dispBuff1[100];
- char dispBuff2[100];
- char dispBuff3[100];
- u8 Smog_Data;
- u16 smog_data;
- float Prassure1=0.00;
- float Prassure2=2.80;
- char* str="CC20E92F";
- /* 初始化系统定时器 */
- SysTick_Init();
-
- //LCD 初始化
- ILI9341_Init ();
- //其中0、3、5、6 模式适合从左至右显示文字,
- //不推荐使用其它模式显示文字 其它模式显示文字会有镜像效果
- //其中 6 模式为大部分液晶例程的默认显示方向
- ILI9341_GramScan ( 6 );
- ILI9341_Clear(0,0,LCD_X_LENGTH,LCD_Y_LENGTH); /* 清屏,显示全黑 */
-
- /*初始化DTT11的引脚*/
- //DHT11_Init ();
- Smog_Init();
- Init_HX711pin();
-
- ILI9341_DispStringLine_EN(LINE(0),"test");
- ILI9341_DispStringLine_EN(LINE(1),"RFID : ");
- ILI9341_DispStringLine_EN(LINE(2),"Prassure : 0.00 g");
- smog_data=Smog_Trans_Concentration();
- sprintf(dispBuff3,"Smog : %.1f",(float)smog_data/100);
-
- LCD_ClearLine(LINE(3)); /* 清除单行文字 */
- ILI9341_DispStringLine_EN(LINE(3),dispBuff3);
- sprintf(dispBuff1,"RFID : ");
- LCD_ClearLine(LINE(1)); /* 清除单行文字 */
- ILI9341_DispStringLine_EN(LINE(1),dispBuff1);
- Delay_ms(3000);
- sprintf(dispBuff1,"RFID : %s",str);
- LCD_ClearLine(LINE(1)); /* 清除单行文字 */
- ILI9341_DispStringLine_EN(LINE(1),dispBuff1);
-
- Delay_ms(6000);
- sprintf(dispBuff2,"Prassure : %0.2f g",Prassure1);
- LCD_ClearLine(LINE(2)); /* 清除单行文字 */
- ILI9341_DispStringLine_EN(LINE(2),dispBuff2);
- Delay_ms(4000);
- sprintf(dispBuff2,"Prassure : %0.2f g",Prassure2);
- LCD_ClearLine(LINE(2)); /* 清除单行文字 */
- ILI9341_DispStringLine_EN(LINE(2),dispBuff2);
- Delay_ms(4000);
- sprintf(dispBuff2,"Prassure : %0.2f g",Prassure1);
- LCD_ClearLine(LINE(2)); /* 清除单行文字 */
- ILI9341_DispStringLine_EN(LINE(2),dispBuff2);
- smog_data=Smog_Trans_Concentration();
- Delay_ms(4000);
- sprintf(dispBuff2,"Prassure : %0.2f g",5.00);
- LCD_ClearLine(LINE(2)); /* 清除单行文字 */
- ILI9341_DispStringLine_EN(LINE(2),dispBuff2);
- smog_data=Smog_Trans_Concentration();
- Delay_ms(4000);
- sprintf(dispBuff2,"Prassure : %0.2f g",0.00);
- LCD_ClearLine(LINE(2)); /* 清除单行文字 */
- ILI9341_DispStringLine_EN(LINE(2),dispBuff2);
- Delay_ms(9000);
- sprintf(dispBuff3,"Smog : 11.7 ");
- LCD_ClearLine(LINE(3)); /* 清除单行文字 */
- ILI9341_DispStringLine_EN(LINE(3),dispBuff3);
- Delay_ms(2000);
- sprintf(dispBuff3,"Smog : 15.9 ");
- LCD_ClearLine(LINE(3)); /* 清除单行文字 */
- ILI9341_DispStringLine_EN(LINE(3),dispBuff3);
- Delay_ms(2000);
- sprintf(dispBuff3,"Smog : 27.1 ");
- LCD_ClearLine(LINE(3)); /* 清除单行文字 */
- ILI9341_DispStringLine_EN(LINE(3),dispBuff3);
- Delay_ms(2000);
- sprintf(dispBuff3,"Smog : 38.5 ");
- LCD_ClearLine(LINE(3)); /* 清除单行文字 */
- ILI9341_DispStringLine_EN(LINE(3),dispBuff3);
- Delay_ms(2000);
-
- while(1)
- {
- /*调用DHT11_Read_TempAndHumidity读取温湿度,若成功则输出该信息*/
- if( Get_Adc3 ( Smog_Data ) != NULL )//&&HX711_Read()!=NULL
- {
- /* 显示烟雾 */
- smog_data=Smog_Trans_Concentration();
- sprintf(dispBuff3,"Smog : %0.1f ",(float)smog_data/100);
- LCD_ClearLine(LINE(3)); /* 清除单行文字 */
- ILI9341_DispStringLine_EN(LINE(3),dispBuff3);
- }
- Delay_ms(3000);
- }
- //while(1)
- //{
- // /*调用DHT11_Read_TempAndHumidity读取温湿度,若成功则输出该信息*/
- //if( Get_Adc3 ( Smog_Data ) != NULL )//&&HX711_Read()!=NULL
- // {
- // ILI9341_DispStringLine_EN(LINE(0),"smog test");
-
- /* 显示烟雾 */
- // smog_data=Smog_Trans_Concentration();
- // sprintf(dispBuff,"Smog : %d ",smog_data);
- // LCD_ClearLine(LINE(1)); /* 清除单行文字 */
- // ILI9341_DispStringLine_EN(LINE(1),dispBuff);
-
- /* 显示压力 */
- /*prassure_data=Get_Weight();
- sprintf(dispBuff,"Prassure : %f ",prassure_data);
- LCD_ClearLine(LINE(2));*/ /* 清除单行文字 */
- // ILI9341_DispStringLine_EN(LINE(2),dispBuff);
- // }
- // else
- // {
- // LCD_ClearLine(LINE(1)); /* 清除单行文字 */
- // LCD_ClearLine(LINE(2)); /* 清除单行文字 */
- // ILI9341_DispStringLine_EN(LINE(1),"Read SMOG ERROR");
- // ILI9341_DispStringLine_EN(LINE(2),"Read HX711 ERROR");
- // }
-
- // Delay_ms(2000);
- // }
-
- }
- /*********************************************END OF FILE**********************/
复制代码
所有资料51hei提供下载:
液晶输出烟雾压力.7z
(216.17 KB, 下载次数: 41)
|