我有一个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 个伺服系统。