Ich bin blutiger Arduino-Anfänger. Mein Thema ist eigentlich "Arduino im Modellbau" aber ich experimentiere gerade einmal mit der Kommunikation über USB/Serial zwischen meinem Arduino UNO SMD und dem "Serial Monitor" am PC. Wenn ich am Serial Monitor 9600 Baud einstelle und auch im Sketch "Serial.begin(9600);" setze, funktioniert das auch.
Wenn ich aber versuche, im Sketch und im Serial Monitor eine höhere Baudrate zu setzen, z.B. Serial.begin(14400), bekomme ich mein "Hello World" vom Arduino nur als "Schmutzzeichen" dargestellt.
Andererseits kann ich im Serial Monitor auch 14400 einstellen wenn ich im Sketch "Serial.begin(9600);" gesetzt habe und die Ausgabe funktioniert trotzdem.
Habe ich einen Denkfehler oder geht da bei Euch auch nur 9600 Baud oder hat bei mir die Infrastruktur einen Fehler??
Gerpix:
Wenn ich aber versuche, im Sketch und im Serial Monitor eine höhere Baudrate zu setzen, z.B. Serial.begin(14400), bekomme ich mein "Hello World" vom Arduino nur als "Schmutzzeichen" dargestellt.
In der IDE gibt keine Möglichkeit, eine BAUD von 14400 einzustellen.
Mit welchen Seriellen Monitor testest du? Normalerweise sollten Baud 4800, 9600, 14400, 19200, 28800, 38400, 76800 ohne Probleme gehen. Von anderen Baudraten (zB. 57600 und 115200) ist eher abzuraten, da dort die Fehlerrate bereits über 2% liegt.
Ich verwende die IDE Arduino 1.0.6 und deren seriellen Monitor.
Rechner läuft unter Windows 8.1. Könnte ich ein Treiberproblem haben? (Ich habe für diverse Modellbau-devices (Sender, Empfänger, Sensoren) verschiedene USB-Serial-Interfaces mit individuellen Treibern im Einsatz.)
es ist kein problem des arduino. die 14400 funtionieren, nur der monitor kann nicht darauf eingestellt werden. der bleibt bei 14400 und 28800 bei 9600 stehen.
verwenden kannst Du die taktraten ohne weiteres, nur nicht mit dem serial monitor.
Wenn dir 9600 nicht reicht, macht es sowieso eher Sinn, gleich 57600 oder 115200 einzustellen.
Ist, soviel ich weiss, ein Problem der verwendeten veralteten RxTxcomm java Bibliothek oder der dazugehörigen rxtxSerial.dll.
( Bzw. ein Problem des SerialMonitor, diese Baudraten trotzdem anzubieten. )
57600 ist da nicht wirklich die beste Wahl.Fehlerrate > 2% ohne U2X. Nutze selber meist nur die 9600 oder 38400. Vorteil, beide sind doch sehr wenig fehlerbehaften bei meinen unterschiedlichen Atmega/Attiny Typen. Benutzt wird hauptsächlich 8MHz int. Oscz (Attiny841) oder ein Resonator 16MHz für die Megas.
Funktionieren werden aber auch die hohen Geschwindkeiten. Ist halt nur die Frage, wie hoch man das Risiko setzen möchte,das Daten fehlerhaft übertragen werden.
Das ist soweit schon klar. Ein selbst geschriebenes Programm ist dafür nicht von nöten. Putty oder andere COM Terminals reichen da auch. Wobei man immer bei diesen Baudraten 250000 ...) immer aufpassen muss. Viele Geräte haben meist nicht die Möglichkeit, benutzdefenierte Baudraten zu bestimmen. Beispiel Bluetooth HC05. Dort können nur bestimmte Baudraten ausgewählt werden.
ich nutze schon seit über einem Jahr nur noch 57600 Baud. Die Baudraten sind doch standardisiert?
Edit: hab mal gegoogelt, okay, dass hängt von dem Ergebnis eines UBRR Wertes ab. Wie stark der von seinem ganzzahligen Wert abweicht in seiner eigenen Kommastelle.
ich nutze schon seit über einem Jahr nur noch 57600 Baud. Die Baudraten sind doch standardisiert?
Edit: hab mal gegoogelt, okay, dass hängt von dem Ergebnis eines UBRR Wertes ab. Wie stark der von seinem ganzzahligen Wert abweicht in seiner eigenen Kommastelle.
Mit 57600 haste dir einer der schlechstesten Baudraten rausgesucht
Habs jetzt aber auf 38400 eingestellt. Weil das gesamte Teil später ins Auto soll und dort große Temperaturschwankungen sind. Dabei kann ja der Quarztakt auch schwanken und wenn man im www weiter liest, soll sich das auf die serielle Übertragung durchschlagen. Manche schreiben max. 2%, andere wiederum max. 1%. Naja, 38400 ist unter 1%. Sollte später dauerhaft funktionieren, hoffe ich.