色另类_婷婷激情四月_亚洲精品无码不卡在线播放he_欧美第七页_精品国产综合区久久久久99_青娱乐极品盛宴在线

產品分類

當前位置: 首頁 > 傳感測量產品 > 工業傳感器 > 測距傳感器

類型分類:
科普知識
數據分類:
測距傳感器

gp2d12紅外測距傳感器:Arduino + GP2D12紅外測距傳感器+LCD1602

發布日期:2022-10-09 點擊率:81


gp2d12紅外測距傳感器:Arduino  + GP2D12紅外測距傳感器+LCD1602

一:

GP2Y0A21YKIR Sensor是日本夏普公司推出的一款性價比高、最常用的紅外測距傳感器、其與GP2D12測量射程相同,但探測面積略有增加,可用來對物體的距離進行測量,實現輪式機器人的避障功能。它不但體積小、功耗低、價格便宜,而且測距效果好,適合廣大機器人發燒友使用。趕快給你的機器人配備一雙犀利的眼睛吧!
技術規格:
1.測量射程范圍:10 - 80 cm
2.最大允許角度:>40°
3.電源電壓:4.5 - 5.5V
4.平均功耗:33 - 40mA
5.峰值功耗:約200mA
6.更新頻率/周期:25Hz/40ms
7.模擬輸出噪聲:<200mV 8.精度和采集的AD位數以及轉化計算公式相關,10AD一般能達到0.1CM. 9.測量距離與輸出模擬電壓關系:2.4V~0.4V模擬信號對應10cm~80cm,輸出與距離成反比非線性關系。 尺寸:29.5×13×13.5 mm 實驗任務是:把GP2D12紅外線測距傳感器采集的數據,通過Arduino控制器的算式轉換為實際距離值,再顯示在集成了I2C接口的LCD1602液晶面板上。 上圖就是GP2D12紅外線測距傳感器的電壓值與距離值的關系曲線,從這個曲線可以看出,電壓輸出與距離成反比,而且是非線性關系。根據上圖關系曲線,大約關系為10cm距離時有2.55V輸出,80cm距離時有0.42V輸出。可以通過該曲線擬合出電壓值與距離值的數學關系式,但是這個關系式里的距離是參考距離值,實際距離值=(參考距離值-0.42)cm,另外由于Arduino的模擬量采樣命令analogRead(),采樣的數據范圍是0至1023,對應的電壓范圍是0至5V,每格數據代表0.0049V,于是讀取的有效數據應該由86(0.42V)至520(2.548V)。所以最終可以推導出實際距離與采樣數據之間的關系式為: ? 實際距離=2547.8/((float)采樣數據*0.49-10.41)-0.42 這個實際距離與采樣數據之間的關系式,您會在下面程序中再次看到,我用紅色字體標注出來了。 實驗中,我們用到的I2C接口的LCD1602也是比較方便的。 二:1602: 用四根杜邦線,把1602LCD后面的I2C接口四個引腳與Xbee傳感器擴展板V5的I2C專用端口連接起來,就可以實現Arduino控制器與LCD1602液晶的I2C硬件聯系,如文章的第一張圖所示。這個集成了I2C接口的1602LCD好用,不僅體現在硬件連線方便,而且您使用專門為這個LCD液晶寫的庫文件LiquidCrystal_I2C,編寫程序也特別簡單。 把GP2D12傳感器連接到Arduino傳感器擴展板的模擬量端口0、LCD1602的I2C引腳連接到傳感器擴展板的I2C專用端口,又安裝好和LiquidCrystal_I2庫文件,那就可以編寫GP2D12傳感器距離值采集和LCD1602液晶顯示的程序了。 實驗所需要的代碼是這樣: #include

