国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32學習記錄——煙霧傳感器的使用

這篇具有很好參考價值的文章主要介紹了STM32學習記錄——煙霧傳感器的使用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

文章目錄

  • 前言
  • 一、學習目的
  • 二、模塊介紹
  • 三、代碼記錄
  • 總結

前言

? ? ? ?這次記錄一下煙霧傳感器的學習,由于煙霧傳感器的資料比較雜,算法比較多,對我來說也比較難,所以我的代碼中算法部分是不太具有參考價值,但是也可以做到隨煙霧濃度的變化數(shù)值呈線性相關,以后再記錄完善。


一、學習目的

? ? ? ?我的學習目的是通過STM32的ADC功能,學會使用煙霧傳感器檢測氣體的濃度,并用串口助手將氣體濃度的數(shù)值實時打印出來。

二、模塊介紹

? ? ? ?我使用是MQ-2煙霧傳感器模塊,它屬于二氧化錫半導體氣敏材料,當它與煙霧接觸時,如果晶粒間界處的勢壘收到煙霧的調(diào)至面變化,就會引起表面導電率的變化。且當煙霧濃度增大時,導電率增大,電阻變小,電壓增大。所以就可以用電壓的變化表示煙霧的濃度。

STM32學習記錄——煙霧傳感器的使用

STM32學習記錄——煙霧傳感器的使用

? ? ? ? MQ-2的引腳也和大部分傳感器一樣是四個(VCC,GND,AO,DO),不一樣的是,我這次想通過ADC功能獲取電壓值,并表示為氣體濃度,而不是僅僅通過檢測是否達到閾值后來改變某一個IO口的電平(例如之前記錄的光敏傳感器聲音傳感器,都是通過光照/聲音達到一個閾值后,改變某一個IO的電平,再通過讀取函數(shù)讀取這個IO口的電平,進而判斷是光明黑暗/有聲無聲)。所以煙霧傳感器給我的感覺是要遠復雜于一般傳感器的。

要注意的是,煙霧傳感器由于內(nèi)部有電阻絲作用,要先接通電源預熱20秒,測得結果才會穩(wěn)定。煙霧傳感器發(fā)熱屬于正?,F(xiàn)象,但是如果燙手就不正常了哈,那就建議立刻停止實驗。

接線方面:由于要實時獲取電壓,所以要使用的是AO引腳(檢測模擬信號的變化)

VCC--5V

GND--GND

AO--PA0(PA0具有ADC功能,實時輸出MQ-2的電壓信號)

三、代碼記錄

mq.h

#ifndef __MQ2_H
#define __MQ2_H
#include "stm32f10x.h"


void ADC_Pin_Init(void);
u16 ADC_Trans(void);

#endif

?mq.c

#include "mq2.h"
#include "delay.h"
#include "sys.h"
#include "stm32f10x_tim.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_adc.h"
 
void ADC_Pin_Init(void)        //初始化PA0口作為ADC檢測端,并且初始化ADC通道1
{
	GPIO_InitTypeDef GPIO_InitStruct;
	ADC_InitTypeDef ADC_InitStruct;
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_ADC1,ENABLE);
	
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AIN;
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;
	GPIO_Init(GPIOA,&GPIO_InitStruct);
	
	ADC_InitStruct.ADC_ContinuousConvMode = ENABLE;  //多次連續(xù)變換
	ADC_InitStruct.ADC_DataAlign = ADC_DataAlign_Right;
	ADC_InitStruct.ADC_Mode = ADC_Mode_Independent;
	ADC_InitStruct.ADC_NbrOfChannel = 1;
	ADC_InitStruct.ADC_ScanConvMode = DISABLE;
	ADC_Init(ADC1,&ADC_InitStruct);
	
	ADC_RegularChannelConfig(ADC1,ADC_Channel_0,1,ADC_SampleTime_239Cycles5);
	
	ADC_ITConfig(ADC1,ADC_IT_EOC,ENABLE);
	
	ADC_Cmd(ADC1,ENABLE);
}

