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!!!
Google mal nach "eBus". Dann findest du erprobte Schaltungen für Sender und Empfänger.
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.
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.
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.
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.
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.
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.
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?
Genau so. Nur der 10uF Kondensator muss deutlich kleiner werden. Fang mal mit 100nF an. Sonst werden deine Flanken zu sehr verschliffen.
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?
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.
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.
Als Anregung eine Komparatorschaltung. Die ICs sind Typen, die mir gerade unter die Maus kamen.
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.
habe mal dein Spice-Simulation ausprobiert und einen LT1084-5 verwendet der liefert das gewünschte Ergebnis
Sascha schrieb: > von 0 bis 12V von 0 bis 5V Warum? Das macht die Sache unnötig kompliziert. 2V Hub reichen völlig aus.
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.
DAS ist das geringste Problem. Spannungsteiler (75kOhm / 51kOhm) am Ausgang und gut ist.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.