极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 18047|回复: 2

PPM信号怎么处理?(遥控器音频教练口控制arduino)

[复制链接]
发表于 2013-3-17 01:52:43 | 显示全部楼层 |阅读模式
本帖最后由 O_o 于 2013-3-18 13:14 编辑



变成无限累加 时间了  要控制 必须 记录每个通道的时间。  
每通道信号间隔260μm   20ms 更新一次


  1. int PPM = 2;
  2. unsigned long  asshoeltime;
  3. unsigned long  asshoeltime2;

  4. void setup()
  5. {
  6.    Serial.begin(9600);
  7.    pinMode(PPM, INPUT);
  8.    attachInterrupt(0, fuck1, RISING);
  9.    attachInterrupt(0, fuck2, FALLING);
  10. }

  11. void fuck1()
  12. {
  13.   asshoeltime = micros();                                 
  14. }

  15. void fuck2()
  16. {
  17.   asshoeltime2 = micros() - asshoeltime;

  18. }


  19. void loop() {
  20.      Serial.print("  ");
  21.      Serial.print(asshoeltime2);        

  22. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

 楼主| 发表于 2013-3-18 13:14:49 | 显示全部楼层
感谢     http://www.geek-workshop.com/thread-2408-1-1.html
感谢群里面的各位

  1. int PPM = 2;
  2. unsigned long  asshoeltime;
  3. unsigned long  asshoeltime2;
  4. int ass =0;
  5. int C1=0;
  6. int C2=0;
  7. int C3=0;
  8. int C4=0;
  9. int C5=0;
  10. int C6=0;

  11. void setup()
  12. {
  13.    Serial.begin(9600);
  14.    pinMode(PPM, INPUT);
  15.    attachInterrupt(0, fuck, CHANGE);
  16. }

  17. void fuck() {
  18.   
  19.    if (digitalRead(PPM) == HIGH)
  20.                 asshoeltime = micros();   
  21.   else{
  22.   
  23.   asshoeltime2 = micros() - asshoeltime;
  24.   ass=++ass;
  25.     if (ass==8){
  26.     ass=1;
  27.   }
  28.     if (asshoeltime2>3000){
  29.     ass=7;
  30.    }
  31.    if (ass==1){
  32.      C1=asshoeltime2;
  33.    }
  34.    if (ass==2){
  35.      C2=asshoeltime2;
  36.    }     
  37.    if (ass==3){
  38.      C3=asshoeltime2;
  39.    }
  40.    if (ass==4){
  41.      C4=asshoeltime2;
  42.    }
  43.    if (ass==5){
  44.      C5=asshoeltime2;
  45.    }
  46.    if (ass==6){
  47.      C6=asshoeltime2;
  48.    }
  49.   }
  50. }

  51. void loop() {
  52.    Serial.print(C1);
  53.    Serial.print(" ");
  54.     Serial.print(C2);
  55.     Serial.print(" ");
  56.      Serial.print(C3);
  57.      Serial.print(" ");
  58.       Serial.print(C4);
  59.       Serial.print(" ");
  60.        Serial.print(C5);
  61.        Serial.print(" ");
  62.         Serial.print(C6);
  63.         Serial.println(" ");
  64.         delay(100);
  65. }
复制代码
回复 支持 反对

使用道具 举报

发表于 2013-7-5 23:03:36 | 显示全部楼层
楼主这个用的什么示波器?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-5 13:50 , Processed in 0.035645 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表