成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

七、【中級(jí)篇】傳感器DHT11、DHT22、DS18B20

Developer / 2771人閱讀

摘要:傳感器傳感器簡(jiǎn)介串口與并口單工與半雙工上拉電阻是用來(lái)供應(yīng)電流的下拉電阻是用來(lái)分擔(dān)電流的傳感器串行接口收發(fā)數(shù)據(jù)分析的讀寫(xiě)時(shí)序傳感器簡(jiǎn)介智能終端是在感知層如果想要感知采集數(shù)據(jù)必定需要使用傳感器市面上的傳感器有很多檢測(cè)氣體的

1.傳感器簡(jiǎn)介

智能終端是在感知層,如果想要感知采集數(shù)據(jù)必定需要使用傳感器

市面上的傳感器有很多:
檢測(cè)氣體的 溫度 濕度 稀有氣體含量(CO CO2 O2 甲醛 乙醇 甲烷 …)
檢測(cè)液體的 溫度 PH值 渾濁 液位
檢測(cè)固體的 濕度 元素含量
檢測(cè)人體 溫度 血壓 心率 血糖…

傳感器的接口也有很多:
GPIO接口 串口接口(USART/UART IIC IIS SPI …) 并口接口

數(shù)字型傳感器 和 模擬型傳感器

傳感器可以從采集種類、接口種類、采集到的數(shù)據(jù)種類分為很多種

串口與并口

串口:串行的接口或者串行的通信接口|串行的通訊接口,是指數(shù)據(jù)按照串行的方式進(jìn)行傳輸(是指數(shù)據(jù)一位一位進(jìn)行傳輸)
并口:并行的接口或者并行的通信接口|并行的通訊接口,是指數(shù)據(jù)按照并行的方式進(jìn)行傳輸(是指數(shù)據(jù)多位多位進(jìn)行傳輸)
注意:并不是說(shuō)并口可以一次發(fā)送多位數(shù)據(jù)就說(shuō)明并口比串口通信快,實(shí)際上正好相反,串口通信速度要比并口快
并口有很多的限制,(數(shù)據(jù)線與數(shù)據(jù)線之間會(huì)有電平干擾、需要同時(shí)發(fā)送同時(shí)接收)

單工與半雙工

單工模式 A–>---->–B
半雙工模式 A–>----<–B
全雙工模式 ---->-----

略…

上拉電阻:是用來(lái)供應(yīng)電流的

下拉電阻:是用來(lái)分擔(dān)電流的

2.DHT11傳感器

從手冊(cè)中了解DHT11傳感器:

  • 是用來(lái)采集溫度和濕度的傳感器
  • 采集到的是數(shù)字量
  • 4管腳的封裝形式
  • 采集的范圍:濕度 : 20% - 90%(誤差:±5%),溫度 : 0℃ - 50℃(誤差:±2℃),
  • 分辨力 : 1(指的是采集的精度<只能采集整數(shù)部分>)
  • 連接方式:一個(gè)管腳用來(lái)接電源,一個(gè)管腳用來(lái)接地,一個(gè)管腳用來(lái)接MCU,一個(gè)管腳懸空(NC<沒(méi)有連接>)
  • 串行接口:是指數(shù)據(jù)按照串行的方式進(jìn)行傳輸
  • 單線雙向(半雙工的工作模式):指的是串行接口的工作模式
    單工模式,半雙工模式,全雙工模式
  • 一次完整的數(shù)據(jù)傳輸為40bit<5個(gè)字節(jié)>,高位先出
    8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)
    +8bit溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)
    +8bit校驗(yàn)和
    數(shù)據(jù)傳送正確時(shí)校驗(yàn)和數(shù)據(jù)等于“8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù) +8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)”所得結(jié)果的末8位。
  • 軟件有軟件的協(xié)議,硬件也有硬件的協(xié)議:硬件的協(xié)議就是讀寫(xiě)時(shí)序,讀寫(xiě)時(shí)序都是官方定義出來(lái)的
    例子:DHT11在出產(chǎn)的時(shí)候,官方就已經(jīng)定義好了一套讀寫(xiě)時(shí)序,MCU想要和DHT11交互數(shù)據(jù),就需要讓MCU遵守DHT11的讀寫(xiě)時(shí)序
  • 分析DHT11的讀寫(xiě)時(shí)序

串行接口收發(fā)數(shù)據(jù)

