目錄
- 一、簡介
- 二、連線
- 三、代碼
一、簡介
氣敏材料是二氧化錫(SnO2),在清潔空氣中電導率較低的,是以當傳感器所處環境中存在可瓦斯體時,傳感器的電導率增大。這種傳感器可檢測多種可瓦斯體,對液化氣、丙烷、氫氣的靈敏度高,對天然氣和其它可燃蒸汽的檢測也很理想。
二、連線
引腳D0是開關信号輸出,檢測有沒有雨滴(0和1),本處接到PD5引腳
引腳A0是模拟電壓輸出,可以輸出模拟電壓,需要接到對應功能的引腳,本處接到PA1引腳
三、代碼
在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);
}
}