我遇到了一些奇怪的行为,看起来我找不到答案。我写了一些简单的代码来使用我的手机通过蓝牙控制伺服电机。
#include <Servo.h>
#include "SoftwareSerial.h";
int servoPin = 2;
int bluetoothTx = 11;
int bluetoothRx = 10;
SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);
Servo myservo;
char unChar;
String readString;
void setup() {
Serial.begin(9600);
bluetooth.begin(115200);
delay(100);
bluetooth.begin(9600);
myservo.attach(servoPin, 800, 2200);
}
void loop() {
if (bluetooth.available()) {
unChar = bluetooth.read();
Serial.println(unChar);
if (unChar == 'A') {
motor();
}
}
}
void motor() {
delay(15);
while (bluetooth.available()) {
char c = bluetooth.read();
readString += c;
}
if (readString.length() > 0) {
Serial.println(readString.toInt());
myservo.write(readString.toInt());
readString = "";
}
}
对于 android,我使用 MIT App Inventor 制作了一个基本的滑块。
我正在使用 Arduino Mega 2560、Power HD 高扭矩高压数字伺服 1218TH 和蓝牙伴侣 Silver RN-41。
一切正常,除了在手机上拖动滑块时伺服卡顿。这是一个小问题。当我在 arduino 循环中评论或删除我的代码时,会出现奇怪的行为。当我玩滑块时,伺服器仍然在它的位置上结结巴巴。是什么导致了这种行为?