sanri14 发表于 2018-8-9 15:25:12

用蓝牙实时模仿人手的机械手

本帖最后由 sanri14 于 2018-8-9 20:10 编辑

弯曲传感器通过蓝牙HC-05实时模仿人手时,接收的数据跟发送的数据不同,有哪位大神帮忙看看要怎么处理?发送数据用arduino UNO板
代码如下

int a,b,c,d,e;

void setup() {
Serial.begin(38400);
}

//本段代码实现功能是读取弯曲传感器数值。
void loop() {
a=analogRead(A0);         //读取A0端口的传感器的数值,并赋值为a。
b=analogRead(A1);         //以下均同上。
c=analogRead(A5);
d=analogRead(A3);
e=analogRead(A4);

//本段代码实现功能是由发送端向接收端发送数值的代码。

Serial.println('<');
Serial.println(a);
Serial.println(b);
Serial.println(c);
Serial.println(d);
Serial.println(e);
}




接收数据用arduino nano板
代码如下
#include<Servo.h>
Servo s1,s2,s3,s4,s5;                     //舵机
unsigned int val;
int a,b,c,d,e;
int val1,val2,val3,val4,val5;
char ch;
void setup() {
Serial.begin(38400);
s1.attach(6);                           //舵机角度的数值函数
s2.attach(7);
s3.attach(8);
s4.attach(9);
s5.attach(10);
}


void loop() {
if(Serial.available()>0)
{
    ch=Serial.read();
    if(ch=='<')
    {
       a=Serial.parseInt();
       b=Serial.parseInt();
       c=Serial.parseInt();
       d=Serial.parseInt();
       e=Serial.parseInt();

    }
}
Serial.println('<');
Serial.println(a);
Serial.println(b);
Serial.println(c);
Serial.println(d);
Serial.println(e);   

   val1 = analogRead(a);            
   val1= map(val1,1024,0, 0, 130);   
   s1.write(val1);   

   val2 = analogRead(b);            
   val2= map(val2, 1024, 0, 0, 130);   
   s2.write(val2);   

   val3 = analogRead(c);            
   val3= map(val3, 1024, 0, 0, 130);   
   s3.write(val3);

   val4 = analogRead(d);         
   val4= map(val4, 1024, 0, 0, 130);   
   s4.write(val4);

   val5 = analogRead(e);            
   val5= map(val5, 0, 1024 , 0, 120);   
   s5.write(val5);
   delay(10);                     

}




sanri14 发表于 2018-8-9 20:06:55

                        
发送的数据                                 接收的数据

两个数据不同。
蓝牙波特率是:38400,0,0

LY2 发表于 2018-9-4 19:50:22

你这好像都没把蓝牙写进去,同步机械手我已经做出来了,如果有需要,请加qq:2422022898

gada888 发表于 2019-7-15 10:20:58

没看到蓝牙部分代码
页: [1]
查看完整版本: 用蓝牙实时模仿人手的机械手