• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Arduino平臺的pulseIn()函數(shù)研究

      2019-12-25 01:14:48景蕾
      無線互聯(lián)科技 2019年20期

      景蕾

      摘? ?要:隨著無線電遙控技術(shù)的迅猛發(fā)展,日常生活已經(jīng)越來越離不開無線電遙控,如遙控監(jiān)視、報警、航模等。在實際應(yīng)用時,航模遙控器將操作者的指令以脈位調(diào)制信號的形式發(fā)出,而后解析成對應(yīng)通道的脈寬調(diào)制信號來實現(xiàn)舵機的控制,從而完成航?;竟δ芸刂?。因此,脈寬調(diào)制信號中高電平的幅度和占空比的測量精度直接影響了航模的控制精度。文章通過研究給出了Arduino內(nèi)置pulseIn()函數(shù)的測試方法,并借助示波器得到了各通道脈寬調(diào)制信號實測結(jié)果,通過算法測量與實測結(jié)果對比,驗證了pulseIn()函數(shù)測試算法,對后續(xù)應(yīng)用有一定的指導(dǎo)意義。

      關(guān)鍵詞:Arduino;占空比;pulseIn函數(shù)

      1? ? Adruino開發(fā)平臺

      1.1? Arduino開發(fā)板和Arduino? IDE

      Arduino[1-2]是一款便捷、靈活、入門簡單的開源電子開發(fā)平臺。它包含硬件(各種型號的微處理器、Arduino控制板)和軟件(編程接口、Arduino IDE)兩部分。通過搭載各種類型傳感器,例如溫濕度傳感器、超聲波傳感器、霍爾傳感器等,Arduino可以方便地獲取各類環(huán)境信息,并通過使用各類開源庫函數(shù),輕松實現(xiàn)數(shù)據(jù)的讀取、融合、處理和輸出,最終滿足設(shè)計者的需要。Arduino安裝目錄下自帶了很多標準庫,通過使用這些標準庫,函數(shù)經(jīng)過系統(tǒng)科學(xué)的封裝,使得用戶只要通過操作頂層簡單的函數(shù),就可以直接實現(xiàn)某種功能。

      1.2? Arduino? UNO

      Arduino UNO是Arduino系列開發(fā)平臺中的一個重要版本,也是從事Arduino開發(fā)的一個標準參考模板。UNO使用ATmega328單片機作為主控芯片,具有20路輸入/輸出端口,端口最大驅(qū)動能力40 mA,包含14路(0~13引腳)數(shù)字輸入/輸出端口,6路(3,5,6,9,10,11引腳)可直接作為脈寬調(diào)制(Pulse-Width modulationtion,PWM)輸出,6路(A0~A5)10位模擬輸入/輸出端口,同時還包含一個ICSP header、一個復(fù)位按鈕、一個SPI接口、一個兼容串口和IIC接口。

      2? ? 航模遙控器信號

      操作者通過遙控器發(fā)射控制信號,經(jīng)過接收機接受處理后,送給Arduino控制板進行處理,可以完成電機控制、燈光控制、液晶顯示等諸多功能。因此,掌握Arduino對遙控接收機信號的捕獲和處理顯得尤為重要。

      部分航模遙控器是通過將遙控的控制桿信號或撥動開關(guān)信號,經(jīng)過處理后形成周期為20 ms的脈位調(diào)制(Pulse Position Modulation,PPM)[3]信號,并使用2.4 GHz頻率的載波調(diào)制后發(fā)送給接收機,接收機將接收到的信號進行濾波、解調(diào),形成占空比可變的、周期為20 ms的各控制通道的脈沖寬度調(diào)制(Pulse Width Modulation,PWM)[4]信號。PWM信號的高電平時間(以ms為單位)對應(yīng)著遙控器控制桿的行程,其值范圍1 000~2 000不等,實際操作時,當遙控器控制桿在最低端,接收機輸出值為1 000/20 000左右,即占空比為5%左右的PWM信號;當控制桿在最高端,其輸出值為2 000/20 000,即占空比為10%左右的PWM信號,控制桿中間的值對應(yīng)的PWM信號占空比在最低和最高占空比之間。

      接收機將遙控的各通道控制信號解析后,送到Arduino開發(fā)板的模擬信號接收引腳進行后續(xù)的處理。

      本文以Arduino UNO控制板為例,對遙控器接收機信號進行實際解析。

      遙控器接收機各通道連接在UNO的模擬端口上。軟件設(shè)計時,通過Arduino的pinMode()內(nèi)置函數(shù)實現(xiàn)對某個模擬引腳的輸入設(shè)置。void pinMode(uint8 pin, WiringPinMode mode)函數(shù)有兩個參數(shù):pin為引腳編號。mode為引腳的輸入輸出模式,即INPUT和OUTPUT。

      遙控器各通道的控制信號,最終以PWM信號的形式被UNO的主控芯片讀取,其控制量的大小取決于PWM信號中高電平的幅度和占空比。因此,在對模擬的模式進行設(shè)置后,需要進一步獲取PWM信號的高電平持續(xù)時間,以便計算出輸出端的控制信號大小。假設(shè)一個標準的PWM信號幅值為A,其信號周期為T,高電平時間為t。將其轉(zhuǎn)化為模擬×信號的有效值A(chǔ)V=A×,AV值的大小將直接決定輸入端口的驅(qū)動能力大小。

      Arduino內(nèi)置函數(shù)pulseIn(pin, value, timeout),pin為想要讀取的引腳的標號,value為想要讀取的是高電平時間還是低電平時間,timeout表示一次脈沖所持續(xù)的微秒數(shù),如果在timeout時間內(nèi)脈沖沒有結(jié)束,則函數(shù)返回0,正常情況返回高低電平持續(xù)時間,單位為ms(10 ms~3 min)。因此,利用pulseIn()函數(shù),用戶可以很輕松地獲取到某個引腳的高低電平時間。

      3? ? pulseIn()函數(shù)測試

      本文對該函數(shù)的輸出結(jié)果進行了實際測試,測試平臺的搭建包括:某型遙控(含接收機)一部,500 MHz示波器一臺。

      將接收機和Arduino UNO連接好后,用pulseIn()函數(shù)測試遙控器3通道搖桿最低點、中點、最高點的輸出值,通過IDE自帶的串口監(jiān)視器觀察其輸出值。

      將3通道搖桿拉至最低,使用pulseIn()函數(shù)得到高電平時間為992 μs;使3通道搖桿自回中,pulseIn()函數(shù)得到高電平時間為1 505 μs;將3通道搖桿拉至最高,pulseIn()函數(shù)的到高電平時間為2 008 μs。使用pulseIn()函數(shù)測量的同時,將3通道的輸出信號連接到示波器,得到上述3種情況的波形圖。從圖1可以看到,搖桿最低時,值為1.00 ms;從圖2可以看到,自回中時,值為1.51 ms;從圖3可以看到,搖桿最高時,值為2.02 ms。由3次結(jié)果可以看出,PWM波形存在27 μs的上升時間和30 μs的下降時間,其誤差范圍在10-3 ms級上。

      通過上述測試結(jié)果可知,如果用pulseIn()函數(shù)進行較高頻率周期信號測量,在進行信號上升沿和下降沿的處理時,會存在一定誤差。

      4? ? 結(jié)語

      本文對基于Arduino平臺的常見遙控器信號進行了解析,給出了函數(shù)pulseIn()的測量方法,并對Arduino內(nèi)置函數(shù)pulseIn()進行了實際測量,結(jié)合500 MHz示波器數(shù)值得到了測量值,對后續(xù)Arduino平臺的pulseIn()函數(shù)應(yīng)用有一定的指導(dǎo)意義。

      [參考文獻]

      [1]蔡睿妍.Arduino的原理及應(yīng)用[J].電子設(shè)計工程,2012(16):155-157.

      [2]楊繼志,郭敬.Arduino的互動產(chǎn)品平臺創(chuàng)新設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,2012(4):39-41.

      [3]向勁松,肖剛.PPM與LDPC光通信系統(tǒng)中脈沖展寬效應(yīng)補償辦法[J].光通信研究,2016(4):60-62,71.

      [4]李彩俠,李屹坤.一種無刷直流電機四象限PWM調(diào)制方式的分析和設(shè)計[J].集成電路應(yīng)用,2019(6):122-124.

      乌什县| 苏尼特左旗| 肇东市| 德格县| 沙雅县| 大厂| 甘泉县| 定远县| 汉川市| 松阳县| 驻马店市| 丰城市| 双桥区| 晋中市| 宣化县| 昭通市| 满城县| 开江县| 宁远县| 绵竹市| 滨州市| 调兵山市| 贵溪市| 基隆市| 礼泉县| 九台市| 历史| 阜南县| 惠水县| 武平县| 邯郸县| 青神县| 呈贡县| 广宗县| 铁岭县| 江陵县| 中江县| 雅江县| 高州市| 奉新县| 兴文县|