国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

七、【中級篇】傳感器DHT11、DHT22、DS18B20

Developer / 2439人閱讀

摘要:傳感器傳感器簡介串口與并口單工與半雙工上拉電阻是用來供應電流的下拉電阻是用來分擔電流的傳感器串行接口收發數據分析的讀寫時序傳感器簡介智能終端是在感知層如果想要感知采集數據必定需要使用傳感器市面上的傳感器有很多檢測氣體的

1.傳感器簡介

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

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

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

數字型傳感器 和 模擬型傳感器

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

串口與并口

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

單工與半雙工

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

略…

上拉電阻:是用來供應電流的

下拉電阻:是用來分擔電流的

2.DHT11傳感器

從手冊中了解DHT11傳感器:

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

串行接口收發數據

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

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

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

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

分析DHT11的讀寫時序



傳輸數據之前需要先檢測DHT11存不存在|DHT11有沒有損壞

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/123450.html

相關文章

  • MSP430單片機,OLED,獨立按鍵,DS18B20溫度感器,繼電器,抽風機,LED燈構成的電子

    摘要:當溫度感應器感應到設備主體內部的溫度高于設定值時,此時溫度設定器會控制風機進行啟動,對內部進行散熱處理,低于設定值時停止。設定的時間間隔溫度閾值,當前溫度由顯示,表示工作狀態。為繼電器,,,供電。必須手動清除,否則將持續引發中斷。 目錄 一、 設計要求 二、 總體設計和系統框圖 三、設計...

    BingqiChen 評論0 收藏0
  • ESP8266+Blinker 的萬物互聯(智能家居

    摘要:下面是演示視頻物聯網文章目錄前言一準備二操作步驟配置配置三效果展示總結前言實現萬物互聯第一步,千里點燈,然后添加你想要的模塊就可以了,接下來我們進入正文。 前面學習...

    CntChen 評論0 收藏0
  • 基于藍牙的超聲波無線測距系統

    摘要:設計簡介本設計是基于藍牙的超聲波無線測距的設計,主要實現以下功能實現通過測量當前溫度值實現通過溫差補償法公式修改超聲波在當前空氣中的傳播速度實現通過超聲波傳感器測量距離值。 設計簡介: 本設計是基于藍牙的超聲波無線測距的設計,主要實現以下功能: ① 實現通過DS18B20測量當前溫度值 ② ...

    zxhaaa 評論0 收藏0
  • 51單片機學習筆記001-----51單片機基礎構造淺介紹

    摘要:單片機在一片集成電路芯片上集成微處理器存儲器接口電路,從而構成了單芯片微型計算機,即單片機。沒搞懂專欄咋弄的,慢慢摸索吧,本人純新手,讀書人的事沒啥要臉不要臉的,有問題隨便指出,隨便噴,歡迎來指點 2021-9-25 自己手繪的一張圖,算是簡單的介紹吧? 對照實圖看一下 ? ? ? ?...

    int64 評論0 收藏0
  • 樹莓派利用DHT11上傳數據到電腦MySQL上

    摘要:工具樹莓派溫濕度傳感器在開始實驗之前,要在電腦上安裝,并且建立好一個數據庫連接。到這里對電腦配置就結束了,對了,還有如果你們到時運行樹莓派代碼出現遠程連接失敗錯誤碼,像下圖這是因為,你的防火墻開了,把防火墻關掉就不會報這個錯誤了。 ...

    不知名網友 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<