极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 17153|回复: 0

arduino接收呼吸传感器数据的问题

[复制链接]
发表于 2016-11-18 15:37:57 | 显示全部楼层 |阅读模式
代码如下,希望利用接收的呼吸数据转化为PWM控制电机的速度。

int motor=11;
int PWM=0;
void setup() {
Serial1.begin(115200);
Serial.begin(115200);
Serial1.write(0xFF);
Serial1.write(0xCC);
Serial1.write(0x03);
Serial1.write(0xA3);
Serial1.write(0xA0);//给传感器发送指令,让其工作,发送数据。
delay(1000);
  }

byte jieshou[5];
byte flag=0;
byte inByte;

void loop() {

    if (Serial1.available() > 0&&flag==0)
    {
           inByte=Serial1.read();
           delay(10);
           if(inByte==0xcc)
           {
               for(int i=0;i<5;i++)
               {
                   if(Serial1.available())
                   jieshou[i]=Serial1.read();
                   delay(10);
               }
              if(Serial1.available())
              inByte=Serial.read();
              delay(10);
              if(inByte==0xff)
                 flag=1;  
           }            
    }
    if(flag==1)
    {
           int high=jieshou[3];
           int low=jieshou[4];
           int x=(high<<8)|low;//将传感器发送的十六进制数据转化为十进制
         
          PWM=map(x,0,1023,0,255);
        analogWrite(motor,PWM);
          Serial.print(PWM);
          for(int i=0;i<5;i++)
          {
            //  Serial.write(jieshou[i]);
              jieshou[i]=0x00;
          }
          flag=0;
    }
}

但是接收的数据在串口助手上只有前几个是正确的,后面的就不知道是什么了,如下:
0
140
138
135
131
128
124
121
118
-3254
-3254
-3254
-3254
-3254
-3254
-3254
-3254
-3254
-3254
-3254
-3254
-3254
-3254
-3254
-3254
-3254
-3254
-3254
-3254
-3254
-12
-62
-3254
-3254
-3254
-3254
-3254
请问是什么原因呢?
回复

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-10 02:28 , Processed in 0.048969 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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