zhihuazhu 发表于 2016-11-18 15:37:57

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

代码如下,希望利用接收的呼吸数据转化为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;
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=Serial1.read();
                   delay(10);
               }
            if(Serial1.available())
            inByte=Serial.read();
            delay(10);
            if(inByte==0xff)
               flag=1;
         }            
    }
    if(flag==1)
    {
         int high=jieshou;
         int low=jieshou;
         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);
            jieshou=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
请问是什么原因呢?
页: [1]
查看完整版本: arduino接收呼吸传感器数据的问题