GP2D12使用注意及使用優化方式:
1. 當多個GP2D12同時連接Arduino板使用時,由于供電量的增加,可能造成電壓不穩定而對測量結果產生偏差。從硬件角度可以通過在VCC與 GND之間接電容的方式來穩定對GP2D12的供電,減少供電電壓波動對測量結果的影響,或者在GND與數據線之間接一個電容減小輸出電壓的波動略去可能出現的誤差信號,提高數據穩定性。(接線見附錄圖)
2. 針對測量時可能產生的干擾和誤差數值,可能從軟件的角度進行改進和防止,通過多次的測量記錄,排除一場輸入量后,取均值來的到一個較為穩定更為接近實際值的測量數據。其次可以根據實際的使用要求,可以進行有效值的范圍定義,過濾超出范圍的測量結果,該范圍可根據使用情況自行界定。
3. 針對紅外傳感器測量時,可能受環境光影響測量結果,在安放使用時竟可能避免傳感器正對燈光的使用,可以將 GP2D12的發射接收端水平放置進行測量,盡可能減少環境光帶來的干擾。
總體來說GP2D12在對測量精度要求不高,測量范圍在1m以內的情況下,對物體距離值的定位是非常簡單有效地、操作簡便、實用性強。
gp2d12<a title=紅外測距傳感器:Arduino + GP2D12紅外測距傳感器+LCD1602 第1張" title="gp2d12紅外測距傳感器:Arduino + GP2D12紅外測距傳感器+LCD1602 第1張-傳感器知識網"/>

gp2d12紅外測距傳感器:GP2D12 IR Sensor 夏普紅外測距 Arduino傳感器(附送傳感器線)

產品介紹:
GP2D12 IR Sensor 是日本夏普公司推出的一款性價比高、常用的紅外測距傳感器、其可用來對物體的距離進行測量,實現輪式機器人的避障功能。它不但體積小、功耗低、價格便宜,而且測距效果好,適合廣大機器人發燒友使用。貨量充足,全部現貨供應。
GP2D12產品規格參數:
1.測量射程范圍:10 to 80 cm
2.允許角度:>40°
3.電源電壓:4.5 to 5.5V
4.平均功耗:35mA
5.峰值功耗:約200mA
6.更新頻率/周期:25Hz/40ms
7.模擬輸出噪聲:<200mV 8.測量距離與輸出模擬電壓關系:2.4V~0.4V模擬信號對應10cm~80cm,輸出與距離成反比非線性關系。 產品圖片: 現在購買此傳感器贈送一根30cm長進口彩色排線。(數量有限,欲購從速) GP2D12 IR Sensor 夏普紅外測距正面圖 GP2D12 IR Sensor 夏普紅外測距背面圖 GP2D12 IR Sensor 外形尺寸 模擬信號與測量距離對應表 ADC0831可以將模擬信號轉為數字信號輸出 GP2D12 IR Sensor 夏普紅外測距傳感器引腳接線圖解 GP2D12 IR Sensor 夏普紅外測距傳感器快速對比圖 GP2D12 IR Sensor 夏普紅外測距傳感器的應用實例 夏普公司推出的其他型號產品 GP2D12 IR Sensor 夏普紅外測距傳感器與控制器相連 相關資料: Arduino應用之夏普GP2D12紅外測距傳感器網址:(復制網址到瀏覽器打開) 有問有答: 1.夏普紅外測距邊界問題: 2.Arduino驅動安裝失敗? 解決的方法: 1.html 3.Arduino uno R3+雙H橋驅動板+紅外遙控小車編程問題 :   4.采用現成零件 在家自制Arduino手機: mod=viewthread&tid=3858 5.利用Xbee模塊實現兩個UNO控制器的通信: mod=viewthread&tid=5284 6.新人求問,關于紅外避障模塊: 前沿科技: 1.利用紅外熱釋電傳感器制作屬于自己的報警裝置: 2.Arduino與Kinect打造“體感智能車”:   3.玩轉Arduino-編譯環境軟件: 4.Arduino IDE錯誤提示問題原因匯總: 5.Arduino+Processing 制作極客風格繪圖機: 6.Arduino兼容的3D手勢控制器: 7.玩轉Arduino-閃爍的LED: 8.基于Arduino UNO與超聲波傳感器的音樂魔方: 9.利用Arduino超聲波傳感器自制倒車雷達: 教學視頻: 1.紅外無線傳輸之旋轉電位計控制LED燈: 2.紅外無線發射接收之顏色識別系統: 3.Arduino紅外無線遙控解碼距離測試: 4.Arduino-2WD輕量型移動機器人紅外遙控演示: 5.Arduino-4WD移動機器人尋線與避障功能演示網址:   6.Arduino-4WD移動機器人偵測避障功能演示網址:   技術博客: 1.關于Sharp GP2D12紅外測距傳感器:   2.奧松機器人帶你“走進科學世界”: 3.奧松機器人助力中國教育亮相東南衛視《好好學習吧》娛樂節目: 4.玩轉Arduino控制器——入門篇:   5.玩轉Arduino控制器——基于Arduino互動電子入門套 件:   6.超聲波測距原理及應用實例: 百度百科: 1.Arduino百度百科(點擊名稱) 2.哈爾濱奧松機器人科技有限公司(點擊名稱) 3.“機器人爸爸”于欣龍(點擊名稱) 維基百科: 1.夏普GP2D12紅外測距傳感器(點擊名稱) 2.夏普GP2Y0A02YK0F 紅外測距傳感器(點擊名稱) 【為了給親們提供更方便快捷的技術服務與支持,奧松機器人特開設技術社區為大家答疑解惑 ,即有專門的技術人員為您回帖,更有眾多的電子愛好者可以一起交流學習心得! gp2d12紅外測距傳感器:Arduino  + GP2D12紅外測距傳感器+LCD1602  第2張紅外測距傳感器:Arduino + GP2D12紅外測距傳感器+LCD1602 第2張-傳感器知識網"/>

