0

奇妙な動作に遭遇し、答えが見つからないようです。携帯電話を使用して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 ループでコードをコメントまたは削除すると、奇妙な動作が発生します。スライダーで遊んでいると、サーボがまだその場所でカクつきます。この動作の原因は何ですか?

4

1 に答える 1