Forum: Mikrocontroller und Digitale Elektronik Serielle Kommunikation mit Verbraucher


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Sascha (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo liebe mikrocontroller Gemeinschaft!

Ich habe eine Frage und weis das ihr mir da weiter helfen könnt.
Ich habe zwei Arduino-Boards und würde diese gerne miteinander über eine 
serielle Schnittstelle kommunizieren lassen. (Programmierung kein 
Problem) Es soll nur in einer Richtung eine Nachricht verschickt werden. 
Also würde ja eine Verbindung von Tx nach Rx reichen. Die 
Datenübertragung erfolgt mit einer Leitung(Tx-Rx) über TTL also zwischen 
(0-5V) und einem gemeinsamen GND. Nun würde ich gerne diesen Pegel auf 
ca. 18V anheben also (0V Low 18V High). Denn ich würde die Leitungen 
gerne noch benutzen um am zweiten Arduino (Empfänger) einen Verbraucher 
(1A 18V) betreiben möchte. Ähnlich wie bei digitalen Modellbahnen DCC. 
Geht sowas?  Wie verstärke ich das serielle TTL Signal? Mosfets? und wie 
senke ich das Signal um am zweiten Arduino wieder einen Ausgangspegel 
von (0V-5V) zu haben?

So ich hoffe das war verständlich formuliert? Und wahrscheinlich sagen 
viele das es nicht geht? Aber vielleicht gibt es ja doch eine 
Möglichkeit.

Danke!!!

von Georg G. (df2au)


Bewertung
0 lesenswert
nicht lesenswert
Google mal nach "eBus". Dann findest du erprobte Schaltungen für Sender 
und Empfänger.

von Gerhard W. (gerhard86)


Bewertung
0 lesenswert
nicht lesenswert
Gehen tut alles, ist halt eine Frage der Umsetzung. Prinzipiell ist 1A 
aber schon eine Menge Strom für so eine Konstruktion, normalerweise 
betreibt man Sensoren die wenige mA verbrauchen damit. Das ganze 
funktioniert nur wenn dein Protokoll eine maximale Ausschaltdauer 
sicherstellt, da du ja während der Zeit wo der Bus auf 0V ist deinen 
Verbraucher aus einem Kondensator weiterversorgen musst.

von Georg G. (df2au)


Bewertung
0 lesenswert
nicht lesenswert
Gerhard W. schrieb:
> da du ja während der Zeit wo der Bus auf 0V ist deinen
> Verbraucher aus einem Kondensator weiterversorgen musst.

Sinnvoller ist es, nicht zwischen 0 und voller Spannung zu schalten, 
sondern nur einige 10% als Hub zu nutzen. Zur Versorgung des abgesetzten 
Teils kann man dann einen normalen Stepup Wandler nutzen. Hohe Baudraten 
sind so allerdings nicht möglich.

von Peter D. (peda)


Bewertung
0 lesenswert
nicht lesenswert
Ich hatte mir früher mal für meine TTL-Digitaluhr eine Tochteranzeige 
gebaut.
VCC auf ne Drossel und dahinter ein Kondensator zu einem Gatterausgang. 
Die TTL-Pulse haben dann kurze Nadeln aufmoduliert.

Und auf der Empfängerseite auch ne Drossel zu VCC und ein Kondensator 
auf einen 74LS14 Eingang. Der Eingang wurde so vorgespannt, daß er 
zwischen beiden Triggerschwellen lag. Hinter dem 74LS14 lagen also 
wieder saubere TTL-Signale an.

von Gerhard W. (gerhard86)


Bewertung
0 lesenswert
nicht lesenswert
Georg G. schrieb:
> Sinnvoller ist es, nicht zwischen 0 und voller Spannung zu schalten,
> sondern nur einige 10% als Hub zu nutzen.

Stimmt, und das wäre auch die Lösung des schon erwähnten eBus.

von Georg G. (df2au)


Bewertung
0 lesenswert
nicht lesenswert
Praktische Ausführung für grössere Leistungen (eBus ist im Original nur 
für wenige mA ausgelegt, dafür aber bidirektional):

Der Sender legt die Versorgungsspannung über einen (Beispiel) LM317 auf 
die Leitung. Dem Widerstand zwischen ADJ und GND wird mit einem 
Transistor ein zweiter Widerstand parallel geschaltet. Die Sendedaten 
steuern den Transistor. Die Spannung ändert sich dadurch um 10%. Das 
reicht aus.

Auf der Empfängerseite ist ein Komparator, dessen einer Eingang auf 50% 
der Betriebsspannung liegt und der einen dicken Kondensator nach GND 
hat. Das ist unsere Referenz. Der andere Eingang bekommt einen 
Spannungsteiler für 55% der Betriebsspannung. Am Ausgang des Komparators 
stehen die Daten.

Man muss nur darauf achten, dass keine grossen Kondensatoren an der 
Leitung sind. Die Versorgung des Empfängers sollte also über eine Diode 
oder einen weiteren Spannungsregler erfolgen.

von Sascha (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antworten.

An:  Georg G. könntest du mir das in Form eines Schaltplans mal zeigen? 
Kann mir das gerade schlecht vorstellen.

Brauche ich denn unbedingt die Kondensatoren? Der TTL-Pegel bei der 
seriellen Übertragungen ist im Idlemodus auf High. Also kommt es nur 
während der Übertragung zu Schwankungen. Bei einer Baudrate von 9600 ist 
doch die Frequenz so hoch das das beim Motor kaum sprürbar sein müsste 
oder? Das entspricht doch einer PWM mit hoher Frequenz?

Ich habe hier mal einen Schalplan für die Empfängerseite 
zusammengestellt. So habe ich mir das in etwa Vorgestellt. Würde das 
gehen? Und für die Senderseite würde ich das Tx Signal nehmen und durch 
einen Mosfet Transistor auf die 18V verstärken.

von Sascha (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Georg G. schrieb:
> Der Sender legt die Versorgungsspannung über einen (Beispiel) LM317 auf
> die Leitung. Dem Widerstand zwischen ADJ und GND wird mit einem
> Transistor ein zweiter Widerstand parallel geschaltet. Die Sendedaten
> steuern den Transistor. Die Spannung ändert sich dadurch um 10%. Das
> reicht aus.

meinst du solch eine Schaltung für den Sender?

von Georg G. (df2au)


Bewertung
0 lesenswert
nicht lesenswert
Genau so. Nur der 10uF Kondensator muss deutlich kleiner werden. Fang 
mal mit 100nF an. Sonst werden deine Flanken zu sehr verschliffen.

von Gerhard W. (gerhard86)


Bewertung
0 lesenswert
nicht lesenswert
Was für ein Verbraucher ist das eigentlich? Wenn er nicht direkt mit der 
"schwankenden" Versorgung leben kann gehören Elkos an den Eingang, oder 
er hat die eventuell schon. Dann gehören eine Drossel, oder bei 
ausreichend hoher Frequenz der UART eine Diode davor.(Ich weiß gerade 
nicht was der LM317 zu einer teilinduktiven Last sagt). Die 
Zeitkonstanten müssen halt zusammenpassen.
Welche Frequenz und welche Zyklen sind denn für die Uart geplant?

von Gerhard W. (gerhard86)


Bewertung
0 lesenswert
nicht lesenswert
Sascha schrieb:
> Ich habe hier mal einen Schalplan für die Empfängerseite
> zusammengestellt. So habe ich mir das in etwa Vorgestellt. Würde das
> gehen

Nein. Der Controller braucht schon dauerhaft stabile Spannung. Die 
Zenerdiode ist eher Mist, wird bei den robusten AVRs aber reichen. 
Besser wär ein 7805 oder ähnlich. Auf jeden Fall braucht es einen 
Kondensator zwischen Vcc und GND.
Der Rx würde hier natürlich dauerhaft hohen Pegel sehen. Du musst das 
Signal schon von der Versorgungsspannung trennen. Da kann je nach 
Baudrate und Hub ein Koppelkondensator oder die erwähnte 
Komparatorschaltung zum Einsatz kommen.

Sascha schrieb:
> meinst du solch eine Schaltung für den Sender?

Der Transistor braucht einen Basiswiderstand, und die Spannung stimmt 
nicht. Bei offenem Transistor würdest du etwa 17,7V bekommen, bei 
geschlossenem etwa 8,6V. Strebe einen Hub im Bereich der Logikspannung 
an, also zB 13-18V, wenn dein Verbraucher das mitmacht.

von Sascha (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Danke dir Gerhard W.
Ich habe in der Schaltung für den Sender den Basiswiderstand vergessen. 
Und bei der Berechnung nicht daran gedacht das beim Schalten des 
Transistors die Widerstände parallel sind. Hach da war mal wieder der 
Fehlerteufel am Start :)

Ich werde mich mal nächste Woche mit der Empfängerschaltung 
beschäftigen.
Das mit der Komparatorschaltung klingt gut.

von Georg G. (df2au)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Als Anregung eine Komparatorschaltung. Die ICs sind Typen, die mir 
gerade unter die Maus kamen.

von Sascha (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Danke Georg G

Genaus so habe ich mir das vorgestellt. Allerdings sollte das "serielle" 
Signal an Stelle von 0 bis 12V von 0 bis 5V gehen. Aber dies liese sich 
ja mit den Widerständen ändern.

von Sascha (Gast)


Bewertung
0 lesenswert
nicht lesenswert
habe mal dein Spice-Simulation ausprobiert und einen LT1084-5 verwendet 
der liefert das gewünschte Ergebnis

von Georg G. (df2au)


Bewertung
0 lesenswert
nicht lesenswert
Sascha schrieb:
> von 0 bis 12V von 0 bis 5V

Warum? Das macht die Sache unnötig kompliziert. 2V Hub reichen völlig 
aus.

von Sascha (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ja der Hub ist ja auch Ok. Aber das Datasignal nach dem Komparator 
sollte wieder kompatibel mit der seriellen Schnittstelle vom 
Mikrocontroller sein also 0 low 5V high.

von Georg G. (df2au)


Bewertung
0 lesenswert
nicht lesenswert
DAS ist das geringste Problem. Spannungsteiler (75kOhm / 51kOhm) am 
Ausgang und gut ist.

von Sascha (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Georg,

ich habe jetzt deine Schaltung mal ein bischen verändert und deine 
Vorschläge mit eingearbeitet.

Die Simulation liefert die gewünschten Ergebnisse.
Jetzt muss ich mir nur noch eine Steuerung für den Motor ausdenken.

Ich würde gern mit dem Mikrocontroller am Empfänger über den L272 einen 
Motor steuern. Mal schauen ob das funktioniert. Ich werde die Schaltung 
in den nächsten Wochen aufbauen.

Auf jeden Fall möchte ich mich hier für die Antworten bedanken. Ihr habt 
mir sehr geholfen. Besonders du Georg.

von Georg G. (df2au)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
fast richtig verstanden... siehe Anhang

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.