摘要:傳感器傳感器簡介串口與并口單工與半雙工上拉電阻是用來供應(yīng)電流的下拉電阻是用來分擔(dān)電流的傳感器串行接口收發(fā)數(shù)據(jù)分析的讀寫時序傳感器簡介智能終端是在感知層如果想要感知采集數(shù)據(jù)必定需要使用傳感器市面上的傳感器有很多檢測氣體的
智能終端是在感知層,如果想要感知采集數(shù)據(jù)必定需要使用傳感器
市面上的傳感器有很多:
檢測氣體的 溫度 濕度 稀有氣體含量(CO CO2 O2 甲醛 乙醇 甲烷 …)
檢測液體的 溫度 PH值 渾濁 液位
檢測固體的 濕度 元素含量
檢測人體 溫度 血壓 心率 血糖…傳感器的接口也有很多:
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)行傳輸)
注意:并不是說并口可以一次發(fā)送多位數(shù)據(jù)就說明并口比串口通信快,實(shí)際上正好相反,串口通信速度要比并口快
并口有很多的限制,(數(shù)據(jù)線與數(shù)據(jù)線之間會有電平干擾、需要同時發(fā)送同時接收)
單工模式 A–>---->–B
半雙工模式 A–>----<–B
全雙工模式 ---->-----
略…
從手冊中了解DHT11傳感器:
需要把形參c保存的8bit二進(jìn)制數(shù)據(jù),通過高位先出的方式進(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ù),傳感器通過高位先出的方式發(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;//用來接收數(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; }}
傳輸數(shù)據(jù)之前需要先檢測DHT11存不存在|DHT11有沒有損壞
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號管腳 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號管腳 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傳感器采集的數(shù)據(jù){ u8 flag = 0;//該變量是用來獲取PC10管腳的電平高低 u8 time = 0;//該變量是用來計數(shù) 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++;//計數(shù)自增 }while(flag == 1 && time <= 20);//以超時處理的方式等待PC10管腳被拉低 if(time > 20)//判斷是否超時 return ;//提前結(jié)束程序 while(!dht_input_status());//以死等的方式等待PC10管腳被拉高 /*開始接收40bit的數(shù)據(jù)*/ //...............}
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/123450.html
摘要:當(dāng)溫度感應(yīng)器感應(yīng)到設(shè)備主體內(nèi)部的溫度高于設(shè)定值時,此時溫度設(shè)定器會控制風(fēng)機(jī)進(jìn)行啟動,對內(nèi)部進(jìn)行散熱處理,低于設(shè)定值時停止。設(shè)定的時間間隔溫度閾值,當(dāng)前溫度由顯示,表示工作狀態(tài)。為繼電器,,,供電。必須手動清除,否則將持續(xù)引發(fā)中斷。 目錄 一、 設(shè)計要求 二、 總體設(shè)計和系統(tǒng)框圖 三、設(shè)計...
摘要:下面是演示視頻物聯(lián)網(wǎng)文章目錄前言一準(zhǔn)備二操作步驟配置配置三效果展示總結(jié)前言實(shí)現(xiàn)萬物互聯(lián)第一步,千里點(diǎn)燈,然后添加你想要的模塊就可以了,接下來我們進(jìn)入正文。 前面學(xué)習(xí)...
摘要:設(shè)計簡介本設(shè)計是基于藍(lán)牙的超聲波無線測距的設(shè)計,主要實(shí)現(xiàn)以下功能實(shí)現(xiàn)通過測量當(dāng)前溫度值實(shí)現(xiàn)通過溫差補(bǔ)償法公式修改超聲波在當(dāng)前空氣中的傳播速度實(shí)現(xiàn)通過超聲波傳感器測量距離值。 設(shè)計簡介: 本設(shè)計是基于藍(lán)牙的超聲波無線測距的設(shè)計,主要實(shí)現(xiàn)以下功能: ① 實(shí)現(xiàn)通過DS18B20測量當(dāng)前溫度值 ② ...
摘要:單片機(jī)在一片集成電路芯片上集成微處理器存儲器接口電路,從而構(gòu)成了單芯片微型計算機(jī),即單片機(jī)。沒搞懂專欄咋弄的,慢慢摸索吧,本人純新手,讀書人的事沒啥要臉不要臉的,有問題隨便指出,隨便噴,歡迎來指點(diǎn) 2021-9-25 自己手繪的一張圖,算是簡單的介紹吧? 對照實(shí)圖看一下 ? ? ? ?...
摘要:工具樹莓派溫濕度傳感器在開始實(shí)驗(yàn)之前,要在電腦上安裝,并且建立好一個數(shù)據(jù)庫連接。到這里對電腦配置就結(jié)束了,對了,還有如果你們到時運(yùn)行樹莓派代碼出現(xiàn)遠(yuǎn)程連接失敗錯誤碼,像下圖這是因?yàn)?,你的防火墻開了,把防火墻關(guān)掉就不會報這個錯誤了。 ...
閱讀 2209·2023-04-25 14:56
閱讀 2554·2021-11-16 11:44
閱讀 2749·2021-09-22 15:00
閱讀 1932·2019-08-29 16:55
閱讀 2211·2019-08-29 14:04
閱讀 2335·2019-08-29 11:23
閱讀 3715·2019-08-26 10:46
閱讀 1940·2019-08-22 18:43