gp2d12紅外測距傳感器:GP2D12紅外測距傳感器原理與單片機源程序等詳細資料

GP2D12紅外測距傳感器使用介紹
一、“看到”障礙物的眼睛——紅外測距傳感器
機器視覺中最接近人眼的莫過于攝像頭了,可圖像處理小車的“大腦”對付不了,至少目前的“大腦”能力不夠,等進化后也許能夠應付。
為了能“看到”障礙物,小車目前能用的主要是各類測距傳感器,典型的有超聲波和紅外兩種,此外還有利用光線的反射強弱來判斷的,這種方式不具備“測距”功能,但可以判斷有無!因為不同物體表面及顏色反射的能力不同(看后面的數據)。
本文主要討論的是機器人中最常用的紅外測距傳感器  ——  GP2D12。
首先認識一下:
0.png (150.57 KB, 下載次數: 64)
下載附件
2017-11-25 21:29 上傳
模塊共三個接口:紅線---VCC_5V;黑線---GND;黃線—PC5(ADC數據采樣)
將模塊通電,黃線接到ADC通道輸入端即可工作;將采樣得到的電壓值通過填入表格,進行線性化處理,得到線性化公式。通過公式,可將ADC采樣值轉化為距離值。實測,在10cm—30cm范圍內,較為準確,最大誤差在1cm。模塊對被測角度的靈敏度很高,同一位置,不同的角度,誤差可以超過5cm,最好的測量角度是90度。
  之所以選擇 GP2D12  紅外測距傳感器,理由如下:
首先是因為在機器人活動中(不包含工業機器人)這個傳感器最常用,幾乎每家國外的機器人配件供應商都提供。使用英文版搜索一下 “MiniSumo”,你將會發現 GP2D12使用是多么普遍。
其二是因為它的測距范圍和小車的“個頭”及運動速度匹配,對于 10cm 見方、運動速度10 – 30cm/s  的小個頭,能“看到”幾米開外的東西意義不大,而 10 – 80cm  正是它所要關注的范圍。
GP2D12的工作原理我理解為(僅供參考,歡迎指正):
它是由一個紅外發射管和一個 PSD(Position Sensing Device位置敏感檢測裝置)以及相應的計算電路構成,Sharp  公司的 PSD 很有特色,它可以檢測到光點落在它上面的微小位移, 分辨率達微米,GP2D12 正是利用這個特性實現了幾何方式測距。
紅外發射管發出的光束,遇到障礙物反射回來,落在 PSD 上,構成了一個等腰三角形, 借助于 PSD 可以測得三角形的底,而兩個底角是固定的,由發射管確定,此時便可通過底邊 推算出高,也就是我們所要的距離。如下圖所示:
0.png (27.21 KB, 下載次數: 66)
下載附件
2017-11-25 22:12 上傳
測量原理示意圖
 從圖中可以看出,這是一個頂角極銳的等腰三角形,底邊只有2cm  ,高卻要有10 – 80cm,所以 PSD 的分辨率必須極高,否則微小的偏差都會帶來距離的巨大誤差。從這一點也可以得出,它的測距結果很難穩定、精確,畢竟比值太大。
