Verwenden Arduino-Signale als Eingang für PC?
Vor kurzem habe ich meine Hände auf einem Arduino (Uno), und ich wunderte mich etwas.
Ich habe keine externe Lautstärke-wechsler für meine Lautsprecher, so dass ich dachte, vielleicht ist hook up ein potentiometer an den Arduino, und dann verwenden, um die Lautstärke (in Windows). Aber ist das möglich?
Lesen einen Wert von einem Arduino-pin mit vielleicht Visual C, C++ (oder etwas mehr "multi-Plattform" Sprache)? Und dann mit, dass zum einstellen der Lautstärke in Windows (und wenn es möglich ist auch in Linux).
Ich dachte, es könnte möglich sein, denn wenn Sie:
Serial.println(analogRead([pin with potentiometer]));
Können Sie die Werte der potentiometer an den pc (über USB). So ist es eine Möglichkeit, zu Lesen, diese Werte in C oder C++?
Ich weiß, wie die Lautstärke in Windows über C oder C++, ich muss nur wissen, ob es eine Möglichkeit zum Auslesen der Werte eines Potentiometers in (Visual) C-oder C++ - Skript.
- Sie können Sie öffnen, bis der entsprechende COM-port und die serielle Kommunikation zwischen PC und Arduino.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Definitiv. Und mit genau der gleichen Methode: serielle Kommunikation. Da ich kein großer Windows Experte, ich kann nicht schreiben, Sie eine vollständige Windows-Beispiel, aber hier sind einige Ausschnitte, die Sie begonnen, auf einem Unix (Linux, OS X, etc.):
Code auf dem Arduino:
Code auf dem computer:
Serial.println()
Befehl zum senden einer variable zwischen 0 und 100 zurück auf den pc. Aber aus irgendeinem Grund, drucken Sie die variable auf dem Bildschirm mitstd::cout << byte;
funktioniert Prima, aber wie bekomme ich das in eine variable, die ich verwenden kann, um die Lautstärke einzustellen? Ich habe versucht, eine Menge Dinge, aber nichts funktioniert so weit... (Mein Arduino code: pastebin.com/JXetGJvh, Mein C++ code: pastebin.com/95K4R1jQ)byte
variable im code enthält die meisten der Zeit nichts, oder ein Zeilenumbruch. Aber ich weiß nicht, wie es zu handhaben, anders als es auszudrucken.call_the_function_which_sets_the_volume(byte);
Gibt es einige Dinge zu beachten.
Du willst den PC zu hören auf Ihr "potentiometer Arduino" nur. Sie wollen es nicht hören beliebigen USB-Daten kommen an jedem port. Es ist erforderlich, erstellen Sie eine Daten-Protokoll, die etwas einzigartiges für Ihr Gerät. Wenn Sie nur spam analoge Messungen erhalten Sie, einige raw-Daten wie "123 128 133 145", was bedeuten könnte, dass nichts und kommen von jeder Art von Gerät.
Wenn Sie
Serial.whatever
, der Arduino ist wahrscheinlich spuckt ein UART-signal. Ich weiß nicht, etwas über Arduino, aber ich hoffe, es hat entweder RS-232 oder USB-Schaltung an Bord. Sie benötigen einen passenden port auf dem PC, dem traditionellen RS-232-9 pin d-sub-Anschluss ist immer selten auf modernen Computern. Sie müssen möglicherweise eine RS-232-zu-USB-Konverter.Benötigen Sie ein Mittel, um festzustellen, welches COM-port das Gerät angeschlossen ist. USB-ports und dem traditionellen RS-232-ports die gleiche Arbeit, wie weit der PC betroffen ist. Entweder lassen Sie den Benutzer, wählen Sie den port manuell, oder entwerfen Sie ein intelligenter Algorithmus zu finden, der Hafen, wo Sie Ihr Gerät angeschlossen ist.
Studie der Windows-API für alle seriellen port-Routinen. Dokumentation und Beispiele bei MSDN.