久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: STM32+MQ-2煙霧傳感器源程序 [打印本頁]

作者: 北埼玉    時間: 2021-5-10 15:26
標題: STM32+MQ-2煙霧傳感器源程序
最近在做C8T6的煙霧模塊,網上參考有點少,整理一下分享給大家。
STM32F103C8T6自帶AD,我買了個MQ-2模塊直接接線
煙霧傳感器 單片機
VCC 3.3V
GND GND
A0 PB6(可以改)

附上壓縮包,自行下載吧

串口調試助手選擇 115200-N-8-1
引腳可以改 smog.c void Smog_Init(void)選擇自己需要的引腳即可

單片機源程序如下:
  1. #include "smog.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "adc.h"

  5. //初始化煙霧傳感器
  6. void Smog_Init(void)
  7. {
  8.         GPIO_InitTypeDef GPIO_InitStructure;
  9.         
  10.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能PORTF時鐘        
  11.         
  12.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;                        //PA6 anolog輸入
  13.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;                //模擬輸入引腳
  14.         GPIO_Init(GPIOA, &GPIO_InitStructure);        
  15.         Adc2_Init();
  16. }
  17. //讀取煙霧傳感器的電壓值
  18. u16 Smog_Get_Vol(void)
  19. {
  20.         u32 temp_val=0;
  21.         u8 t;
  22.         for(t=0;t<SMOG_READ_TIMES;t++)
  23.         {
  24.                 temp_val+=Get_Adc2(SMOG_ADC_CHX);        //讀取ADC值
  25.                 delay_ms(5);
  26.         }
  27.         temp_val/=SMOG_READ_TIMES;//得到平均值
  28.         printf("Smog_ADC_Val:%d\r\n", temp_val);
  29.     return (u16)temp_val;
  30. }
  31. //分析從煙霧傳感器獲取的電壓值,通過公式計算出可燃氣體的濃度值
  32. //設Rs為傳感器的體電阻,其中氣體濃度上升,將導致Rs下降。而Rs的下降則會導致,MQ-2的4腳、6腳對地輸出的電壓增大。
  33. //所以氣體濃度增大,其輸出的電壓也會增大。因Rs在不同氣體中有不同的濃度值,所以該函數僅作為參考.
  34. u16 Smog_Trans_Concentration(void)
  35. {
  36.     u16 ulVal = 0;
  37.     u16 temp_val = Smog_Get_Vol();
  38.         u16 Rs;
  39.         Rs = SMOG_PIN46_R*(4096.0/temp_val - 1);
  40.         printf("Smog_Rs_Val:%d\r\n", Rs);
  41.         
  42.         ulVal = Rs;//這里填寫公式根據Rs計算氣體濃度
  43.         
  44.     return ulVal;
  45. }
復制代碼

  1. #include "delay.h"

  2. #include "sys.h"
  3. #include "usart.h"
  4. #include "smog.h"


  5. int main(void)
  6. {
  7.         delay_init();                     //延時函數初始化         
  8.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級
  9.          USART1_init();         //串口初始化為115200
  10.          
  11.         Smog_Init();
  12.         while(1)
  13.         {
  14.                 Smog_Trans_Concentration();
  15.         delay_ms(300);
  16.         }
  17. }

復制代碼

所有資料51hei提供下載:
smog成功.7z (178.58 KB, 下載次數: 400)



作者: jizhongbiao    時間: 2021-5-12 18:29
用stm32 浪費了
作者: 北埼玉    時間: 2021-5-13 16:00
jizhongbiao 發表于 2021-5-12 18:29
用stm32 浪費了

是設計的其中一個模塊,不是只做這個的
作者: woshishui22    時間: 2021-5-15 10:02
現在芯片太貴了,需要根據需求選擇芯片了
作者: 悶得兒橙    時間: 2021-9-27 08:55
有沒有考慮加個溫濕度和水滴
作者: 魚丫    時間: 2022-1-20 13:44
大佬想問一下,使用該程序之后,串口助手波特率115200,停止位1,數據位1,無奇偶位校驗,但是卻提示沒有串口呢?
作者: 葉知葉    時間: 2022-3-17 12:07
為什么串口出現的數據都是0?
作者: zsheng2011    時間: 2022-3-18 13:26
這么大一個芯片驅動這么小一個程序
作者: fhff    時間: 2023-2-21 18:55
為啥我用你的源代碼oled上顯示是的數據特別大,是17000多
作者: hezezeze    時間: 2023-4-18 13:42
剛好用上 謝謝博主 很棒 支持感謝
作者: 篝火下的約定    時間: 2024-4-11 17:06
你好,博主,是32的PB6直接接AO嗎?不需要ADC芯片嗎?
作者: whw-1    時間: 2024-5-19 13:25
up體電阻是啥,是傳感器外接的保護電阻嗎




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日韩欧美在线观看一区 | 91精品国产色综合久久不卡98 | 久久久蜜桃| 国产精品成人久久久久 | 国产在线精品一区二区三区 | 国产自产21区| 国产精品一码二码三码在线 | 亚洲欧美在线观看 | 成人国产一区二区三区精品麻豆 | 久久久久久免费毛片精品 | 国产视频久久 | 成人精品在线观看 | 久久综合影院 | 欧美一区二区三区在线看 | 97日日碰人人模人人澡分享吧 | 天堂在线www | 人人操日日干 | 欧美精品一区二区在线观看 | 欧美成人h版在线观看 | 久久青草av | 一区二区av| 亚洲欧美国产精品久久 | 欧美一区免费在线观看 | 国产成人精品免高潮在线观看 | 免费色网址 | 神马影院一区二区三区 | 狼人伊人影院 | 国产免费自拍 | 蜜桃在线视频 | 日韩中文字幕一区 | 日本二区 | av毛片| 久久小视频 | 欧美精品一区二区三区在线 | 男女羞羞视频大全 | 日本超碰在线 | 欧美一级黄色片 | 日韩欧美电影在线 | 久久久久久久久久久91 | 网站黄色在线 | 精品欧美一区二区精品久久 |