我主要尝试使用这段代码来控制汽车/轮式机器人。这里的问题是,如果我发送信号的速度超过 0.9 秒,Arduino 就无法处理它。有什么办法可以解决吗?
(我检查了另一台计算机的串行监视器,它显示 Arduino 仍然接收到信号,但它没有向我的电机 Controller 提供输出)。
如有任何帮助,我们将不胜感激。谢谢。
#include <Servo.h>
//Using mega 2560 and sabertooth 2x12 dip switch 010111
int onevar;
int twovar;
Servo myservo;
Servo myservo2;
void setup() {
// put your setup code here, to run once:s
pinMode(servo1, OUTPUT);
pinMode(servo2, OUTPUT);
Serial.begin(9600);
myservo.attach(servo1);
myservo2.attach(servo2);
Serial.setTimeout(10);
//works for 10ms 0.9s need to figure out
}
void loop() {
// put your main code here, to run repeatedly:
// Receive up to 7 bytes
if (Serial.available()>0) {
// Wait for characters
onevar = Serial.parseInt();
twovar = Serial.parseInt();
//number = atoi(buffer);
Serial.println(onevar);
Serial.println(twovar);
/* if (Serial.available() > 0) {
number = Serial.read()-'0'; // read the incoming byte:
Serial.print(number);
*/
myservo.write(onevar);
// 93 is stop backward and forward is scalable range 25 to 155
myservo2.write(twovar);
//93 is no steering 30 to 160
}
}
最佳答案
一些尝试:
Serial.begin(9600);
尝试将波特率设置得更高(在两端)。
Serial.println(onevar);
Serial.println(twovar);
注释掉那些以进行一些测试。
Servo myservo;
Servo myservo2;
2 个 Helm 机和 1 个串行端口。可能会发生与计时器的冲突(多个库使用/设置相同的计时器)。它可以与 1 个 Helm 机一起使用吗?
关于c++ - Arduino电路没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34570783/