Arduino 到 Arduino 通过 IR 的通信不起作用

问题描述 投票:0回答:0

我有一个arduino uno,还有一个使用arduino uno芯片的romeo。我想使用 TX/RX 引脚在两块板之间进行通信。当我尝试我制作的代码时,它不起作用。 我尝试了这些代码,但它们没有用:

大师uno;

`void setup()
{
  pinMode(A0, INPUT);
  pinMode(A1, INPUT);
  Serial.begin(9600);
  pinMode(A2, INPUT);
  pinMode(A3, INPUT);
}

void loop()
{
  if ((analogRead(A0) < 520 && analogRead(A0) > 500) && (analogRead(A1) < 520 && analogRead(A1) > 500)) {
    Serial.println("0x0");
  }
  if (analogRead(A0) > 522) {
    Serial.println("0x1");
  }
  if (analogRead(A0) < 500) {
    Serial.println("0x2");
  }
  if (analogRead(A1) > 522) {
    Serial.println("0x4");
  }
  if (analogRead(A1) < 500) {
    Serial.println("0x3");
  }
  if (analogRead(A2) > 522) {
    Serial.println("0x5");
  }
  if (analogRead(A2) < 500) {
    Serial.println("0x6");
  }
  if (analogRead(A3) > 522) {
    Serial.println("0x7");
  }
  if (analogRead(A3) < 500) {
    Serial.println("0x8");
  }
  if ((analogRead(A2) < 520 && analogRead(A2) > 500) && (analogRead(A3) < 520 && analogRead(A3) > 500)) {
    Serial.println("0x0");
  }
  delay(10);
}`

奴隶联合国;

`#include <Servo.h>
int E1 = 5;     //M1 Speed Control
int E2 = 6;     //M2 Speed Control
int M1 = 4;    //M1 Direction Control
int M2 = 7;    //M1 Direction Control
Servo servo_0;
Servo servo_1;
int sr1 = 0;
int sr2 = 0;

///For previous Romeo, please use these pins.
//int E1 = 6;     //M1 Speed Control
//int E2 = 9;     //M2 Speed Control
//int M1 = 7;    //M1 Direction Control
//int M2 = 8;    //M1 Direction Control


void stop(void)                    //Stop
{
  digitalWrite(E1,LOW);
  digitalWrite(E2,LOW);
}
void advance(char a,char b)          //Move forward
{
  analogWrite (E1,a);      //PWM Speed Control
  digitalWrite(M1,HIGH);
  analogWrite (E2,b);
  digitalWrite(M2,HIGH);
}
void back_off (char a,char b)          //Move backward
{
  analogWrite (E1,a);
  digitalWrite(M1,LOW);
  analogWrite (E2,b);
  digitalWrite(M2,LOW);
}
void turn_L (char a,char b)             //Turn Left
{
  analogWrite (E1,a);
  digitalWrite(M1,LOW);
  analogWrite (E2,b);
  digitalWrite(M2,HIGH);
}
void turn_R (char a,char b)             //Turn Right
{
  analogWrite (E1,a);
  digitalWrite(M1,HIGH);
  analogWrite (E2,b);
  digitalWrite(M2,LOW);
}
void setup(void)
{
  servo_0.attach(5, 500, 2500);
  servo_1.attach(6, 500, 2500);
  int i;
  for(i=4;i<=7;i  )
    pinMode(i, OUTPUT);
  Serial.begin(19200);      //Set Baud Rate
  Serial.println("Run keyboard control");
}
void loop(void)
{
  servo_0.write(sr1);
  servo_1.write(sr2);
  if(Serial.available()){
    char val = Serial.read();
      switch(val)
      {
      case '0x1':
        advance (255,255);   //move forward in max speed
        break;
      case '0x2':
        back_off (255,255);   //move back in max speed
        break;
      case '0x3'://Turn Left
        turn_L (100,100);
        break;
      case '0x4'://Turn Right
        turn_R (100,100);
        break;
      case '0x0':
        stop(); //stop
        break;
     case '0x5':
        sr1 += 10;
        break;
      case '0x6':
        sr1 -= 10;
        break;
      case '0x7':
        sr2 += 10;
        break;
      case '0x8':
        sr2 -= 10;
        break;
    }
    else stop();
  }
}`

我修改了代码,但没有任何效果。而且,它们通过红外发射器和接收器连接。主 uno 有 2 个操纵杆。从机 uno 有 2 个电机和 2 个伺服系统。

arduino-uno arduino-c++
© www.soinside.com 2019 - 2024. All rights reserved.