Serialtransfer UART

Hallo Experten,

als Anfänger bin ich nun mit meinem Nano 33 BLE sense an meine Grenzen gekommen: Ich benötige einen zweiten seriellen Port, um Daten eines externen Gerätes einzulesen. Leider funktioniert softwareserial.h mit den Nano BLE wohl nicht und man muss das irgendwie über den einzigen Hardwareport mittels UART lösen.

Mit der Library serialtransfer.h sollte es funktionieren, ist aber für mich als Anfänger wohl zu komplex: Leider kann ich mit keinem einzigen der Examples auch nur eine einzige Antwort des IDE seriellen Monitors erhalten (uart_tx_datum, uart_rx_datum, usw.). Auch wenn die Baudrate entsprechend eingestellt ist.

Gibt es nirgendwo irgendwelche einfachen Beispiele mit normalem Text, wie in der Vega softwareserial.h (z. B. Softwareserialexample) mit der man einen Code ausprobieren kann und tatsächlich etwas auf dem Monitor des IDE's sieht? Ohne schon einen seriellen Port anschliessen zu müssen?

Sonst weiß ich wirklich nicht, wie ich einen zweiten seriellen Port erzeugen und vor allem softwareseitig testen kann.

Hallo,
ich hatte bei einem normalen Nano mal Probleme. Habe dann die AltSoftSerial.h benutzt damit ging es dann. Die Lib findest Du auch im Lib -manager

Heinz

Leider bin ich dafür kein Experte, da ich so einen nicht habe. Aber im Thema SoftwareSerial for Arduino Nano 33 IoT lese ich:

There is no SoftwareSerial.h available for the Arduino Nano 33 IoT because it is not required. This board offers much more: Hardware serials that can be assigned to different pins.

Das Beispiel wird Dir hoffentlich helfen.

Bitte #11 beachten!

Hallo Heinz, habe es probiert. AltSoftSerial ist wohl nicht kompatibel mit dem neuen Nano 33 BLE, Gruß Jochen

Ja, Hardware serial habe ich auch versucht. Das ist irgendwie noch viel komplizierter und die Beispiele sind leider auch entsprechend geschrieben. Als Anfänger habe ich da ohne ein brauchbares, einfaches Beispiel keine Chance. Ich habe schon ca. 6 h damit zugebracht - ohne Erfolg.

Die Hardware ohne Test gleich anzuschließen traue ich mich nicht. ich habe mit dem Anschluß eines Display schon 2 Nano 33BLE sense zerstört (richtig angeschlossen und ohne zu wissen warum sie schlußendlich kaputt gingen).

Hat keiner ein brauchbares, einfaches Beispiel zum Testen, ohne gleich die Hardware anschließen zu müssen?

Ich hab mich jetzt nicht maßgeblich mit dem Controller befasst, aber Du solltest im ersten Post in der Überschrift Deinen Controller erwähnen, damit man weiß, um was es eigentlich geht

Vielleicht hift Dir das weiter - in der Hoffnung, das es noch immer so geht:

Hallo,
was ist denn das für ein Gerät ? Dein Nano ist ein 3,3V System , das gilt auch für alle E/A Pins. Wenn Du da 5V anschließt wird er den Hitzetot sterben.

