在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            單片機解碼PPM信號

            作者: 時間:2016-11-27 來源:網(wǎng)絡(luò) 收藏
            無線遙控就是利用高頻無線電波實現(xiàn)對模型的控制。如天地飛的的6通道2.4 GHz遙控器,一套200多塊,具有自動跳頻抗干擾能力,從理論上講可以讓上百人在同一場地同時遙控自己的模型而不會相互干擾。而且在遙控距離方面也頗具優(yōu)勢,2.4 GHz遙控系統(tǒng)的功率僅僅在100 mW以下,而它的遙控距離可以達到1km以上。


            遙控器發(fā)射機、接收機原理

            每個通道信號脈寬0~2ms,變化范圍為1~2ms之間。1幀PPM信號長度為20ms,理論上最多可以有10個通道,但是同步脈沖也需要時間,模型遙控器最多9個通道。

            本文引用地址:http://www.biyoush.com/article/201611/322110.htm

            PPM格式


            只連接了通道3(油門)


            arduino要測量脈寬時間很簡單。有專門的庫函數(shù)pulseIn( )。問題在于這個庫函數(shù)使用查詢方式,程序在測量期間一直陷在這里,CPU利用率太低。因此下面代碼采用中斷方式,效率很高。
            代碼參考:http://arduino.cc/forum/index.php/topic,42286.0.html
            ARDUINO 代碼復(fù)制打印
            1. //read PPM signals from 2 channels of an RC reciever
            2. //http://arduino.cc/forum/index.php/topic,42286.0.html
            3. //接收機兩個通道分別接arduino的數(shù)字口2、3腳
            4. //Most Arduino boards have two external interrupts: numbers 0 (on digital pin 2) and 1 (on digital pin 3).
            5. //The Arduino Mega has an additional four: numbers 2 (pin 21), 3 (pin 20), 4 (pin 19), and 5 (pin 18).
            6. intppm1 =2;
            7. intppm2 =3;
            8. unsignedlongrc1_PulseStartTicks,rc2_PulseStartTicks;
            9. volatileintrc1_val, rc2_val;
            10. voidsetup(){
            11. Serial.begin(9600);
            12. //PPM inputs from RC receiver
            13. pinMode(ppm1,INPUT);
            14. pinMode(ppm2,INPUT);
            15. // 電平變化即觸發(fā)中斷
            16. attachInterrupt(0, rc1, CHANGE);
            17. attachInterrupt(1, rc2, CHANGE);
            18. }
            19. voidrc1()
            20. {
            21. // did the pin change to high or low?
            22. if(digitalRead(ppm1)==HIGH)
            23. rc1_PulseStartTicks =micros();// store the current micros() value
            24. else
            25. rc1_val =micros()- rc1_PulseStartTicks;
            26. }
            27. voidrc2()
            28. {
            29. // did the pin change to high or low?
            30. if(digitalRead(ppm2)==HIGH)
            31. rc2_PulseStartTicks =micros();
            32. else
            33. rc2_val =micros()- rc2_PulseStartTicks;
            34. }
            35. voidloop(){
            36. //print values
            37. Serial.print("channel 1:");
            38. Serial.print(rc1_val);
            39. Serial.print("");
            40. Serial.print("channel 2:");
            41. Serial.println(rc2_val);
            42. }

            上一頁 1 2 下一頁

            關(guān)鍵詞: 單片機解碼PPM信

            評論


            技術(shù)專區(qū)

            關(guān)閉