Arduino UNO - Serielle Ports und TFT

Hallo Zusammen,

ich wollte mich mal nach ein paar Dingen erkundigen.

Wenn ich einen TFT Display an die Arduino UNO Platine anschliesse, hab ich dan noch PINS frei um eine Serielle (COM) -Verbindung zu einem anderen Teilnehmer herzustellen?

Ich habe gelesen das jeder Digitale Pin des UNO´s zu Seriellen Verbindung genutzt werden kann...
Habe ich dann mit einem TFT (Farbdisplay) noch etwas über?

LG Christian

Hi,
eine serielle Schnittstelle benötigt 2 Pins, Senden TxD und Empfangen RxD.
Ausserdem muss die Masse der beiden Teilnehmer verbunden werden.
Es gibt eine Library (SoftwareSerial) die Du benutzen kannst.

Der UNO hat eine integrierte serielle Schnittstelle auf Pin 0 und 1.
Diese wird jedoch zur Verbindung mit dem PC benötigt und wird deshalb normalerweise nicht benutzt.

Ein Mega hat mehrere integrierte serielle Schnittstellen.

Ob Du beim Anschluß eines Displays noch Pins frei hast, liegt am Display.
Einige werden parallel angeschlossen und benötigen viele Pins.
Andere werden über einen Bus angeschlossen und kommen mit wenig Pins aus.

Gruss
Kurti

Salut

Ergänzung:

Wenn du die Hardwareschnittstelle des UNO am Pin 1 und 0 verwendest, funktioniert anschliessend der Softwareupload nicht mehr, da die selbe Schnittstelle auch dafür verwendet wird. D.h. du müsstest jedes Mal das Display entfernen, wenn du neue Software hochladen willst.

Wenn du die genannte SoftwareSerial Library verwenden willst, kannst du zwei beliebige Pins als zweite (simulierte) Schnittstelle verwenden. Allerdings ist dazu zu sagen, dass eine serielle Schnittstelle in Hardware einiges schneller und zuverlässiger funktioniert.

Das heisst ich muss zwangsläufig auf einen Arduino Mega umsteigen, damit ich ein vernünftiges Konzept habe?
Ich möchte die PC Verbindung erhalten (Pin 1 und 0) und gleichzeitg einen Dispay (vorzugsweise von "SainSmart" falls das etwas sagt) zur Anzeige nutzen und mit einem anderen Teilnehmer kommunizieren.

Dies geht nicht mit dem UNO?

Gruß Christian

Felli93:
Das heisst ich muss zwangsläufig auf einen Arduino Mega umsteigen, damit ich ein vernünftiges Konzept habe?
Ich möchte die PC Verbindung erhalten (Pin 1 und 0) und gleichzeitg einen Dispay (vorzugsweise von "SainSmart" falls das etwas sagt) zur Anzeige nutzen und mit einem anderen Teilnehmer kommunizieren.

Dies geht nicht mit dem UNO?

Gruß Christian

Hallo,

nein es bedeutet nicht dass du zwangsläufig auf einen Mega umsteigen musst.
Wenn du z.B. dieses Display nimmst:
http://www.sainsmart.com/new-sainsmart-iic-i2c-twi-1602-serial-lcd-module-display-for-arduino-uno-mega-r3.html
bleibt die serielle Schnittstelle des UNO frei und das Display wird über die I2C Schnittstelle des UNO angesteuert.

Gruß
Peter

Hallo peter_de,
ja das stimmt zwar, aber ich brauche (wie gesagt) ein Farbdisplay :slight_smile:
Also doch ein Mega?

Es ist auch zu schauen ob der UNO nicht zuwenig RAM hat um das Display ansteuern zu können.
Grüße Uwe

Hallo Christian,

sorry ich hatte TFT (Farbdisplay) überlesen.

Für den UNO habe ich dann nur dieses Display gefunden:
http://www.sainsmart.com/sainsmart-4-3-4-3-inch-tft-lcd-screen-sd-card-slot-tft-shield-for-arduino-uno-r3.html
Habe aber auch nicht alles abgesucht.

Leider sind die Angaben zu dem Display so mager dass ich nicht erkennen kann welche Pins am UNO verwendet werden und welche nicht.
Zudem werden durch die Bauform des Displays alle Anschlüsse am UNO abgedeckt.
Um dann evtl. noch freie Pins für andere Aufgaben zu verwenden muss man sich was einfallen lassen.

Gruß
Peter