因為 PSD 的尺寸有限,從圖中就很容易理解為何它的測量距離超出范圍后就不可能是有效數據,連趨勢都得不到。
從上述原理描述還可以知道,它不是連續測量,得到底邊長度后,必須經過計算才能得到距離值,然后轉換為模擬信號輸出。
這兩個推論在那篇“Sharp  GP2D12  applicationNote”(應用指南)有所印證,具體表現為它測距的強指向性和輸出的不確定性(噪音高達  200mV,相對于 2.4V 的滿量程輸出而言達5%)。 這篇文章好像是國外一個愛好者寫的,他做了大量的測試,對使用者掌握GP2D12 的性能及合理的使用它極有幫助。
0.png (59.56 KB, 下載次數: 65)
下載附件
2017-11-25 22:16 上傳
總有人問     GP2D12  是否能用于某些場合?如果能仔細吃透上述指標,自然會有答案。 還有人問它與超聲波傳感器那個好,我想這些指標也會告訴你!  至于更詳細的內容,讀者可進一步閱讀GP2D12的數據手冊以及上面介紹的應用指南, 在此我就不再贅述。
  在硬件上,沒有太多的難度,但是要用好GP2D12,軟件上似乎要做些努力,必須解決的有兩個問題:
一是信號的線性化 ,因為輸出與距離的關系是非線性的,為便于程序中使用距離信息,必須將模擬信號轉換為相應得距離值。
二是濾波 ,因為按照上述應用指南的測量分析,GP2D12的輸出噪聲很大;此外,還由于測量的非連續性,導致連續的距離變化對應的輸出為階躍信號,也需要通過濾波將其平滑。
2.1  線性化
關于線性化,開始時我也一籌莫展,曾想用折線近似實現,但嘗試后覺得代碼量太大,而且需要做大量數據采集。
后來在acroname網站上(二年前),發現了一個極好的“東東”  —個用 Excel 制作的電子表,表格的格式如下:

