Hallo,
Habe mich nun schon mindestens eine woche durchs forum und google
gewült.
Wie man aus meinem Titel unschwer erkennen kann möchte ich das PWM
Signal eines AVRs mit dem NE555 Baustein per Infrarot versenden. Leider
finde ich keinen
konkreten Schltplan dazu ich weiss also nicht wo bzw wie ich den AVR mit
dem NE555
verbinden muss.
Wäre toll wenn mir jdm nen schltplan zur verfügung stellen könnte.
gruß ben
Alos ich möchte das PWM dazu nutzen eine modellbahn zu steuern.
also eher mehrere bahnen mit unterschiedlicher geschw. aber auf dem
selben gleis.
hab überalle immer gesehn das man mit dem NE555 die trägerwelle erzeugt
und dann das eigentlich datensignal dadrauf legt.
Hi,
ich hab grad keine Lust, zu rechnen aber ich denke mal, 36 oder 38kHz
oder was auch immer du als Träger benutzt müssten sich auch noch per PWM
erzeugen lassen. Wenn du also noch einen Timer mit PWM frei hast (Hört
sich bei der Projektbeschreibung so an;), dann erzeug doch mit dem einen
Timer den Träger (PWM mit Tastverhältnis 1:1) und mit dem andern das
Signal. Meines Wissens musst du für die gängigen Protokolle die beiden
Signale dann nur noch miteinander "verunden", also Träger immer dann
senden, wenn Signal=1. Das geht mit nem AND-Gate, das du dir auch aus 2
Transistoren und 3 Widerständen bauen kannst, wenn du nur eins
brauchst..
Also brauchst du gar keinen NE555 nebst Hühnerfutter, der sowieso auch
noch ein AND-gate gebraucht hätte..
Die PWMs werden beide im Hintergrund erzeugt und dein Controller hat
alle Zeit der Welt, zu rechnen und ab und zu das OCR des Signals
upzudaten.
hmm, also wäre aber die variante mit dem NE555 die programmtechnisch
einfachere oder?
Ebenfalls hier im forum habe ich gelesen das der NE555 unverzichtbar ist
ausserdem soll der infrarot teil möglichst abgetrennt vom rest aufgebaut
werden
da ich noch andere funktionen mit einbringen möchte.
Und wegen der Frequenz möchte ich mir auch alle möglichkeiten offen
halten...
aber wie schon im titel zu erkennen möchte ich es mit dem NE555 machen.
Damit ich das richtig versteh der NE555 erzeugt doch ledeglich das
trägersignal
oder nicht!?
Wie gesagt bin auf der suche nach nem schaltplan...
gruß ben
Ist ja wurscht, wie du den Träger erzeugst. Von mir aus dann eben mit
nem NE555, wenn du unbedingt willst. Programmtechnisch einfacher ist es
nicht würde ich mal behaupten, da du nur ein einziges mal bei
Programmstart einen extra Timer für den Träger initialisieren musst.
Natürlich muss man sich dazu mal kurz überlegen, wie man damit auf die
Frequenz kommt. Wenn du dir die Frequenz offen halten willst, ist es
wohl auch viel einfacher, 2 Zeilen Code zu ändern (oder eine Konstante
bei schöner Programmierung), als ein Bauteil in NE555-Beschaltung zu
ändern. Sicher kannste beim 555 ein Poti vorsehen aber dann musst du
schon wahrsagen oder nen Frequenzzähler haben, um das abzustimmen.
Zurück zum Problem Signal+Träger (woher auch immer) -> Diode.
Du brauchst wie gesagt ein Und-Gatter, dass die beiden Signale
miteinander verknüpft. Den Ausgang dieses Gatters kannste direkt auf die
Diode geben.
Die Beschaltung des NE555 kannst du dem Datenblatt oder einem von vielen
Beispielrechnern im Internet entnehmen.
>Und wegen der Frequenz möchte ich mir auch alle möglichkeiten offen>halten...
Und da willst du einen NE555 benutzen, wenn man in der Software einfach
nur einen Wert ändern muß?
>versteh der NE555 erzeugt doch ledeglich das trägersignal>oder nicht!?
Ja, wird wohl so sein. (auch wenn dessen Verwendung äusserst widersinnig
ist...)
Die nächste Frage wird dann ja sein: "Wie stelle ich ein symmetrisches
Signal mit dieser Frequenz her?"
Sorry bin echt dankbar für euer intresse und hilfe aber
ne einfach antwort wie man des macht würde mir schon reichen.
Sprich Schltplan...
Ich meine immerhin ist ja meine sache wie ich das mache,
bin schon total durcheinander jetzt weil überall was anderes steht.
Ihr sagt immer nur wie man es auch machen könnte und dann nur in ein
paar worten und so unklar das ist nicht grade leicht zu verstehen finde
ich....
(bitte nicht falsch/negativ verstehen)
Also vllt könte ihr ja mal ne eindeutige antwort für eine lösung mit und
eine ohne NE555 posten???
bei dem NE555 hab ich irgendwo gelesen das man das signal auch an eine
der kontakt
des bausteins anschliesen könne. Ich glaub der 5 (voltage Control)
trotzdem danke und schönen gruß ben
> Sprich Schltplan...
Wie wärs mal mit etwas Google-Recherche.
Ohne jetzt nachgeschaut zu haben bin ich mir sicher dass
ein Suchergebnis nach "555 Multivibrator" mindestens 10000
Treffer bringt, von denen auf den ersten 20 mindestens 5 Schaltungen
des 555 als Multivibrator zu finden sind. Komplett inklusive
Dimensionierung auf die gewünschte Frequenz.
>Ich glaub
Wenn du schon nur glaubst, zu wissen, wie der beschaltet werden soll,
was sollen wir dann machen? Raten? Heilige Geister anrufen?
^
Den NE555 kann man ziemlich einfach zum schwingen bringen (Müsste sogar
n dessen Datenblatt beschrieben sein...)
Und dann kann man ihn wohl durch Pin 5 auch steuern.
Such doch einfach mal die Internet-Seiten, wo du das gesehen hast.
Ohne die wird es ein interessantes Unterfangen...
Also nochmal habe midestens ein woche gegoogelt und
auch hier im forum geguckt, aber etwas eindeutig benutzbares hab ich
nicht gefunde
sonst hätte ich nicht geschrieben, und das mit dem glaube hab ich
geschrieben
wil wie vorher auch schon erwähnt es überall anders steht.
Vllt hab ich mich nicht deutlich genug ausgedrück aber ich suche einfach
einen
universellen infrarot sender, d<s signal wollte ich dann mit einem der
TSOP17.. bausteine wieder aufnehmen....
mit pin 5 ist aus dem datenblatt (seite 7) :
>>
PULSEWIDTHMODULATOR
When the timer is connected in the monostable
mode and triggered with a continuous pulse train,
the output pulse width can be modulated by a signal
applied to pin 5. Figure 16 shows the circuit.
<<
das eigentlich problem ist das zusammenfügen...
Was bringt es dir, wenn du den Ne555 als monostabile Kippstufe
beschaltest? Du weißt schon, was ne Monostabile Kippstufe ist?
Der NE555 muss als Astabile Kippstufe/Multivibrator beschaltet werden.
Ich schlage vor, dass du mal wo ganz anders anfängst, nämlich im
Datenblatt des TSOP, mit dem du dein Signal empfangen willst. Dann
siehst du, dass das Signal, dass so ein TSOP empfängt, wie folgt
aussehen muss:
|||||_____||||||||||_____|||||_____ (|| soll ein Rechteck darstellen, bin nicht so
gut im ASCII-Zeichnen)
Der TSOP macht daraus dann dieses Signal, das er am Ausgang
bereitstellt:
_____-----__________-----_____-----
Willst du mit diesem Signal einem Controller im Zug sagen, was er zu
machen hat, oder soll es direkt geglättet und verstärkt an die Motoren
gehen?
Im ersten Fall brauchst du gar keine PWM im Sender, obwohl auch da eine
PWM nützlich sein kann.
Im zweiten Fall brauchst du mindestens eine PWM und einen Träger, wobei
der Träger entweder in Software oder durch eine hardware-PWM oder durch
einen NE555 oder sonstwas erzeugt werden kann. Hier gibt es unzählige
Möglichkeiten, das zu bewerkstelligen.
Fall 1.1 (digitale Übertragung an Controller im Zug ohne PWM)
Du schreibst dein Programm so, dass es für jedes zu übertragende Bit
eine Routine aufruft, die bei bit=0 für eine zeit deltat nichts tut oder
bei bit=1 für die zeit deltat lang den träger erzeugt (Schleife mit
toggle_pin;delay;)
Fall 1.2 (digitale Übertragung an Controller mit PWM und UART)
Du initialisierst einmalig einen Timer so, dass am Ausgang
kontinuierlich der Träger erzeugt wird. Dann initialisierst du den UART
des Controllers. Ab jetzt musst du nur noch die zu übertragenden Zeichen
an den UART übergeben, den Rest macht der Controller automatisch für
dich. Die beiden Ausgangssignale musst du nur noch miteinander
ver"und"en.
Fall 2.1 (PWM als Analogsignal-Ersatz mit Träger von sonstwo)
Du initialisierst die PWM.
Du baust dir nen Träger, von mir aus aus nem NE555.
Du ver"und"est dein PWM-Signal mit dem Träger. Nein, der hat keinen
Eingang dazu, zumindest kenn ich keinen.
Fall 2.2 (PWM als Analogsignal-Ersatz mit Träger aus Controller ohne
Hardware-PWM)
Programmablauf entweder komplett analog zu 1.1 oder du nimmst einen
Hardware-PWM und erzeugst den Träger durch die Schleife aus 1.1. Dann
musst du wieder Träger und Signal ver"und"en.
Fall 2.3 (PWM als Analogsignalersatz und Träger aus PWM)
Du initialisierst die PWM für den Träger.
Du initialisierst die PWM für das Signal.
Du ver"und"est die beiden extern miteinander.
Die Fälle 1.2 bzw. 2.3 sind nicht nur die elegantesten und
effizientesten, sondern auch noch am Schnellsten umzusetzen, da du wenig
hardware bauen musst und wenig programmieren musst. Lediglich 1-2
Kapitel des Datenblatts musst du dafür lesen und verstehen. Sobald die
Timer initialisiert sind, schreibst du ja einfach nur noch den neuen
Wert ins jeweilige Compare-Register und fertig.
Einen Schaltplan für ein AND-Gate gibts zB hier:
http://hyperphysics.phy-astr.gsu.edu/Hbase/electronic/trangate.html
oder du nimmst ein integriertes Gate, zB den Baustein 7400 (Ist zwar
NAND aber er hat auch gleich noch freie Gatter zum Invertieren)
Beschaltung des AVR aus dem Datenblat oder unzähligen Beispielen im
Netz.
Dass ne LED nen Vorwiderstand braucht, solltest du wissen.
Das war's schon an Schaltplänen auf der Senderseite.
Jetzt frag bitte nicht mehr, wie du den NE555 beschalten musst, das
Datenblatt hast du ja gefunden..
Es wäre aber geradezu Verschwendung an Zeit, Geld und Nerven, die
vorhandene Peripherie des Controllers nicht zu nutzen und was drum herum
zu bauen..
Endlich mal nen beitrag mit dem ich was anfangen kann dir nicht nur so
ein zwei sätze beinhaltet wodurch man nuroch mehr verwirrt wurde.
Danke danke
p.s mit dem NE555 steht trotzdem im datenblatt das der eingang verwendet
werden kann.
Wenn ich dein angehängtes Datenblatt öffne und auf Seite 7 geht, steht
dort rechts unten folgender Absatz:
PULSE WIDTH MODULATOR
When the timer is connected in the monostable
mode and triggered with a continuous pulse train,
the output pulse width can be modulated by a signal
applied to pin 5. Figure 16 shows the circuit.
Das heißt auf deutsch:
PULSBREITENMODULATION
Wenn der timer im monostabilen Modus angeschlossen ist
und mit einer kontinuierlichen Pulsfolge getriggert wird,
dann kann die Pulsbreite mit einem Signal an Pin 5 moduliert werden.
D.h. der NE555 macht dir in dieser Konfiguration aus einem Analogsignal
eine PWM.
Das ist also nicht das, was du willst.
Wenn ich mir allerdings das Blockdiagramm auf Seite 2 anschaue, fällt
auf, dass der Pin eventuell doch nützlich sein kann. Wenn du nämlich
Control Voltage auf GND legst, dann wird der Komparator niemals
schalten, weil Treshold immer größer als Control Voltage ist.
Du kannst also den Träger mit etwas zeitlicher Abweichung ausschalten,
indem du Control Voltage auf GND ziehst. Du darfst aber Control-Voltage
nie auf +5V ziehen, da der Komparator sonst immer 1 ausgeben würde und
das zu einem verbotenen Eingangssignal für das RS-Flipflop führen kann.
Also muss ein Transistor her. Wie der beschaltet wird, kannst du zB im
elektronik-kompendium nachlesen. Du musst aber drauf achten, dass dein
Transistor die Control-Voltage negativer ziehen kann als der
discharge-Transistor im NE555. Germanium oder FET ist also angesagt.
Du brauchst also in deiner Schaltung jetzt neben dem AVR und
Hühnerfutter und dem NE555 und Hühnerfutter auch noch einen Transistor,
um den AVR an den NE555 zu klemmen. Warum nicht 2 Transistoren nehmen
und die potentielle Fehlerquelle NE555 eliminieren? Hast du solche Angst
vor'm Programmieren? Ich glaube ehrlich gesagt nicht, dass du den NE555
zum Rennen bringst, wenn du nicht in der Lage bist, diesen 10-Zeiler zu
schreiben..
Nachtrag: Du brauchst natürlich nicht unbedingt einen Transistor. Du
kannst schließlich auch den Pin vom AVR hochohmig machen. Aber du hast
ja Angst vor'm Programmieren ;)
//edit: Hab mich noch gar nicht an die Editierfunktion gewöhnt ;)
Aber mal ganz ehrlich. Wenn wir mal von der Existenz des 555
ausgehen (was ich auch nicht für besonders schlau halte, wenn im AVR
die Resource für ein Trägersignal sowiso vorhanden ist, dann ist doch
das Steuern des 555 ziemlicher Mist mit all den Nebenbedingungen.
555 dauernd schwingen lassen. 555 Ausgang und Modulationssignal auf ein
UND-Gatter zusammenführen und gut ists. Wenn der Platz für einen 555
da ist, dann wirds für einen 7400 wohl auch noch reichen.
@Benedikt: Kann sein, dass ich überheblich bin, hör ich sogar öfter.
Allerdings kann ich dein Problem lösen, nach dem du gefragt hast. Ich
hab mich sogar hingesetzt und versucht, alle Aspekte des Problems zu
beleuchten inklusive der Fragestellung, wo genau das Problem überhaupt
liegt. Dazu hab ich dir zwei kleinere Aufsätze geschrieben, die neben
ein paar Informationen, die du wohl nicht brauchst, denk ich auch mal
alle Informationen enthalten, die du brauchst. Ich hab versucht, mich in
dich reinzuversetzen (mit dem Pin5) und dir deinen Irrtum aufgezeigt und
somit u.U. sehr viel Versuchszeit erspart. Ich bin auch darauf
eingegangen, dass du unbedingt nen 555 benutzen willst und habe dir 2
Möglichkeiten aufgezählt und detailliert beschrieben, wie du dein Signal
mit dem Träger mischen kannst. Der ersten davon stimmt auch Karl-Heinz
Buchegger zu. Der hat, wie ich aus anderen Beiträgen in Erinnerung habe,
immerhin beruflich mit solchen und viel komplexeren Aufgaben zu tun.
Jetzt kommst du und sagst ich bin überheblich und eingebildet. Wie
gesagt stimmt das wohl auch aber ich finde, dass ich vor allem sehr nett
bin, meine Zeit in dein Problem zu investieren, das mir eigentlich am
Arsch vorbeigehen könnte. Liegt es daran, dass ich zwei mal vermutet
habe, dass du Angst vor'm Programmieren hast? Dann erklär mir doch mal
bitte, was sonst der Grund ist, nicht den kürzesten Weg zu gehen. Ich
glaube, du wirst einsehen, dass man nach 4 Erklärungen ruhig mal ne
kleine Stippelei einstecken können muss..
Ich hab mich übrigens vor allem deshalb nochmal hingesetzt und
geantwortet, weil du auf meinen ersten Text mit Lob und Dank geantwortet
hast. Das ist nämlich das einzige, was ich davon habe, dein Problem zu
lösen.
Habe dir ja auch gedankt dafür das du so umfangreich geantwortet hast ,
war einer der wenigen beiträge womit ich konkret was anfangen konnte.
Was mich bei dir nur gestört hat war diese Zeile :
"Aber du hast
ja Angst vor'm Programmieren ;)"
Sowas muss einfach nicht sein, programmierung ist für mich kein problem
programmiere vorwiegend und habe es deswegen nicht so mit der
elektronik.
deswegen auch meine fragen.
gruß und nochmal danke für deine ausführlich antwort
benedikt