Forum: Mikrocontroller und Digitale Elektronik Datenübertragung über eine Leitung


von Manuel P. (symex)


Lesenswert?

Hallo,

ich haben eine Frage und zwar:

gibt es einen anderen Weg außer über ein PWM-Signal, Daten von einem 
Arduino zu übertragen und auszulesen? Ich habe den Duty-Cycle von dem 
PWM-Signal mit der Arduino-Funktion PulseIn(); ausgelsen doch das klappt 
nicht so gut wie ich dachte und so viel Raum für Daten hat man auch 
nich.

von Karsten (Gast)


Lesenswert?

Unidirektional? UART
Bidirektional? 1-Wire

von Sascha (Gast)


Lesenswert?

I2C, SPI, UART. Und beliebig viele Selbstbausachen.

PWM Pulslängen einlesen geht. Aber die liegen nah beienander was zu 
Symbolübersprechen führt (Konstellationsdiagramm).

Muss man die Anzahl der Symbole reduzieren damit das klappt.

Aber für Datenübertragung ist PWM eh nicht da.

von Manuel P. (symex)


Lesenswert?

naja einem Servo werden so Daten übertragen^^

von H.Joachim S. (crazyhorse)


Lesenswert?

Auch bidirektional geht mit UART:
-beide Rx direkt an die Leitung
-Tx über eine Diode an die Busleitung
-pullup

Man muss nur beachten, dass man seine eigenen Daten auch empfängt, das 
ist aber kein Problem und kann sogar nützlich sein (Kollisionserkennung)

von Manuel P. (symex)


Lesenswert?

oder ich sage dir was ich machen wollte:

ich möchte eine art Punkteanzeige machen mit nur 3 Anschlüssen:
VCC, GND und Data.

auf der Platine sind 5 7-Segment Anzeigen und 5 Shiftregister und einen 
Attiny45 controller

Meine Überlegung war dass ich, wie schon oben erwähnt, ich mit einem 
PWM-Signal
dem Attiny sage welche Segmente er zu schalten hat nur das ist zu viel 
Aufwand für eine solche sache. Weisst du einen besseren Weg ?

von Sascha (Gast)


Lesenswert?

Wenn du 2 Datenleitungen spendieren kannst, dann nimm I2C und häng da 
nen LED-Controller dran der I2C spricht.
Alternativ I2C Portexpander.

von Manuel P. (symex)


Lesenswert?

okay ich werde mich mal über I2C informieren

von Vlad T. (vlad_tepesch)


Lesenswert?

Manuel P. schrieb:
> ich möchte eine art Punkteanzeige machen mit nur 3 Anschlüssen:
> VCC, GND und Data.

da bietet sich doch UART geradezu an? Wie kommt man drauf, da mittels 
PWM Daten übertragen zu wollen?

edit:

Manuel P. schrieb:
> uf der Platine sind 5 7-Segment Anzeigen und 5 Shiftregister und einen
> Attiny45 controller

wie kommt man dazu für 5 popelige 7-segs 5 Shiftregister zu verbauen?

: Bearbeitet durch User
von H.Joachim S. (crazyhorse)


Lesenswert?

Na klar wäre hier UART der richtige Weg. Und wie ich das sehe reicht 
unidirektional.

Der Tiny45 ist aber eher die falsche Wahl (auch, weil er keine UART hat)

Weiteres Problem: Leitungslänge?

von Vlad T. (vlad_tepesch)


Lesenswert?

H.Joachim S. schrieb:
> Der Tiny45 ist aber eher die falsche Wahl (auch, weil er keine UART hat)

das geht trotzdem. Bei den 5 anzuzeigenden Bytes würde auch ne SW-Uart 
ohne probleme laufen (zumal er wegen den 5 SR ja scheinbar nicht mal 
multiplexen will).
Sollte Leitungslänge ein problem werden, muss halt ein MAX232 davor.


durch ne clevere Idee käme man wahrscheinlich auch völlig ohne µC und 
nur mit den 5 SR aus :-)

: Bearbeitet durch User
von Sascha W. (sascha-w)


Lesenswert?

Vlad T. schrieb:
> durch ne clevere Idee käme man wahrscheinlich auch völlig ohne µC und
> nur mit den 5 SR aus :-)
genau - noch einen Manchester-Decoder davor und man kann den μC sparen. 
Wobei man natürlich den μC auch zum dekodieren von Manchester nutzen 
kann sicherlich noch einfacher als ne soft-UART.

Sascha

von Uwe K. (ukhl)


Lesenswert?

Es geht auch ganz ohne Schieberegister (Multiplexen) mit einem 
ATtiny2313 und der Verwendung des UART als Empfänger.

Mit 9600 Baud sollten 100m machbar sein. Und 5 Zeichen brauchen 5 ms .

von Manuel P. (symex)


Lesenswert?

ich kenne mich noch nich wirklich damit aus aber danke für die antworten 
:)

von Rene K. (xdraconix)


Lesenswert?

Also eindeutig, da es ja unidirektional ist - UART.... Drei Leitungen: 
GND/VCC/TX fertsch....

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.