需要把形參c保存的8bit二進(jìn)制數(shù)據(jù),通過(guò)高位先出的方式進(jìn)行傳輸
假設(shè):MCU連接了PC9管腳,可以使用位帶發(fā)數(shù)據(jù)PCOut(9) 收數(shù)據(jù)PCIn(9)
數(shù)據(jù)線低電平代表數(shù)據(jù)0,數(shù)據(jù)線高電平代表數(shù)據(jù)1

/*發(fā)送數(shù)據(jù)*/void func(u8 c)//10111110{	u8 i = 0;//循環(huán)變量				for(i = 0; i < 8; i++)	{		if(c & 0x80)			PCOut(9) = 1;		else			PCOut(9) = 0;		c <<= 1;//01111100	}}

需要接收8bit二進(jìn)制數(shù)據(jù),傳感器通過(guò)高位先出的方式發(fā)送數(shù)據(jù)
假設(shè):MCU連接了PC9管腳,可以使用位帶發(fā)數(shù)據(jù)PCOut(9) 收數(shù)據(jù)PCIn(9)
數(shù)據(jù)線低電平代表數(shù)據(jù)0,數(shù)據(jù)線高電平代表數(shù)據(jù)1

u8 func(void){	u8 c = 0;//用來(lái)接收數(shù)據(jù)的變量	u8 i = 0;//循環(huán)變量	for(i = 0; i < 8; i++)	{		c <<= 1;//c >>= 1;		if(PCIn(9) == 1)			c |= 1;//c |= 0x80;	}}

分析DHT11的讀寫(xiě)時(shí)序



傳輸數(shù)據(jù)之前需要先檢測(cè)DHT11存不存在|DHT11有沒(méi)有損壞

void set_dht_output(void)//內(nèi)部函數(shù),把PC10管腳配置為輸出模式{	GPIO_InitTypeDef Gpio_Value;//定義了GPIO初始化結(jié)構(gòu)體類型的變量		Gpio_Value.GPIO_Mode = GPIO_Mode_Out_PP;//選擇了推挽的輸出模式	Gpio_Value.GPIO_Pin = GPIO_Pin_10;//選擇了10號(hào)管腳	Gpio_Value.GPIO_Speed = GPIO_Speed_50MHz;//選擇了50MHz的輸出速率	GPIO_Init(GPIOC, &Gpio_Value);//按照上述配置初始化GPIOC組的管腳}void set_dht_input(void)//內(nèi)部函數(shù),把PC10管腳配置為輸入模式{	GPIO_InitTypeDef Gpio_Value;//定義了GPIO初始化結(jié)構(gòu)體類型的變量		Gpio_Value.GPIO_Mode = GPIO_Mode_IN_FLOATING;//選擇了浮空的輸入模式	Gpio_Value.GPIO_Pin = GPIO_Pin_10;//選擇了10號(hào)管腳	GPIO_Init(GPIOC, &Gpio_Value);//按照上述配置初始化GPIOC組的管腳}void dht_output_status(int n){	set_dht_output();//先把PC10管腳初始化為輸出模式	if(n == 0)		PCOut(10) = 0;	else		PCOut(10) = 1;}int dht_input_status(void){	set_dht_input();//先把PC10管腳初始化為輸入模式	return PCIn(10);}void dht_init(void)//DHT11初始化{	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);	//通過(guò)APB2總線使能GPIOC組的時(shí)鐘}void get_dht_value(char buf[5])//獲取DHT11傳感器采集的數(shù)據(jù){	u8 flag = 0;//該變量是用來(lái)獲取PC10管腳的電平高低	u8 time = 0;//該變量是用來(lái)計(jì)數(shù)		dht_output_status(1);//把PC10管腳拉高	dht_output_status(0);//把PC10管腳拉低	delay_ms(20);//延時(shí)20ms	dht_output_status(1);//把PC10管腳拉高	//while(dht_input_status());//以死等的方式等待PC10管腳被拉低	do	{		flag = dht_input_status();//獲取PC10管腳的電平高低		delay_us(2);//延時(shí)2us		time++;//計(jì)數(shù)自增	}while(flag == 1 && time <= 20);//以超時(shí)處理的方式等待PC10管腳被拉低	if(time > 20)//判斷是否超時(shí)		return ;//提前結(jié)束程序	while(!dht_input_status());//以死等的方式等待PC10管腳被拉高	/*開(kāi)始接收40bit的數(shù)據(jù)*/	//...............}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/123450.html

相關(guān)文章

  • MSP430單片機(jī),OLED,獨(dú)立按鍵,DS18B20溫度感器,繼電器,抽風(fēng)機(jī),LED燈構(gòu)成的電子

    摘要:當(dāng)溫度感應(yīng)器感應(yīng)到設(shè)備主體內(nèi)部的溫度高于設(shè)定值時(shí),此時(shí)溫度設(shè)定器會(huì)控制風(fēng)機(jī)進(jìn)行啟動(dòng),對(duì)內(nèi)部進(jìn)行散熱處理,低于設(shè)定值時(shí)停止。設(shè)定的時(shí)間間隔溫度閾值,當(dāng)前溫度由顯示,表示工作狀態(tài)。為繼電器,,,供電。必須手動(dòng)清除,否則將持續(xù)引發(fā)中斷。 目錄 一、 設(shè)計(jì)要求 二、 總體設(shè)計(jì)和系統(tǒng)框圖 三、設(shè)計(jì)...

    BingqiChen 評(píng)論0 收藏0
  • ESP8266+Blinker 的萬(wàn)物互聯(lián)(智能家居

    摘要:下面是演示視頻物聯(lián)網(wǎng)文章目錄前言一準(zhǔn)備二操作步驟配置配置三效果展示總結(jié)前言實(shí)現(xiàn)萬(wàn)物互聯(lián)第一步,千里點(diǎn)燈,然后添加你想要的模塊就可以了,接下來(lái)我們進(jìn)入正文。 前面學(xué)習(xí)...

    CntChen 評(píng)論0 收藏0
  • 基于藍(lán)牙的超聲波無(wú)線測(cè)距系統(tǒng)

    摘要:設(shè)計(jì)簡(jiǎn)介本設(shè)計(jì)是基于藍(lán)牙的超聲波無(wú)線測(cè)距的設(shè)計(jì),主要實(shí)現(xiàn)以下功能實(shí)現(xiàn)通過(guò)測(cè)量當(dāng)前溫度值實(shí)現(xiàn)通過(guò)溫差補(bǔ)償法公式修改超聲波在當(dāng)前空氣中的傳播速度實(shí)現(xiàn)通過(guò)超聲波傳感器測(cè)量距離值。 設(shè)計(jì)簡(jiǎn)介: 本設(shè)計(jì)是基于藍(lán)牙的超聲波無(wú)線測(cè)距的設(shè)計(jì),主要實(shí)現(xiàn)以下功能: ① 實(shí)現(xiàn)通過(guò)DS18B20測(cè)量當(dāng)前溫度值 ② ...

    zxhaaa 評(píng)論0 收藏0
  • 51單片機(jī)學(xué)習(xí)筆記001-----51單片機(jī)基礎(chǔ)構(gòu)造淺介紹

    摘要:?jiǎn)纹瑱C(jī)在一片集成電路芯片上集成微處理器存儲(chǔ)器接口電路,從而構(gòu)成了單芯片微型計(jì)算機(jī),即單片機(jī)。沒(méi)搞懂專欄咋弄的,慢慢摸索吧,本人純新手,讀書(shū)人的事沒(méi)啥要臉不要臉的,有問(wèn)題隨便指出,隨便噴,歡迎來(lái)指點(diǎn) 2021-9-25 自己手繪的一張圖,算是簡(jiǎn)單的介紹吧? 對(duì)照實(shí)圖看一下 ? ? ? ?...

    int64 評(píng)論0 收藏0
  • 樹(shù)莓派利用DHT11上傳數(shù)據(jù)到電腦MySQL上

    摘要:工具樹(shù)莓派溫濕度傳感器在開(kāi)始實(shí)驗(yàn)之前,要在電腦上安裝,并且建立好一個(gè)數(shù)據(jù)庫(kù)連接。到這里對(duì)電腦配置就結(jié)束了,對(duì)了,還有如果你們到時(shí)運(yùn)行樹(shù)莓派代碼出現(xiàn)遠(yuǎn)程連接失敗錯(cuò)誤碼,像下圖這是因?yàn)?,你的防火墻開(kāi)了,把防火墻關(guān)掉就不會(huì)報(bào)這個(gè)錯(cuò)誤了。 ...

    不知名網(wǎng)友 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<