Hallo, ich möchte vom PC aus Daten über Infrarot an einen µC senden. Bisher habe ich mich mit Elektronik beschäftigt, jedoch noch nicht mit µCs. Programmieren kann ich in verschiedenen Hochsprachen, jedoch kein ASM, soweit ich weiß, reicht ja aber C für µC-Programmierung. Ich möchte Daten über eine serielle Schnittstelle ausgeben und von dort auf eine IR-Diode. Die Ausgabe über rs232 an eine normale LED funktioniert wunderbar. Die IR-Empfänger (zB TSOP4836) brauchen jedoch eine Trägerfrequenz von 36kHz und dazu auch noch alle paar Pulse eine Pause von einigen Pulsen Länge. Wie erzeuge ich am einfachsten diese Trägerfrequenz? Den Strom für diese Sendeeinheit werde ich von einer USB-Schnittstelle abzapfen. Ich möchte auf der Senderseite nach Möglichkeit KEINEN µC verwenden. Wie sorge ich dafür, dass innerhalb eine Pulspause vom PC geschickte Daten trotzdem noch ankommen?
Kei Ner schrieb: > reicht ja aber C für µC-Programmierung. Nuja C Programmieren heißt nicht Microcontroller Programmieren können !: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial Kei Ner schrieb: > Ich möchte Daten über eine serielle Schnittstelle ausgeben und von dort > auf eine IR-Diode. Die Ausgabe über rs232 an eine normale LED > funktioniert wunderbar. Wird nix vernünftiges. Kei Ner schrieb: > Die IR-Empfänger (zB TSOP4836) brauchen jedoch eine Trägerfrequenz von > 36kHz und dazu auch noch alle paar Pulse eine Pause von einigen Pulsen > Länge. Dafür nutzt man im Normalfall PWM (-> siehe AVR Tutorial) Kei Ner schrieb: > Ich möchte auf der Senderseite nach Möglichkeit KEINEN µC verwenden. Das wird nur was wenn man ein fertiges IRDA Modul verwendet das über eine RS232 Schnittstelle verfügt / USB
@ Kei Ner (mckalle) >ich möchte vom PC aus Daten über Infrarot an einen µC senden. Bisher >auf eine IR-Diode. Die Ausgabe über rs232 an eine normale LED >funktioniert wunderbar. Das ist auch keine Kunst. Das Empfangen ist die Kunst. >Die IR-Empfänger (zB TSOP4836) brauchen jedoch eine Trägerfrequenz von >36kHz und dazu auch noch alle paar Pulse eine Pause von einigen Pulsen >Länge. >Wie erzeuge ich am einfachsten diese Trägerfrequenz? NE555 oder 74HC14 als RC Oszillator. > Den Strom für diese >Sendeeinheit werde ich von einer USB-Schnittstelle abzapfen. kann man machen. >Ich möchte auf der Senderseite nach Möglichkeit KEINEN µC verwenden. Musst du nicht, ein FT232 + die ICs von oben reichen. >Wie sorge ich dafür, dass innerhalb eine Pulspause vom PC geschickte >Daten trotzdem noch ankommen? Muss man nicht so eng sehen, durch die Modulation kommt schon das Signal an. Das passt. IRDA mit 115k2 Baud arbeitet ohne Träger und es geht auch. MFG Falk
> Nuja C Programmieren heißt nicht Microcontroller Programmieren können !: > http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial Wenn ich nicht weiterkomm, frag ich einfach ;) > Kei Ner schrieb: >> Die IR-Empfänger (zB TSOP4836) brauchen jedoch eine Trägerfrequenz von >> 36kHz und dazu auch noch alle paar Pulse eine Pause von einigen Pulsen >> Länge. > > Dafür nutzt man im Normalfall PWM (-> siehe AVR Tutorial) PWM nutzt man doch eig platt gesagt zum Dimmen. >>Wie erzeuge ich am einfachsten diese Trägerfrequenz? > > NE555 oder 74HC14 als RC Oszillator. Nen Ozillator krieg ich hin, gibt ja genug Bauanleitungen im Internet, aber wie sorge ich für die Pulspausen? >>Ich möchte auf der Senderseite nach Möglichkeit KEINEN µC verwenden. > > Musst du nicht, ein FT232 + die ICs von oben reichen. Ich habe zwar eine rs232 Schnittstelle, aber wenn nur ein USB-Kabel anstatt ein USB- und ein RS232-Kabel zur Schaltung gehen, dann ist das natürlich deutlich einfacher :) Sehe ich das richtig, dass der FT232 eine virtuelle RS232-Schnittstelle zur Verfügung stellt? >>Wie sorge ich dafür, dass innerhalb eine Pulspause vom PC geschickte >>Daten trotzdem noch ankommen? > > Muss man nicht so eng sehen, durch die Modulation kommt schon das Signal > an. Das passt. IRDA mit 115k2 Baud arbeitet ohne Träger und es geht > auch. Diese TSOP-Empfänger gibt es (scheinbar?) nicht mehr. Aber irgendwie muss ich die Daten ja empfangen. Was gibt es für alternativen? Wenn diese Modulation mit 36/38kHz funktioniert, dann müsste die Übertragung auch schon mit 38400 baud ohne Modulation funktionieren? Also direkt den TX-Ausgang vom FT232RL an nen Treibertransistor für ne Infrarot-Diode. Was muss dann auf der Empfängerseite sein? Reicht ein IR-Empfänger an die Basis von nem Transistor, der auf nen I/O von dem µC geht? Wenn der µC dann auch noch UART unterstützt, dann hab ich auch keine Probleme mit der Fehlerbehebung, da der µC das automatisch macht (im Programm dem UART sagen, welche baud-rate, paritätbits,... er geliefert bekommt). Für serielle Datenübertragung sollte man einen externen Quarz am µC nehmen, richtig? Danke für Eure Mühe.
Das mit dem USB-Seriell-Wandler-IC lass ich bleiben, der ist mir viel zu klein zum Löten ;)
Lehrmann Michael schrieb: > Wird nix vernünftiges. Blödsinn. Liefer einen Grund, den ich dir nicht in 2 Zeilen widerlegen kann... > Dafür nutzt man im Normalfall PWM (-> siehe AVR Tutorial) Aha... und wie erklärst du dir dann, dass es IR-Technik schon gab, bevor jeder Furz mit Mikrocontrollern gelassen wurde? -> Blödsinn > Das wird nur was wenn man ein fertiges IRDA Modul verwendet das über > eine RS232 Schnittstelle verfügt / USB Völliger Käse! IRDA ist hier absolut nicht nötig.
Kei Ner schrieb: >> NE555 oder 74HC14 als RC Oszillator. > Nen Ozillator krieg ich hin, gibt ja genug Bauanleitungen im Internet, > aber wie sorge ich für die Pulspausen? Dafür musst du auf der Software-Seite sorgen. Der TSOP fliegt dir nicht um die Ohren, wenn du mal 1s lang Träger sendest. Die Empfindlichkeit geht runter - mehr aber auch nicht. Wenn du also Probleme mit der Reichweite kriegst, kannst du dir darüber auch noch gedanken machen. > Sehe ich das richtig, dass der FT232 eine virtuelle RS232-Schnittstelle > zur Verfügung stellt? Genau. Man kann ihn allerdings auch in einem anderen Modus ohne virtuellen COM-Port betreiben, falls man sich die Suche nach der richtigen Port-Nummer sparen will. D2XX Programmer's Guide: http://www.ftdichip.com/Support/Documents/ProgramGuides/D2XX_Programmer's_Guide(FT_000071).pdf > Diese TSOP-Empfänger gibt es (scheinbar?) nicht mehr. Diese Typen nicht. Aber es gibt TSOP34838, SFH5110, uswusf. > Wenn diese Modulation mit 36/38kHz funktioniert, dann müsste die > Übertragung auch schon mit 38400 baud ohne Modulation funktionieren? Naja. Es geht, aber die trägerbasierte Übertragung ist zuverlässiger - schon alleine, weil du Umgebungslichtstörungen ausfiltern kannst. > Was muss dann auf der Empfängerseite sein? Typischerweise ein Transimpedanzverstärker, der den Strom der Photodiode in eine Spannung wandelt und verstärkt. > Für serielle Datenübertragung sollte man einen externen Quarz am µC > nehmen, richtig? Ja. Hast du schon über die Anschaffung eines Entwicklungsboards nachgedacht? Ein STK500 hat potential, dich so lange zu beschäftigen, dass die Investition definitv lohnt, auch wenn man später auf andere/schnellere Architekturen als den AVR umsteigt.
Kei Ner schrieb: > Wie erzeuge ich am einfachsten diese Trägerfrequenz? Den Strom für diese > Sendeeinheit werde ich von einer USB-Schnittstelle abzapfen. > Ich möchte auf der Senderseite nach Möglichkeit KEINEN µC verwenden. http://www.lochraster.org/etherrape/images/etherrape-schematic.png Der Part mit dem NE555 sollte fuer dich interessant sein.
Danke für die Hilfe. Ich bin nun zu ersten Ergebnissen gekommen und würde mich über Kommentare freuen. Zum Sender: Nach dem Schaltplan von Michael wird die Schaltfrequenz durch R7/R8 bestimmt. Als Wert für 38kHz steht dort 1,9k. Aber es sind zwei Widerstände. Wie muss ich das also verstehen? Und wie groß müssen diese dimensioniert werden? Den rs232-Port vom PC kann ich so nicht an den NE555 anschließen. Könnte ich eine Zener-Diode zwischen Pin 3 vom Stecker und Masse legen, um die Spannung zu begrenzen, oder wäre ein Optokoppler vielleicht sogar sinnvoller? Zum Empfänger: Angeblich soll es möglich sein, den Empfänger direkt an einen µC-Eingang anzuschließen. Hat jemand Erfahrung damit? Den Widerstand und den Kondensator am Empfänger kann ich wohl weg lassen, da ich die Spannung sowieso mit einem Regler heruntersetzen möchte. Da ich nur 24V zur Verfügung habe, kam mir ein DC/DC Wander (TSR 1-2450) sehr gelegen. Zur TMA-Serie von Traco habe ich gelesen, dass diese die Spannung nur sehr ungenau Regeln. Ist die TSR-Serie zum µC betreiben geeignet oder sollte man besser noch einen Standard Linearregler dranhängen? An die Ausgänge vom µC werde ich wohl Optokoppler dran hängen. Ist da ein Widerstand von 390 Ohm in Reihe mit einem 4n33 passend? Die Optokoppler sollen am Ende den Basistrom Transistoren an- und ausschalten. Die Transistoren sind mit 6-7 LEDs in Reihe an den 24V. (PWM-Dimmung für ne Deckenlampe mit Warm- und Kaltweißen sowie RGB-LEDs) Fällt euch sonst noch etwas auf?
Kei Ner schrieb: > Zum Sender: Nach dem Schaltplan von Michael wird die Schaltfrequenz > durch R7/R8 bestimmt. Als Wert für 38kHz steht dort 1,9k. Aber es sind > zwei Widerstände. Wie muss ich das also verstehen? Und wie groß müssen > diese dimensioniert werden? Beide gleich groß. Ich bin allerdings eher auf 1,6k für 38kHz gekommen. Aber das kannst du ja dann ausprobieren und messen. > Den rs232-Port vom PC kann ich so nicht an den NE555 anschließen. Könnte
1 | 5V ^ |
2 | | |
3 | |¯| |
4 | |_| 4,7k |
5 | | reset |
6 | o-------O des |
7 | | NE555 |
8 | ____ |/ |
9 | TX O------|____|----o-----| BC547 |
10 | Pin 3 22k | |\> |
11 | --- | |
12 | RS232 1N4148 / \ | |
13 | --- | |
14 | Pin 5 | | |
15 | GND O----------------o-------+ |
> Zum Empfänger: Angeblich soll es möglich sein, den Empfänger direkt an > einen µC-Eingang anzuschließen. Hat jemand Erfahrung damit? Ja. Geht. Aber sieh zur Sicherheit noch einen externen Pullup vor. Die TSOP haben nur einen Pullup intern am Ausgang, der in gestörter Umgebung leicht überwunden werden kann. > Den Widerstand und den Kondensator am Empfänger kann ich wohl weg > lassen, da ich die Spannung sowieso mit einem Regler heruntersetzen Vorsicht, der Tiefpass ist durchaus sinnvoll, gerade wenn vielleicht noch Anschlusskabel im Spiel sind. > diese die Spannung nur sehr ungenau Regeln. Ist die TSR-Serie zum µC > betreiben geeignet oder sollte man besser noch einen Standard > Linearregler dranhängen? Geht. > An die Ausgänge vom µC werde ich wohl Optokoppler dran hängen. Ist da > ein Widerstand von 390 Ohm in Reihe mit einem 4n33 passend? Ganz schön wenig. 1k reicht auch noch leicht. > Fällt euch sonst noch etwas auf? C9 darf ruhig um einen Faktor 20 größer sein.
Danke für die schnelle Antwort. Wie berechnet man den Widerstandswert für den NE555? Bei welchen Bauteilen muss ich besonders darauf achten, dass sie dicht bei einander sind? Quarz, den zugehörigen Kondensatoren, Endstörkondensatoren für die Stromversorgung direkt am µC. Was noch? Ich werde demnächst mal eine Bauteilliste zusammenstellen. Ich bin mir nämlich zB bei den Kondensatoren nicht sicher, welche Typen man nehmen sollte ;)
Kei Ner schrieb: > Wie berechnet man den Widerstandswert für den NE555? Die Formeln kann man im Datenblatt finden, oder ganz bequem geht das auch hier: http://www.elektronik-kompendium.de/sites/slt/0310131.htm Aber: Kondensatoren bekommst du im Normalfall schon mal nur mit 20% Toleranz und dann gelten diese Formeln auch nicht für jede Versorgungsspannung. Falls es eine geätzte Platine werden soll, würde ich auf alle Fälle Bestückoptionen zum Abgleich setzen. Also zu den Frequenzbestimmenden Bauteilen noch jeweils das gleiche Bauteil parallel dazu. > Bei welchen Bauteilen muss ich besonders darauf achten, dass sie dicht ... > Ich werde demnächst mal eine Bauteilliste zusammenstellen. Ich bin mir Sowas bespricht man am besten, wenn schon Ergebnisse da sind. Kondensatoren am NE555 können keramische Typen sein. (Kerko oder Vielschicht bei Reichelt.)
Michael H. schrieb: > Beide gleich groß. Ich bin allerdings eher auf 1,6k für 38kHz gekommen. > Aber das kannst du ja dann ausprobieren und messen. Ich habe nochmal mit der Formel vom Elko nachgerechnet und komme ebenfalls auf 1,9k. Bei 1,6k komme ich auf eine Frequenz von ~45kHz
So, nun habe ich noch Fragen zur "Leistungsstufe" für die LEDs ;) Ich möchte die LEDs vom µC über PWM ansteuern. Die Ausgänge vom µC steuern die Optokoppler an. Vom Strom her sollte der das ja schaffen mit 40mA pro Pin :) Nun bin ich mir aber bei der Dimensionierung der Widerstände für die LEDs und Transistoren nicht ganz sicher. Das Ganze soll so sein, dass wenn der µC kein Signal gibt, die LEDs an sind. Die LEDs brauchen 50mA bei 3,1V. Ich habe 24V zur Verfügung, also kann ich 7 Stück davon in Reihe schalten. Dazu ein Widerstand mit 47 Ohm. Soweit die Theorie. Aber es fällt ja auch an der Kollektor-Emitterstrecke ein Spannung ab, ca. 0,2V, richtig? Dann würde ich auf 43 Ohm für den LED-Widerstand kommen. Nun der Basis-pull-up (beispielhaft durch R17 dargestellt): Reicht ein Basisstrom vom Ib=4mA pro Transistor, um diesen voll durch zu steuern? An der Basis-Emitterstrecke fallen 0,7V ab, bleiben noch 23,3V/0,004A~5,8kOhm. Kann ich jetzt einfach die Transistorbasen parallel schalten und mit EINEM Widerstand mit +24V verbinden? Der Widerstand müsste dann natürlich für 3 Transistoren 23,3V/0,012A~1,9kOhm groß sein.
Aber IRDA ist Trägerlos und ohne Träger wirds schwierig mit der Entfernung. Der Nachrichtentechniker würde sagen: typisches Kanal-Mismatch ^^
klaus schrieb: > gab's da nicht mal was wie IRDA ? Ja, aber das ist ja nur ein Protokoll. Ich brauch ja aber erst mal die Schicht dadrunter.
Hier was zum physical layer von irda: http://www.maxim-ic.com/app-notes/index.mvp/id/3024 Manche Prozessoren können das direkt, man braucht nur einen Transistor und die LED. Aus Sicht des Prozessors ist es einfach eine serielle Strecke. Es gibt auch fertige LED/Photodiodenkombinationen dafür. Sowas lag früher bei manchen PC-Mainboards bei, kann man möglicherweise noch finden. MfG Klaus
>Ja, aber das ist ja nur ein Protokoll. Ich brauch ja aber erst mal die >Schicht dadrunter. Nein, IrPhy (im IrDA) ist Layer1. VG, Hans
klaus schrieb: > http://www.maxim-ic.com/app-notes/index.mvp/id/3024 Danke, daber das ist ja eher was, wenn ich zwischen zwei Geräten eine richtige Kommunikation haben möchte. Es reicht für meine Anwendung jedoch, wenn der PC dem µC Daten senden kann. Vom PC sollen nur die Farben eingestellt werden. Hans schrieb: > Nein, IrPhy (im IrDA) ist Layer1. Ich hatte einige Artikel über Fernbedienungen gelesen und da wurde IrDA zwar nicht als Protokoll bezeichnet, aber so beschrieben. Stimmen die Widerstände so, wie ich sie in Post #2047419 versucht habe, zu berechnen?
Kennt jemand einen günstigen (<1€) Spannungsregler mit enable/shutdown pin oder kann mir jemand sagen, ob man den LM317 mit 1kHz an und ausschalten kann? Ich möchte gerne jeden LED-Strang (7 LEDs bei den weißen, 8 bei den bunten) nicht einfach mit nem Widerstand betreiben, sondern mit einer KSQ. Ich habe gerade mal mein Netzteil nachgemessen, und da kommen 25V raus, nur weiß ich nicht, wie es unter Belastung reagiert. Nur mit nem Widerstand, der für 25V ausgelegt ist, würden die LEDs deutlich dunkler werden, wenn auf einmal anstatt 50mA nurnoch 40mA durchfließen. Ich habe irgendwo mal eine KSQ aus FET und pnp-Transistor gesehen, die mit einem 2. pnp dann an- und ausgeschaltet werden konnte. Sowas wäre vielleicht noch einfacher.
Kei Ner schrieb: > Ich möchte gerne jeden LED-Strang (7 LEDs bei den weißen, 8 bei den > bunten) nicht einfach mit nem Widerstand betreiben, sondern mit einer > KSQ. Ich habe gerade mal mein Netzteil nachgemessen, und da kommen 25V Konstantstromquelle: Konstantstromquelle mit bipolaren Transistoren Zieh mit dem Optokoppler die Basis von T1 gegen Massen. Dann ist die LED-Kette per default an und trotzdem dimmbar. An der KSQ-Strecke werden mindestens 800mV abfallen.
Michael H. schrieb: > Kei Ner schrieb: >> Ich möchte gerne jeden LED-Strang (7 LEDs bei den weißen, 8 bei den >> bunten) nicht einfach mit nem Widerstand betreiben, sondern mit einer >> KSQ. Ich habe gerade mal mein Netzteil nachgemessen, und da kommen 25V > Konstantstromquelle: Konstantstromquelle mit bipolaren Transistoren > Zieh mit dem Optokoppler die Basis von T1 gegen Massen. Dann ist die > LED-Kette per default an und trotzdem dimmbar. > An der KSQ-Strecke werden mindestens 800mV abfallen. Danke! Funktioniert das auch, wenn ein Optokoppler mehrere LED-Stänge mit jeweils einer eigenen KSQ ansteuert? (s. Anhang)
Kei Ner schrieb: > Funktioniert das auch, wenn ein Optokoppler mehrere LED-Stänge mit > jeweils einer eigenen KSQ ansteuert? (s. Anhang) Nein. Verlustleistung am Transistor T1 aus dem Artikel beachten. Nimm 33k für R2 aus dem Artikel. Wozu der OK, wenn auf beiden Seiten die selbe Masse vorkommt?
Michael H. schrieb: > Kei Ner schrieb: >> Funktioniert das auch, wenn ein Optokoppler mehrere LED-Stränge mit >> jeweils einer eigenen KSQ ansteuert? (s. Anhang) > Nein. Kann man die KSQs mit einem Widerstand entkoppeln? Das wäre nämlich schon wichtig, da ich 5*7 LEDs mit einem Ausgang vom µC steuern möchte. Ein Ausgang Warmweiß, einer Kaltweiß und dann noch drei für RGB. Michael H. schrieb: > Verlustleistung am Transistor T1 aus dem Artikel beachten. 25V - 3,1V*7 = 3,3V UR1 = 0,6V ILed = 0,05A UT1 = (3,3V-0,6V) * 0,05A = 0,135 W (Richtig? ;)) Michael H. schrieb: > Wozu der OK, wenn auf beiden Seiten die selbe Masse vorkommt? Ich dachte mir, dass dadurch die Belastung vom µC einen ein maximum nicht überschreitet, egal, ob am Ausgang irgendwas schief läuft. Wenn der nicht nötig ist, wirds natürlich ~3€ günstiger :)
Falls es noch irgendjemanden interessiert: Die Datenübertragung mit Infrarot funktioniert wunderbar. Aktuell habe ich 2400 Baud eingestellt. Im Anhang ist der Schaltplan für alle Neulinge so wie ich ;)
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.