gp2d12-使用表格(本文附件可下載)
0.png (70.06 KB, 下載次數: 108)
下載附件
2017-11-25 21:25 上傳
里面有作者根據 GP2D12 特性建立的數學模型(線性化公式),并預留的使用者輸入參數的地方,只需按其要求填入:
AD 的位數、AD 供電電壓(滿量程),并采集 8 點(10cm 間隔)GP2D12  的輸出電壓, 填入表中,它就可自動生成線性化公式的參數 ,提供了整形和浮點兩種格式,還附有由此產生的結果與實際的偏差表,并用生動的圖形表示,十分直觀、實用。
此表可在embedream的相關資料中下載,本該提供它的原始鏈接,無奈現在沒有了,只找到了一個類似的文檔  —  Sharp IR Range Finder Voltage-to-Range Conversion Article 內容也是討論線性化的,讀者不妨一讀。配合此文也許更容易理解使用那張Excel 表格。
0.png (67 KB, 下載次數: 56)
下載附件
2017-11-25 22:20 上傳
根據上述公式及程序得到的結果如下:
GP2D12 不同顏色測距結果對比
0.png (14.13 KB, 下載次數: 58)
下載附件
2017-11-25 22:22 上傳
第一列為實際距離,第二列障礙物表面為白紙,第三列障礙物為褐色木盒,讀者可比照Excel 表中的數據,可以看出基本吻合。同時還可以從上面數據中看出,GP2D12  確實如其手冊中所說,基本不受障礙物的顏色影響。
0.png (363.2 KB, 下載次數: 51)
下載附件
2017-11-25 22:23 上傳
2.2  濾波
濾波主要解決兩個問題,一是在GP2D12恒定輸出階段,按應用指南的分析,有不小的噪聲,需要通過濾波消除。
二是由于其非連續測量的特性,導致其測量連續變化的距離時,輸出是階躍形式的,這對程序判斷極為不利,為了弱化這個影響,也期望通過濾波實現。
根據 GP2D12 的手冊,其測量周期為  40ms  左右(38ms),綜合小車單片機的內存及處理需求,采用 5ms 采樣一次,取最近 8 次的結果平均值的濾波方式,也就是說,一個測量周期采 8 個數據平均。
這樣處理可以降低噪聲的影響,這點容易理解。至于弱化階躍信號,不知讀者是否認同?
我是這樣考慮:在出現階躍信號時,8 個數據中隨著時間推移,新的信號所占的權重不斷加大,使得信號逐漸從前一個信號平緩的過渡到新的信號上。但是這樣處理,導致了距離信號反映滯后,要到下一個信號快到時,本次的輸出才接近本次的信號。就這一點而言,似 乎有些不盡合理,有待讀者深入探討。
紅外測試數據:10cm   11.55--11.66
15cm  16.15--16.38
16.5cm  17.46--17.92
18cm   20.01--20.13
19cm  19.44--19.81
20cm  20.01--20.15
22cm  21.56--21.82
23cm  23.20--23.66
24.5cm  23.96--24.23
28cm  27.39--27.93
stm32單片機紅外測距源程序如下:
#include "stm32f10x_lib.h"
#include "stdio.h"
#define countof(a)   (sizeof(a) / sizeof(*(a)))
#define TxBufferSize   (countof(TxBuffer) - 1)
u8 TxBuffer[]="
ADC Example1: ADC TO DMA TO UART1
";
u8 TxCounter=0;
#define ADC1_DR_Address    ((u32)0xC)
USART_InitTypeDef USART_InitStructure;
ADC_InitTypeDef ADC_InitStructure;
DMA_InitTypeDef DMA_InitStructure;
vu16 ADC_ConvertedValue;
ErrorStatus HSEStartUpStatus;

void RCC_Configuration(void);
void GPIO_Configuration(void);
void NVIC_Configuration(void);

