2017-03-05 36 views
1

我必须发送3个由3个电位计给出的值,通过Arduino Uno连接,并将它们发送给另一个Arduino Uno,并进行串行通信。接收到的值必须分布在3个伺服电机中,以便每个旋钮都能够控制伺服电机的运动。 该程序存在的问题是接收到的数值没有正确分配(例如,电位计1的值应由伺服电机3读取或其他情况)。我问我是否可以帮助将接收到的数据与分配的数据同步到伺服电机。提前致谢。发布从2个arduino uno的串行通信接收到的数据

速写Arduino的与电位计:

#include <SoftwareSerial.h> 
#define RX 2 //Pin tx 
#define TX 3 //Pin rx 
#define POTPIN A0 
#define POTPIN2 A1 
#define POTPIN3 A2 

SoftwareSerial BTserial(RX, TX); 

int lettura_pot; 
int lettura_pot2; 
int lettura_pot3; 
byte val_servo; 
byte val_servo2; 
byte val_servo3; 

void setup() 
{ 
    Serial.println("Inizializzazione seriale..."); 
    Serial.begin(9600); 
    BTserial.begin(9600); 
} 

void loop() 
{ 
    BTserial.write(255); /* synch symbol */ 

    lettura_pot = analogRead(POTPIN); 
    val_servo=map(lettura_pot,0,1023,0,180); 
    BTserial.write(val_servo); 
    Serial.println(val_servo); 

    lettura_pot2 = analogRead(POTPIN2); 
    val_servo2=map(lettura_pot2,0,1023,0,180); 
    BTserial.write(val_servo2); 
    Serial.println(val_servo2); 

    lettura_pot3 = analogRead(POTPIN3); 
    val_servo3=map(lettura_pot3,0,1023,0,180); 
    BTserial.write(val_servo3); 
    Serial.println(val_servo3); 
} 

速写Arduino的与伺服电机:

#include <SoftwareSerial.h> 
#include<Servo.h> 
SoftwareSerial BTserial(2, 3); 
Servo myservo, myservo2, myservo3; 

byte val_servo,val_servo2,val_servo3,a; 

void setup() { 
    Serial.begin(9600); 
    BTserial.begin(9600); 
    myservo.attach(9); 
    myservo2.attach(10); 
    myservo3.attach(11); 
} 

void loop() { 

    if (BTserial.available() > 0) { 
     if (BTserial.available() == 255) { /* synch */ 
      val_servo = BTserial.read(); 
      val_servo2 = BTserial.read(); 
      val_servo3 = BTserial.read(); 
     } 
     Serial.print("SERVO1:"); 
     Serial.println(val_servo); 
     Serial.print("SERVO2:"); 
     Serial.println(val_servo2); 
     Serial.print("SERVO3:"); 
     Serial.println(val_servo3); 

     myservo.write(val_servo); 
     myservo2.write(val_servo2); 
     myservo3.write(val_servo3); 
     BTserial.flush(); 
    } 
} 

回答

0

主代码(没有改性壳聚糖):

#include <SoftwareSerial.h> 
#define RX 2 //Pin tx 
#define TX 3 //Pin rx 
#define POTPIN A0 
#define POTPIN2 A1 
#define POTPIN3 A2 

SoftwareSerial BTserial(RX, TX); 

int lettura_pot; 
int lettura_pot2; 
int lettura_pot3; 
byte val_servo; 
byte val_servo2; 
byte val_servo3; 

void setup() 
{ 
    Serial.println("Inizializzazione seriale..."); 
    Serial.begin(9600); 
    BTserial.begin(9600); 
} 

void loop() 
{ 
    BTserial.write(255); 
    lettura_pot = analogRead(POTPIN); 
    val_servo=map(lettura_pot,0,1023,0,180); 
    BTserial.write(val_servo); 
    Serial.println(val_servo); 

    lettura_pot2 = analogRead(POTPIN2); 
    val_servo2=map(lettura_pot2,0,1023,0,180); 
    BTserial.write(val_servo2); 
    Serial.println(val_servo2); 

    lettura_pot3 = analogRead(POTPIN3); 
    val_servo3=map(lettura_pot3,0,1023,0,180); 
    BTserial.write(val_servo3); 
    Serial.println(val_servo3); 


} 

从编码(改性壳聚糖):

#include <SoftwareSerial.h> 
#include<Servo.h> 
SoftwareSerial BTserial(2, 3); 
Servo myservo, myservo2, myservo3; 

byte val_servo,val_servo2,val_servo3,a; 

void setup() { 
    // Open serial communications and wait for port to open: 
    Serial.begin(9600); 
    BTserial.begin(9600); 
    myservo.attach(9); 
    myservo2.attach(10); 
    myservo3.attach(11); 
} 

void loop() { 
    // Read serial input: 
    if (BTserial.available() > 0) { 
    byte synch_symbol = BTserial.read(); 

    if (synch_symbol == 255) { 
    while (BTserial.available() < 3) { }; /* wait for values */ 
    val_servo = BTserial.read(); 
    val_servo2 = BTserial.read(); 
    val_servo3 = BTserial.read(); 

    /* do something with values */ 
} 

    Serial.print("SERVO1:"); 
    Serial.println(val_servo); 
    Serial.print("SERVO2:"); 
    Serial.println(val_servo2); 
    Serial.print("SERVO3:"); 
    Serial.println(val_servo3); 

    myservo.write(val_servo); 
    myservo2.write(val_servo2); 
    myservo3.write(val_servo3); 
    BTserial.flush(); 
} 
} 
+0

注意:你不应该在这里留下这段代码,因为它不能回答你的问题。 –

相关问题