Hi,
ich habe nun schon mit meinem Uno Clone ein wenig experimentiert und Daten aus einem Timer (Stackmat Timer) per Software Serial ausgelesen und dargestellt.
Jetzt hab ich heute ein paar neue Bauteile bekommen.
Ich versuche nun die Daten mit einem Nano per Software Serial auszulesen. Das klappt bei weitem nicht so gut wie mit dem UNO. Es werden immer wieder falsche Datenpakete ausgelesen. Das funktioniert mit dem UNO viel zuverlässiger beim selben Input.
Irgendjemand eine Idee?
Ich hab schon verschiedene Pins des Nano versucht: überall das gleiche Problem.
HotSystems:
Was macht der dritte Parameter (true) hier:
SoftwareSerial mySerial(12, 13, true); // RX, TX
Den habe ich bisher noch nicht gesehen.
inverse_logic: is used to invert the sense of incoming bits (the default is normal logic). If set, SoftwareSerial treats a LOW (0 volts on the pin, normally) on the Rx pin as a 1-bit (the idle state) and a HIGH (5 volts on the pin, normally) as a 0-bit. It also affects the way that it writes to the Tx pin. Default value is false.
Die Daten kommen 'invertiert' an. Wie gesagt, beim UNO funktionierts. Gibt es Unterschiede in der HW Spezifikation der Schnittstelle zwischen Uno und Nano?
Also.
Du hast einen UNO Clon und das heißt daß die Arduino/Genuino UNO Schaltpläne nicht richtig sein müssen. Da ein Arduino NANO ca 40€ kostet nehme ich an, daß Du auch keinen Orginal NANO hast.
Auf die Orginalteile bezogen ist der Unterschied, daß beim NANO an Pin 13 direkt ein LED über einen Widerstand angeschlossen ist, beim UNO ein Operationsverstärker in Spanungsfolgerschaltung. Dieser belastent den Ausgang nicht.
Da Du aber sagst, daß Du mit allen Pins des NANO die gleichen Probleme hast, kann ich nichts zu Deinem Problem sagen.
Ich hab das Problem beseitigt. Hab aber noch nicht genau den Grund:
Der Delay war zu lang auf dem Nano. Mir kam es seltsam vor, dass der Uno viel schneller hintereinander Werte lieferte als der Nano.
Ich hab den Delay auf dem Nano auf 50 gesetzt und schon funzts.
Gibt es da einen Unterschied im Delay() Befehl zwischen Uno und Nano?
NorbertA:
Gibt es da einen Unterschied im Delay() Befehl zwischen Uno und Nano?
Der einzige Unterschied, der hier auftreten kann, ist der eingesetzte Quarz bzw. Keramikresonator.
Die können sich geringfügig unterscheiden, was aber in diesem Fall keinen großen Einfluss haben kann.
Aus denen wird letztendlich das "delay" abgeleitet.
Dein delay(500); würde ich weder auf dem Uno noch auf einem Nano Nachbau haben wollen.
Soll doch alles protokolliert werden, oder?
Mit delay erreichst du nur, dass der SoftwareSerial Empfangspuffer sicherer überläuft, bevor du es ausgegeben hast.
Da Serial überhaupt einigermassen funktioniert, sind die Resonatoren/Quarze schon zumindest halbwegs ok. (Und nicht etwa ein 8MHz / 16 MHz Problem)
Der NANO ist ein 168 oder ein 328 ? Wenn es ein 328P ist, und du A6 / A7 nicht brauchst, könntest du ja behaupten, du würdest ihn auf einen UNO laden? Macht das der Bootloader des Nano-Clons mit?