void Delay_us(unsigned short us)
{
unsigned short i;
while(us--)
{
for(i=0;i<10;i++);    } } void Delay_ms(unsigned short ms) {    unsigned short i;        while(ms--)    {        for(i=0;i

RCC_Configuration();

NVIC_Configuration();

GPIO_Configuration();

USART_InitStructure.USART_BaudRate=9600;
 USART_InitStructure.USART_WordLength=USART_WordLength_8b;
 USART_InitStructure.USART_StopBits=USART_StopBits_1;
 USART_InitStructure.USART_Parity=USART_Parity_No;
 USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
 USART_InitStructure.USART_Mode=USART_Mode_Rx | USART_Mode_Tx;
 USART_InitStructure.USART_Clock=USART_Clock_Disable;
 USART_InitStructure.USART_CPOL=USART_CPOL_Low;
 USART_InitStructure.USART_CPHA=USART_CPHA_2Edge;
 USART_InitStructure.USART_LastBit=USART_LastBit_Disable;

USART_Init(USART1, &USART_InitStructure);

USART_ITConfig(USART1, USART_IT_TXE, ENABLE);
 USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);

USART_Cmd(USART1, ENABLE);

DMA_DeInit(DMA_Channel1);
 DMA_InitStructure.DMA_PeripheralbaseAddr=ADC1_DR_Address;
 DMA_InitStructure.DMA_MemorybaseAddr=(u32)&ADC_ConvertedValue;
 DMA_InitStructure.DMA_DIR=DMA_DIR_PeripheralSRC;
 DMA_InitStructure.DMA_BufferSize=1;
 DMA_InitStructure.DMA_PeripheralInc=DMA_PeripheralInc_Disable;
 DMA_InitStructure.DMA_MemoryInc=DMA_MemoryInc_Disable;
 DMA_InitStructure.DMA_PeripheralDataSize=DMA_PeripheralDataSize_HalfWord;
 DMA_InitStructure.DMA_MemoryDataSize=DMA_MemoryDataSize_HalfWord;
 DMA_InitStructure.DMA_Mode=DMA_Mode_Circular;
 DMA_InitStructure.DMA_Priority=DMA_Priority_High;
 DMA_InitStructure.DMA_M2M=DMA_M2M_Disable;
 DMA_Init(DMA_Channel1, &DMA_InitStructure);

DMA_Cmd(DMA_Channel1, ENABLE);

ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;
 ADC_InitStructure.ADC_ScanConvMode=ENABLE;
 ADC_InitStructure.ADC_ContinuousConvMode=ENABLE;
 ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;
 ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;
 ADC_InitStructure.ADC_NbrOfChannel=1;
 ADC_Init(ADC1, &ADC_InitStructure);

ADC_RegularChannelConfig(ADC1, ADC_Channel_15, 1, ADC_SampleTime_55Cycles5);

ADC_DMACmd(ADC1, ENABLE);

ADC_Cmd(ADC1, ENABLE);

ADC_ResetCalibration(ADC1);

while(ADC_GetResetCalibrationStatus(ADC1));

ADC_StartCalibration(ADC1);

while(ADC_GetCalibrationStatus(ADC1));

ADC_SoftwareStartConvCmd(ADC1, ENABLE);
 for(i=0;i

Tmp_Dat=  ADC_ConvertedValue;
distance=(1/(Tmp_Dat*0.+0.))-4.0;
printf("
%ld
",Tmp_Dat);
  printf("%.2f",distance);

Tmp_Dat=Tmp_Dat*3300/0x0fff;
TxBuffer[0]=Tmp_Dat/1000+'0';
TxBuffer[1]='.';
TxBuffer[2]=(Tmp_Dat%1000)/100+'0';
TxBuffer[3]=(Tmp_Dat%100)/10+'0';
TxBuffer[4]=Tmp_Dat%10+'0';
TxBuffer[5]='V';
USART_SendData(USART1, '[');
while (!(USART1->SR & USART_FLAG_TXE));   //等待緩沖區空
while (!(USART1->SR & USART_FLAG_TC));   //等待發送完成
USART_SendData(USART1, TxBuffer[0]);
while (!(USART1->SR & USART_FLAG_TXE));   //等待緩沖區空
while (!(USART1->SR & USART_FLAG_TC));   //等待發送完成
USART_SendData(USART1, TxBuffer[1]);
while (!(USART1->SR & USART_FLAG_TXE));   //等待緩沖區空
while (!(USART1->SR & USART_FLAG_TC));   //等待發送完成
USART_SendData(USART1, TxBuffer[2]);
while (!(USART1->SR & USART_FLAG_TXE));   //等待緩沖區空
while (!(USART1->SR & USART_FLAG_TC));   //等待發送完成
USART_SendData(USART1, TxBuffer[3]);
while (!(USART1->SR & USART_FLAG_TXE));   //等待緩沖區空
while (!(USART1->SR & USART_FLAG_TC));   //等待發送完成
USART_SendData(USART1, TxBuffer[4]);
while (!(USART1->SR & USART_FLAG_TXE));   //等待緩沖區空
while (!(USART1->SR & USART_FLAG_TC));   //等待發送完成
USART_SendData(USART1, TxBuffer[5]);
while (!(USART1->SR & USART_FLAG_TXE));   //等待緩沖區空
while (!(USART1->SR & USART_FLAG_TC));   //等待發送完成
USART_SendData(USART1, ']');
while (!(USART1->SR & USART_FLAG_TXE));   //等待緩沖區空
while (!(USART1->SR & USART_FLAG_TC));   //等待發送完成
printf("
");
 }
}
void RCC_Configuration(void)
{

RCC_DeInit();

RCC_HSEConfig(RCC_HSE_ON);

HSEStartUpStatus=RCC_WaitForHSEStartUp();
 if(HSEStartUpStatus==SUCCESS)
 {

FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

FLASH_SetLatency(FLASH_Latency_2);

RCC_HCLKConfig(RCC_SYSCLK_Div1);

RCC_PCLK2Config(RCC_HCLK_Div1);

RCC_PCLK1Config(RCC_HCLK_Div2);

RCC_ADCCLKConfig(RCC_PCLK2_Div4);

RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_7);

RCC_PLLCmd(ENABLE);

while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET)
{
}

RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

while(RCC_GetSYSCLKSource() !=0x08)
{
}
 }

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOC, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_USART1, ENABLE);
}
void GPIO_Configuration(void)
{
 GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;
 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;
 GPIO_Init(GPIOC, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;
 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
 GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;
 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;
 GPIO_Init(GPIOA, &GPIO_InitStructure);
}
void NVIC_Configuration(void)
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
0.png (60.43 KB, 下載次數: 88)
下載附件
2017-11-25 22:44 上傳
所有資料51hei提供下載:
紅外模塊.zip
(2.25 MB, 下載次數: 507)
2017-11-25 15:43 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
gp2d12紅外<a title=測距傳感器:Arduino + GP2D12紅外測距傳感器+LCD1602 第3張" title="gp2d12紅外測距傳感器:Arduino + GP2D12紅外測距傳感器+LCD1602 第3張-傳感器知識網"/>

gp2d12紅外測距傳感器:紅外測距儀(KTR-GP2D12紅外測距傳感器)使用說明書

《紅外測距儀(KTR-GP2D12紅外測距傳感器)使用說明書》由會員分享,可在線閱讀,更多相關《紅外測距儀(KTR-GP2D12紅外測距傳感器)使用說明書(2頁珍藏版)》請在人人文庫網上搜索。

紅外測距儀(KTR-GP2D12紅外測距傳感器)使用說明書1.概述紅外測距儀是一種光學測量距離的工具。是利用光的反射強度來測定距離的,具有精度高、低功耗、體積小,不受干擾等特點。當有障礙物在紅外測距儀的一到五米的距離內,測距儀會把距離轉換成電信號輸出。輸出方式可根據用戶來定。可廣泛應用在小區路口、收費站的來車檢測,家居安防,短距離的測量等。2.技術參數電源輸入:DC 924V電流: 50mA功耗:小于1W測量距離D:1D5 米誤差: 0.01米輸出信號:TTL電平(0/5V),RS485(可選)。使用溫度:060儲存溫度:-4070電氣接口:4針航空頭 3.接線說明 顏色棕色黑色藍色黃色信號DC-INGNDS+S-GND說明電源正輸入電源地電平信號輸出信號地4.注意事項 必須保持產品表面干凈,否則會影響測量距離。5、型號:KTR-GP2D12(紅外測距傳感器)6、品牌:KITOZER(開拓者)

下一篇: PLC、DCS、FCS三大控

上一篇: 電氣控制線路圖控制原

推薦產品

更多
主站蜘蛛池模板: 亚洲欧美一区在线 | 宣言个人资料 | 成年人在线播放 | 精品欧美一区二区三区在线 | 美女福利视频国产免费观看 | 国产在线精品视频 | 欧美成人免费在线视频 | 国产福利在线观看精品 | 久久久久成人免费 | 日本高清在线观看视频 | 欧美三级在线播放 | 伊人精品影院 | 亚洲国产精选 | 久久影城 | 国产电影精品 | 开操网 | 日韩专区在线观看 | 久久九九国产精品怡红院 | 一区二区三区四区国产 | 日本成熟视频tube~be | 九色成人蝌蚪国产精品电影在线 | 五月色播影音在线观看 | 黄色av网站在线免费观看 | 波多野结衣一区二区三区 | 五月天综合婷婷 | 日本在线观看免费视频 | 在线国产视频 | 国产精品久久久久不卡 | 欧美一区二区免费电影 | 久久久精品视频免费观看 | 国模沟沟一区二区三区 | 江苏少妇性BBB搡BBB爽爽爽 | 成人性视频免费网站 | 操天天操 | 日韩伦理一区二区三区 | 亚洲人与黑人xxxx | 国产精品久久久久无毒 | 欧美精| 欧美三级视频 | 久久国产婷婷国产香蕉 | 国产精品一区二区三区四区 |