Hallo,
Du könntest dir einen Sketch schreiben und auf der normalen Serielle Schnittstelle ein Zeichen ausgeben. z.B jede Sekunde einmal. Das kannst Du j auch auf dem Monitor sehen. Dann richtest Du die neue Hardware Schnittstelle ein (Anleitung in #3) . Dann machst Du eine Bücke von Serial1_TX auf die neue Schnittstelle RX. Wenn das Zeichen richtig erkannt ist schaltest Du eine LED ein. Anschließend machst Du den Test andersherum. Dabei kannst D dann den Text auf dem Monitor anzeigen lassen.
Was Du jetzt zuerst machst bleibt Dir überlassen.

1 Like

Warum so umständlich? jeweils RX/TX und dann ein echo.

Stimmt, manchmal .... Bäume... Wald... :rofl: Kühlschrank ... usw. Beispiele gibts reichlich

Gruß Heinz

Moin @jochenelser,

für die Verbindung zweier Nano 33BLE gibt es hier ein ausführliches Beispiel:

https://docs.arduino.cc/tutorials/nano-33-ble-sense/uart

In englischer Sprache, ich hoffe, dass das für Dich ok ist.

Wie @Rentner schon schrieb, solltest Du beim Verbinden mit einem anderen, vom Nano 33BLE abweichenden Gerät darauf achten, dass die Pegel identisch sind (z.B. beide 3.3V oder beide 5.0V Pegel).

Und hier noch ein Link

https://forum.arduino.cc/t/third-serial-on-nano-33-ble-can-be-software/929047

wo ein dritter Serial auf einem Nano 33BLE eingerichtet wurde...

Hier - leider nicht hilfreich für Dein Thema - eine sehr ordentliche generelle Zusammenstellung von Informationen zum 33BLE, die für Dich trotzdem interessant werden könnte

https://yliu.eng.wayne.edu/teaching/IE5995/Week3_Arduino.pdf

1 Like

Vielen Dank für die vielen Tips!

Leider habe ich nun nach 2 gestorbenen Nano's nun auch mein Notebook über die Connection USB-serielle Schnittstelle-Vario (ein Gerät für zum Segelfliegen, das Steigen und Fallen in der Luft anzeigt) abgeschossen: Schwarzer Bildschirm - kein Lebenszeichen mehr. Ob nun 12V-seriell, 5V TTL-seriell oder 3,3V TTL seriell das Thema war vermute ich eher nicht, da die Doku des Gerätes sehr ausführlich ist und eindeutig +3,3V "1", 0V "0" TTL als serielles Signal beschrieben hat und ich auch eine USB-seriell-Verbindung (TTL 5V/3,3V) verwendet habe.

Da ich jedoch dafür bekannt bin alle möglichen Geräte durch Verpolung abzuschiessen (ich baue bei Eigenbautenn immer Verpolschutz ein), werde ich nun wohl eine längere Zwangspause einlegen müssen bis der Rechner wieder läuft. Aktuell schreibe ich von meinem Geschäfts-PC, den ich für so etwas wohl tunlichst nicht hernehmen sollte...

Wenn ich wieder einsatzfähig bin, werde ich die Tips einen nach dem anderen abarbeiten, hören sich jedenfalls sehr vielversprechend an :slight_smile:

Beste Grüße, Jochen

Na dann viel Erfolg beim Reparieren und Datenretten und dergleichen!

Ich verwende übrigens USB-Hubs mit eigenem Netzteil in der Hoffnung, der Hub stirbt vor dem Läppi.

Also bei mir hat der fremd gespeiste USB-Hub durch Abschalten des betroffenen USB-Ports bei einem verpolten DS18B20 sowohl den PC, als auch den UNO und den DS18B20 (der heiß war) gerettet.
Alles funktionierte nach Abkühlen und Korrektur noch.

Gruß Tommy

Danke für die mitfühlenden Worte :slight_smile:
Ich hab einen anderen Rechner wieder aktiviert und das Thema gelöst:

Der zweiten seriellen Port kann man beim Arduino Nano 33 BLE (und anderen Arduinos mit Arm Mikroprozessoren) ultraeinfach ansprechen:

Einfach alle Befehle antatt mit Serial.xxxx mit Serial1.xxxx schreiben...

z. B.:

Serial1.begin(9600);
Serial1.available();
Serial1.read();

usw.

unfassbar, um das rauszufinden habe ich ca. 6h benötigt.

Ich hoffe die Erklärung hilft jemand anderem :wink:

Das gilt auch für AVR Arduinos z.B. den Leonardeo, Micro und Mega

Auch beim ESP32 sind Serial1 und Serial2 nutzbar.

Serial2 mit RXD2 an GPIO16 und TXD2 an GPIO17 ist einfach zu verwenden.

Serial1 mit RXD1 an GPIO09 und TXD1 an GPIO10 nutzt üblicherweise vom externen Speicher belegte Pins, weshalb eine Verlegung notwendig ist, beispielsweise

Serial1.begin(9600, SERIAL_8N1, 35, 32);  // Baudrate, Protocol, RXD1, TXD1

Das hoffe ich auch :slightly_smiling_face:

Danke für Deine Rückmeldung!

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.