天天看點

stm32—毒氣傳感器初步使用一、簡介二、連線三、代碼

目錄

  • 一、簡介
  • 二、連線
  • 三、代碼

一、簡介

氣敏材料是二氧化錫(SnO2),在清潔空氣中電導率較低的,是以當傳感器所處環境中存在可瓦斯體時,傳感器的電導率增大。這種傳感器可檢測多種可瓦斯體,對液化氣、丙烷、氫氣的靈敏度高,對天然氣和其它可燃蒸汽的檢測也很理想。

stm32—毒氣傳感器初步使用一、簡介二、連線三、代碼

二、連線

引腳D0是開關信号輸出,檢測有沒有雨滴(0和1),本處接到PD5引腳

引腳A0是模拟電壓輸出,可以輸出模拟電壓,需要接到對應功能的引腳,本處接到PA1引腳

stm32—毒氣傳感器初步使用一、簡介二、連線三、代碼

三、代碼

在du_qi.h 檔案中,我們先進行宏定義,友善移植

#define duqi_STATE() GPIO_ReadInputDataBit(duqi_PORT,duqi_PIN)//讀毒氣傳感器的狀态

#define duqi_PORT GPIOD
#define duqi_PIN GPIO_Pin_5
#define duqi_RCC RCC_APB2Periph_GPIOD
           

定義完了之後,再對duqi.c檔案中的PD5接收引腳進行初始化

//對毒氣傳感器的端口進行初始化
void rain_INIT(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;//定義結構體變量
	
	RCC_APB2PeriphClockCmd(duqi_RCC,ENABLE);	
	GPIO_InitStructure.GPIO_Pin=duqi_PIN;  //選擇你要設定的IO口
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;	 //設定浮空輸入
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;	  //設定傳輸速率
	GPIO_Init(duqi_PORT,&GPIO_InitStructure); 	   /* 初始化GPIO */

}
           

最後,在main.c函數裡面進行情況選擇,隻是了解傳感器的使用,沒有運用實際項目,是以寫的很簡單。

int main()
{
	u8 i=0;
	u16 value=0;
	float vol;
	
	SysTick_Init(72);
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //中斷優先級分組 分2組
	duqi_INIT();
	USART1_Init(115200);
	ADCx_Init();
	
	while(1)
	{
		i++;
		if(i%20==0)
		{
			LED2=!LED2;
		}
		
		if(i%50==0)
		{
			value=Get_ADC_Value(ADC_Channel_1,20);
			printf("檢測毒氣濃度為:%d\r\n",value);
			
		}
		delay_ms(10);	
	}
}
           

繼續閱讀