Problem bei der seriellen Kommunikation von Arduino zu Android

Ich habe versucht, diese Seriennummer jetzt für die Android-Bibliothek zu verwenden, aber ich kann es nicht zum Laufen bringen. Ich versuche, dieses kleine Programm in Android auszuführen:

    // MouseLib.ino
    #include "tracker.h"

    PositionTracker tracker(6,5);
    void setup() {
        Serial.begin(115200);
        tracker.init();
    }

    void loop() {
        Serial.println("?");
        delay(20);
    }

Wo der Tracker wie folgt ist:

    #include "Arduino.h"
    #include "ps2.h"
    #include "tracker.h"

    PositionTracker::PositionTracker(int _clkPin, int _dPin){
        // x = y = ldX = ldY = lX = lY = 0;
        clkPin = _clkPin;
        dPin = _dPin;
        sensor = new PS2(_clkPin, _dPin);
    }

    void PositionTracker::init(){
        sensor->write(0xff);  // reset
        sensor->read();  // ack byte
        sensor->read();  // blank */
        sensor->read();  // blank */
        sensor->write(0xf0);  // remote mode
        sensor->read();  // ack
        delayMicroseconds(100);
    }

Der Code funktioniert gut, wenn ich Arduino an den PC anschließe, aber wenn ich ihn an ein Android-Gerät anschließe, funktioniert es einfach nicht. Wenn ich die Zeile "tracker.init()" kommentiere, funktioniert es für Android einwandfrei. Wenn ich das Beispiel aus der ps2-Bibliothek verwende, funktioniert es auch gut. Oh, und ich verwende die Beispiel-App für die serielle Bibliothek auf einem Moto G. Irgendwelche Ideen?

Links zu den Bibliotheken:

BEARBEITEN

Gleich nachdem ich dies gepostet hatte, habe ich das Problem gefunden: Ich habe auf der falschen Website nach der Bibliothek gesucht. Die Antwort wurde bereits in ihrem Wiki veröffentlicht.

Aus dem Wiki der Bibliothek (kann den Link nicht posten, da ich wenig Reputation habe):

Einige Arduinos verwenden die DTR-Leitung, um die Bereitschaft des seriellen Kanals zu bestimmen. Rufen Sie in Ihrem Android-Code ansetDTR(true);

Können Sie Ihr Update als Antwort hinzufügen und es dann akzeptieren, damit wir es aus der Warteschlange für unbeantwortete Antworten entfernen können?

Antworten (1)

Gleich nach dem Posten dieser Frage habe ich das Problem gefunden: Ich habe auf der falschen Website für die Bibliothek gesucht. Die Antwort wurde bereits in ihrem Wiki veröffentlicht.

Aus dem Wiki der Bibliothek:

Einige Arduinos verwenden die DTR-Leitung, um die Bereitschaft des seriellen Kanals zu bestimmen. Rufen Sie in Ihrem Android-Code setDTR(true);

Wiki der Bibliothek: https://github.com/mik3y/usb-serial-for-android/wiki/Troubleshooting#i-am-using-an-arduino-uno-sparkfun-pro-micro-or-other-arduino-and -wenn-seriell-nicht-funktioniert