我的Arduino代码有问题。
代码应该是这样的:第一个Arduino Uno通过蓝牙从移动应用程序接收数据。然后将这些数据发送到另一个Arduino Uno,它应该使用H桥控制两个直流电机(它们的方向和速度)。
以下是仅适用于一台电机的代码 接收Arduino接收数据但电机不工作,只有二极管在适当的时刻开/关。当我添加电机代码时,一切工作都会使发送数据的速度慢得多 你知道代码中有什么问题,它不能正常工作吗?
发送数据的Arduino代码:
#include <SoftwareSerial.h>
SoftwareSerial BT1(4,2); // RX, TX
SoftwareSerial port2(8,7); // RX, TX
char data;
void setup() {
Serial.begin(9600);
BT1.begin(9600);
port2.begin(9600);
}
void loop() {
BT1.listen();
if (BT1.available() > 0){
while (BT1.available() > 0) {
data = BT1.read();
port2.write(data);
}
}
}
Arduino接收数据的代码:
#include <SoftwareSerial.h>
SoftwareSerial port1(4,2);
char data = '0';
// Motor A
const int in1 = 10;
const int in2 = 9;
const int en1 = 11;
// Motor B
const int in3 = 6;
const int in4 = 5;
const int en2 = 3;
void setup() {
Serial.begin(9600);
port1.begin(9600);
//Enabling pins responsible for motor B and and setting them as output
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(en2, OUTPUT);
}
void demo1() {
/************** For motor B ****************/
//Set direction
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
//Set speed from 0 to 255
analogWrite(en2, 250);
delay(5000);
/************** For motor B ****************/
//Change direction
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
delay(5000);
}
void stopMotor() {
//Stopping the motor B
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
void loop() {
if (port1.available() > 0){
Serial.println("Data from other Arduino:");
data = port1.read();
Serial.println(data);
if (data == '1') {
demo1();
} else {
stopMotor();
}
}
}