您的位置 首页 数字

单片机解码PPM信号

无线遥控就是利用高频无线电波实现对模型的控制。如天地飞的的6通道24GHz遥控器,一套200多块,具有自动跳频抗干扰能力,从理论上讲可以

无线遥控便是运用高频无线电波完成对模型的操控。如六合飞的的6通道2.4 GHz遥控器,一套200多块,具有主动跳频抗搅扰才能,从理论上讲能够让上百人在同一场所一起遥控自己的模型而不会彼此搅扰。并且在遥控间隔方面也颇具优势,2.4 GHz遥控体系的功率仅仅在100 mW以下,而它的遥控间隔能够到达1km以上。

遥控器发射机、接收机原理

每个通道信号脉宽0~2ms,改变规模为1~2ms之间。1帧PPM信号长度为20ms,理论上最多能够有10个通道,可是同步脉冲也需求时刻,模型遥控器最多9个通道。

PPM格局

只连接了通道3(油门)

arduino要丈量脉宽时刻很简单。有专门的库函数pulseIn( )。问题在于这个库函数运用查询方法,程序在丈量期间一向陷在这儿,CPU运用率太低。因而下面代码选用中止方法,功率很高。
代码参阅:http://arduino.cc/forum/index.php/topic,42286.0.html

ARDUINO 代码仿制打印


  1. //read PPM signals from 2 channels of an RC reciever
  2. //http://arduino.cc/forum/index.php/topic,42286.0.html
  3. //接收机两个通道别离接arduino的数字口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. // 电平改变即触发中止
  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. }

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/shuzi/256832.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部