Kann es sein dass dich der Begriff "seriell" etwas durcheinander bringt? Seriell bedeutet erst einmal nur dass Daten gepackt nacheinander, und nicht alle Signale gleichzeitig (parallel) übertragen werden. Es gibt verschiedene Schnittstellen die seriell arbeiten. Die UART, beim Arduino "Serial" genannt, ist nur ein Beispiel dafür, das sind die TxD und Rxd Anschlüsse beim Uno. Diese wird für die Kommunikation für den PC benötigt, deshalb ist sie etwas unpraktisch zu benutzen. Andere Arduinos haben auch mehrere davon. Darüber kann immer nur ein gerät gleichzeitig kommunizieren.
Wenn bei Displays von "seriell" gesprochen wird ist meist der I²C Bus gemeint, das ist etwas anderes. Je nachdem welchen Uno man verwendet sind das die SDA/SCL pins, oder es werden die Pins 4/5 dafür verwendet. So wie die Uart Schnittstellen beim Arduino auf "Serial" hören, so hört I²C auf "Wire". Über I²C können auch mehrere geräte gleichzeitig kommunizieren, sofern sich ihre Adressen nicht ins Gehege kommen.

Wenn du also vor hast ein "serielles" I²C (oder TWI für TwoWireInterface) Display zu verwenden, dann benötigst du dafür nur zwei Pins und es stört sich überhaupt nicht mit der seriellen Verbindung zum PC.
Ein paralleles Display belegt wesentlich mehr Pins, weil alle Signale -parallel- übertragen werden, genaueres verrät das Datenblatt. Aber auch das sollte noch ein paar Pins des Uno für andere Dinge frei lassen.

Am besten wäre du verlinkst einmal das Display an das du gedacht hast.

Hallo, vielen Dank für die netten und umfangreichen Rückmeldungen!!

Das Display meiner Wahl:

Es nutzt die SPI Schnittstelle.

Wie Peter schon richtig bemerkt hat, es wird es bei einigen Display schwer an die Kontakte zu kommen, hier aber wohl eher nicht:)

Meine Frage konkret:
Ist es nach Anschluss dieses Displays noch möglich mit einem Teilnehmer über UART zu kommunizieren?

Gruß Christian

Ich wüsste nicht was dagegen spricht.

Wenn du wegen Display oder Shields nicht mehr von oben an Buchsen heran kommst sind der Fantasie mit dem Lötkolben wenig Grenzen gesetzt. Zum Beispiel Buchsenleisten an die Unterseite löten. Es gibt aber auch shields die einfach noch dazwischen gesteckt werden und die Anschlüsse seitlich heraus führen.

Felli93:
...
Das Display meiner Wahl:

http://www.amazon.de/SainSmart-Schirm-Interface-MicroSD-Arduino/dp/B008K7G88S

Es nutzt die SPI Schnittstelle.
...
Meine Frage konkret:
Ist es nach Anschluss dieses Displays noch möglich mit einem Teilnehmer über UART zu kommunizieren?
...

Ja das ist möglich.
Die für den UART verwendeten Pins 0 und 1 bleiben beim Anschluss dieses Displays frei weil es die SPI Schnittstelle verwendet.

Wenn du aber UART für einen anderen Teilnehmer brauchst funktioniert die Kommunikation mit dem PC nicht mehr (Sketch Upload und serial Monitor) solange der anderen Teilnehmer mit dem UNO verbunden ist.
Kann der andere Teilnehmer kein SPI?
Denn an SPI kann man gleichzeitig mehrere Geräte anschließen solange die Geräteadressen unterschiedlich sind.

Gruß
Peter

@peter_de --> Der andere Teilnehmer kann leider kein SPI.

Ich dachte tatsächlich das der UNO zumindest einen Seriellen Port (unabhängig von der PC-Kommunikation) hat...

Gruß Christian

Nja ich muss im Betrieb ja auch nicht FLASHEN/Programmieren.
Es genügt ja den Arduino in seiner Umgebung ans laufen zu bekommen und dann soll er da ja auch nicht so schnell wieder weg.

Sobald ich den COM Anschluss nutze, ist es aber trotzdem (wenn ich den UART Teilnehmer von PIN0/1 abklemme) ohne Änderungen möglich, wieder ein Verbindungsaufbau zu tätigen .. oder?

Gruß

Wer ist der andere Teilnehmer? SPI kann man notfalls auch in Software machen. Wäre sinnvoll hier mal ein paar mehr Informationen zu liefern, ohne das jeder nachfragen muss.

Zu deiner letzten Frage, JA. Es gibt auch noch die AltSoftSerial

Der andere Teilnehmer spielt hier ersteinmal keine Rolle. Die Rahmenbedingungen sind doch klar :slight_smile:
UART für den anderen Teilnehmer und SPI nur für den Display.

Glaube mir, es geht nicht anders :wink:

Gruß