u16 ADC_Trans(void)       //數(shù)據(jù)處理,求電壓值的平均數(shù)
{
	u16 adc_value = 0;
	u8 i = 0;
	
	for(i = 0; i < 50; i++)
	{ 
		ADC_SoftwareStartConvCmd(ADC1,ENABLE);	
		adc_value = adc_value + ADC_GetConversionValue(ADC1);
	}
	
	return adc_value / 50;
}

? ? ? ?mq.c文件將ADC和煙霧傳感器寫在了一起,主要就是初始化PA0口ADC的通道1,和一個數(shù)據(jù)處理函數(shù)。

要注意的是,初始化ADC1時,一定要將ADC_InitStruct.ADC_ContinuousConvMode設置為ENABLE??!即設置為多次連續(xù)變換模式,否則串口將只輸出第一次的值。

【數(shù)據(jù)處理時,本來需要通過while(ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC) != SET)來檢測轉換是否結束,但我的代碼寫完后會始終卡死在這個循環(huán)里。這也是很遺憾的一個點,如果大家有什么好的方法可以告訴我一下。】

main.c

#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "mq2.h"
 

int main(void)
{
	u16 ad = 0;
	
	delay_init();
	uart_init(115200);
	printf("初始化完成\r\n");
	ADC_Pin_Init();
	while(1)
	{
		ad = ADC_Trans();
	//	printf("電壓為:%f\r\n",3.3/4095*ad);
		printf("煙霧濃度為:%.2f\r\n",ad * 99 / 4096.0);
		delay_ms(1000);
	}
}

串口通信的代碼就不作記錄了,代碼燒錄后,打開串口助手就可以看到結果了。

STM32學習記錄——煙霧傳感器的使用


?總結

? ? ? ?代碼雖然看上去簡單,那其實也是因為我的算法比較拉跨,我也看了很多大佬的算法,確實比較高級,但是由于有的代碼并不完整,有的用的是STM32F4系列的芯片,我始終未能找到一個我能掌握的高級算法,以后有了進展再另作記錄。文章來源地址http://www.zghlxwxcb.cn/news/detail-486028.html

