奇妙な動作に遭遇し、答えが見つからないようです。携帯電話を使用してBluetooth経由でサーボモーターを制御する簡単なコードをいくつか書きました。
#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 High-Torque High-Voltage Digital Servo 1218TH、および Bluetooth Mate Silver RN-41 を使用しています。
電話でスライダーをドラッグしているときにサーボが途切れることを除いて、すべてが正常に機能します。それは小さな問題です。arduino ループでコードをコメントまたは削除すると、奇妙な動作が発生します。スライダーで遊んでいると、サーボがまだその場所でカクつきます。この動作の原因は何ですか?