到了這里,關于STM32學習記錄——煙霧傳感器的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • MQ-2煙霧傳感器模塊功能實現(xiàn)(STM32)

    MQ-2煙霧傳感器模塊功能實現(xiàn)(STM32)

    ????????MQ-2型煙霧傳感器屬于二氧化錫半導體氣敏材料,屬于表面離子式N型半導體。當處于200~300攝氏度時,二氧化錫吸附空氣中的氧,形成氧的負離子吸附,使半導體中的電子密度減少,從而使其電阻值增加。當與煙霧接觸時,如果晶粒間界處的勢壘收到煙霧的調(diào)至而變

    2023年04月09日
    瀏覽(22)
  • STM32—ADC詳解入門(ADC讀取煙霧傳感器的值)

    STM32—ADC詳解入門(ADC讀取煙霧傳感器的值)

    目錄 一、ADC是什么 二、ADC的性能指標 三、ADC特性 四、ADC通道 五、ADC轉換順序 六、ADC觸發(fā)方式 七、ADC轉化時間 八、ADC轉化模式 九、實驗(使用ADC讀取煙霧傳感器的值) 1、配置 2、代碼 ????????ADC是Analog-to-DigitalConverter的縮寫。指模/數(shù)轉換器或者模擬/數(shù)字轉換器。是指

    2024年02月11日
    瀏覽(33)
  • STM32學習記錄——藍牙發(fā)送數(shù)據(jù)(手機顯示傳感器數(shù)據(jù))

    STM32學習記錄——藍牙發(fā)送數(shù)據(jù)(手機顯示傳感器數(shù)據(jù))

    文章目錄 前言 一、學習目的 二、代碼記錄 ? ? ? ? 將數(shù)據(jù)通過藍牙發(fā)送到手機上,是學生學習單片機的必備技能之一,它可以將手機作為簡單的上位機,從而使數(shù)據(jù)直觀地展現(xiàn)出來。 ? ? ? ?藍牙的初始化、藍牙接受數(shù)據(jù)以及藍牙簡單應用的介紹和代碼記錄,可以看一看下

    2024年02月07日
    瀏覽(26)
  • 通過STM32內(nèi)部ADC將煙霧傳感器發(fā)送的信號值顯示在OLED上

    通過STM32內(nèi)部ADC將煙霧傳感器發(fā)送的信號值顯示在OLED上

    一.CubeMX配置 首先我們在CubeMX配置ADC1, 設置一個定時器TIM2定時1s采樣一次以及刷新一次OLED, 打開IIC用于驅動OLED顯示屏。 二.程序 在Keil5中添加好oled的顯示庫,以及用來顯示的函數(shù)、初始化函數(shù)、清屏函數(shù)等。在主程序中初始化oled,并將其清屏。 在定時器中斷回調(diào)函數(shù)中對A

    2024年02月15日
    瀏覽(32)
  • 基于STM32和MQ-2傳感器的物聯(lián)網(wǎng)友好型煙霧報警系統(tǒng)

    基于STM32和MQ-2傳感器的物聯(lián)網(wǎng)友好型煙霧報警系統(tǒng)

    基于STM32和MQ-2傳感器的物聯(lián)網(wǎng)友好型煙霧報警系統(tǒng)是一種用于檢測室內(nèi)煙霧并及時報警的智能設備。 本系統(tǒng)利用STM32微控制器作為主控制單元,通過MQ-2傳感器實時監(jiān)測室內(nèi)煙霧濃度,并通過無線通信模塊將數(shù)據(jù)傳輸?shù)皆贫朔掌鳎瑢崿F(xiàn)遠程監(jiān)控和報警功能。 以下是該系統(tǒng)的

    2024年01月15日
    瀏覽(22)
  • MQ2煙霧傳感器 - STM32F103C8T6-HAL庫

    ADC.c 文件 ADC.h文件 main函數(shù)中的調(diào)用

    2024年04月26日
    瀏覽(39)
  • STM32外設芯片驅動學習記錄 —— (一) BH1750光照傳感器驅動開發(fā)

    STM32外設芯片驅動學習記錄 —— (一) BH1750光照傳感器驅動開發(fā)

    一、芯片介紹 二、Datasheet解讀 1.硬件說明 2.寄存器說明 3.通信過程 三、驅動代碼編寫 1.軟件I2C驅動 2. BH1750芯片驅動函數(shù) 總結 ? ? ? ? ? ? BH1750是16位數(shù)字輸出型,環(huán)境光強度傳感器集成電路,使用I2C接口通信,工作電壓:VCC(2.4~3.6V),I2C電平(1.65~VCC),用于各類消費類LCD屏

    2024年02月02日
    瀏覽(17)
  • HX711壓力傳感器學習(STM32)

    HX711壓力傳感器學習(STM32)

    目錄 原理圖:? 引腳介紹: HX711介紹工作原理: 程序講解: 整套工程: VCC和GND引腳分別為HX711芯片的電源輸入端口。 VCC引腳是連接到5V或3.3V的正電源,GND引腳是連接到地的負電源。 DOUT是HX711芯片的數(shù)據(jù)輸出端口,它輸出經(jīng)過A/D轉換處理后的24位數(shù)據(jù)。 SCK是HX711芯片的時鐘輸

    2024年02月05日
    瀏覽(25)
  • HX711壓力傳感器學習一(STM32)

    HX711壓力傳感器學習一(STM32)

    目錄 原理圖:? 引腳介紹: HX711介紹工作原理: 程序講解: 整套工程: VCC和GND引腳分別為HX711芯片的電源輸入端口。 VCC引腳是連接到5V或3.3V的正電源,GND引腳是連接到地的負電源。 DOUT是HX711芯片的數(shù)據(jù)輸出端口,它輸出經(jīng)過A/D轉換處理后的24位數(shù)據(jù)。 SCK是HX711芯片的時鐘輸

    2024年02月16日
    瀏覽(24)
  • STM32 手勢識別傳感器模塊(PAJ7620)學習

    STM32 手勢識別傳感器模塊(PAJ7620)學習

    目錄 模塊介紹: 基本部分: 引腳配置: 工作原理: 展示部分: 代碼部分展示(在正點的基礎上加了一個讀手勢去控制舵機): 視頻展示: 基本部分: 手勢模塊搭載的芯片是PAJ7620,無論是正點原子的還是別的手勢模塊的底層是一致的,甚至代碼也是通用的。 芯片內(nèi)部集成了

    2024年02月07日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包