Hallo, Vorgeschichte: Ich hab mir einen LED Controller aufgebaut, dieser arbeitet mit Picaxe Controllern. Gesteuert wird das ganze mittels einer selbstgebauten Fernbedienung, die 28 Taster besitzt. Als Infrarot Empfänger dient ein TSOP 31238 von Reichelt. (Die Picaxe Serie benutzt 38 Khz im Infrarot bereich) Der TSOP hat natürlich einen Kondensator und einen Widerstand in der + Leitung spendiert bekommen Als Sendediode hab ich eine einfache Infrarot Diode aus einer alten Fernbedienung ausgeschlachtet. Die Infrarot Diode hängt über einen Transistor (BC548) am Picaxe Controller, der in der Fernbedienung ebenfalls verbaut ist. Es wird kein Vorwiderstand verwendet. Ich habe auch schon eine gekaufte Infrarot Diode von Reichelt probiert, diese war auch nicht besser.. Die Reichweite beträgt ca. 3-4 m, das reicht leider nicht bis zum Bett, von wo aus ich den Controller steuern will aus. Ausserdem muss ich mit der Fernbedienung immer direkt auf den Empfänger zielen, damit dieser was empfängt. Wo könnte hier das Problem liegen? Kann man die Empfindlichkeit des TSOP´s erhöhen? Kann das sein, dass der BC548 zu schwach ist? (Ich hab noch ein bisschen Platz, wenns was bringt, bau ich meinetwegen n Mos-FET ein oder was weiß ich.. ) Wenn ich mit einer Handy Kamera auf die Infrarot Diode halte, während ich eine Taste drücke, dann glimmt das ganze nur sehr leicht, so dass es noch zu erkennen ist. Halte ich hingegen die gleiche Kamera auf eine Fernbedienung, dann sieht man die IR-Diode richtig blitzen. Das kann doch wohl nicht sein? Achja: Die Versorgungsspannung der Fernbedienung übernehmen vier 2000mA Nimh Akkus mit je 1,2V mfg
Wie hoch ist denn der Strom durch die IR-LED? Im gepulsten Betrieb dürfen dies locker 300-400 mA sein, auch wenn die IR-LED für den Dauer-Betrieb nur für 30-40 mA ausgelegt ist.
Hmm, naja ich hab die LED ja quasi direkt an die Versorgungsspannung geklemmt, also fließen 4,8V durch die LED (Pulsbetrieb) Ich kann leider nicht messen, wieviel mA da durchfließen, dazu ist mein Messgerät zu träge. mfg
Ghost Rider schrieb: > Hmm, naja ich hab die LED ja quasi direkt an die Versorgungsspannung > geklemmt Ohne Vorwiderstand? > also fließen 4,8V durch die LED (Pulsbetrieb) Seit wann fließen Spannungen?
Ghost Rider schrieb: > Es wird kein Vorwiderstand verwendet. Schreib 100 mal: Eine LED wird immer über einen Vorwiderstand betrieben.
... schrieb: > Schreib 100 mal: > Eine LED wird immer über einen Vorwiderstand betrieben. Man kann LEDs auch mit Stromquellen betreiben.
Ghost Rider schrieb: > Hmm, naja ich hab die LED ja quasi direkt an die Versorgungsspannung > geklemmt, also fließen 4,8V durch die LED (Pulsbetrieb) > > Ich kann leider nicht messen, wieviel mA da durchfließen, dazu ist mein > Messgerät zu träge. > mfg Wie? KEIN VORWIDERSTAND? Der Strom wird bei dir wirklich nur durch den Transistor und die LED begrenzt? Das wird auch im Pulsbetrieb nicht wirklich gutgehen da es nur reines Glück ist wenn die Bausteine keinen Schaden nehmen. Ein Vorwiderstand ist ein absolutes MUSS, wenn er auch deutlich kleiner sein darf als bei Dauerbetrieb. Ich nehme an das deine LED also viel zu viel Strom ertragen muss und dadurch nicht richtig funktioniert. Mach mal den Versuch und nehme eine (billige) LED die im sichtbaren Bereich Funktioniert erst mit 5V und dafür passenden Vorwiderstand, dann das Labornetzteil immer weiter aufdrehen... Die LED wird sowohl die Farbe leicht verändern als auch immer weniger Licht abgeben bis sie dann das Zeitliche Segnet. Es kann also gut sein das deine LED auch nur "glimmt", vielleicht sogar etwas neben ihrer Sollfarbe, nur das du das ja nicht siehst... Gruß Carsten P.S.: Wenn die Schaltung so dimensioniert werden soll das du das mögliche Maximum rausholen kannst, dann könnte der BC547 etwas zu schwach sein, zumindest grenzwertig. Im Moment ist er aber wahrscheinlich dafür verantwortlich das deine LED überhaupt nocht was von sich gibt.
> Kann das sein, dass der BC548 zu schwach ist? Wie viel Basisstrom beklommt der denn? Damit der wirklich 100mA fließen lässt braucht es schon etwas mehr als 1mA, eher 10. Alternativ stärkeren Transistor nehmen, Logiclevel-MOSFET vermutlich. Dann aber wirklich einen passenden Vorwiderstnad für 200-300mA Strom im Einschaltmoment in Reihe zur LED schalten.
Ok? Alles klar.. ich hab eben auf einer anderen Seite gesehen, dass man im reinen Pulsbetrieb den Vorwiderstand weglassen kann.... Das man eine LED im Normalbetrieb nur am Vorwiderstand betreiben darf ist mir klar. Währe ein BC337 als Transistor besser geeignet? Welchen Vorwiderstand soll ich nehmen? (Wieviel Ohm) Vielleicht ersetz ich die LED auch kurzzeitig durch eine normale LED, dann kann man die Helligkeit besser beurteilen.. mfg
Ghost Rider schrieb: > Alles klar.. ich hab eben auf einer anderen Seite gesehen, dass man im > reinen Pulsbetrieb den Vorwiderstand weglassen kann.... Quelle bitte.
Der Widerstand der den Basisstrom des Transistors begrenzt hat 1,2 kOhm Nach der Quelle muss ich mal suchen. mfg
Wenn Du schon MOSFETs meiden willst, dann nimm einen Darlington. Der kann wenigstens auch Strom liefern. Deine bisherigen Transistoren haben eine Stromverstärkung von 100-500, je nach Klasse (A, B, oder C-Typ). Im Schaltbetrieb brauchst Du für einen ordenltichen Diodenstrom einige mA schnell in die Basis. Wenn Du z.B. einen BC517 nimmst, der hat eine Verstärkung von ca. 5000, da erhältst Du ziemlich sicher einen weit höheren Diodenstrom. Nachteil ist, dass beim Darlington eine Uce von bis zu einem Volt abfällt. Von deinen 4 NiMh bleiben für die Diode also ca. 3,8V übrig. Aus dem Datenblatt der nicht genannten Diode suchst Du dir jetzt die Vorwärtsspannung (IR-Dioden haben eine Knickspannung von ca. 1,3V, bei einigen 100mA würde ich mal auf max. 2,5V gehen) für den gewünschten Strom. Die Differenz muss durch einen Widerstand vernichtet werden. Im Datenblatt zur LD271 ist z.B. eine Vorwärtsspannung von 1,9-2,5V bei 1A angegeben. Das macht die aber nur für Pulse mit 100µs... Die Option ohne Vorwiderstand klappt halt nur, weil a) der Transistor in der Schaltung nur wenig Basisstrom bekommt und b) er daher im linearen Bereich arbeitet. Der Transistor ist hier dein (unsichtbarer) Vorwiderstand. Das selbe Spiel mit einem Logoc-Level Leistungs-MOSFET und die IR-LED leuchtet vor Freude hell auf.... (im sichtbaren Bereich, danach stinkt es grässlich) Ansonsten helfen Reflektoren an der IR-LED auch, um die Reichweite merkbar zu erhöhen. tschuessle Bernhard
Sorry, wenn ich mich etwas ungeschickt ausgedrückt habe, aber ich währe bereit einen Mos-FET zu benutzen, ich hab allerdings nur Leistungs-FET´s da, die Leistungen von 10-20 A abkönnen, aber das wird wohl kein Problem sein oder? IRF 520 z.B. Soll ich den FET dann ohne Vorwiderstand betreiben? Und es bleibt immernoch die Frage, wie muss ich den Vorwiderstand für die Infrarot -LED dimensionieren? mfg
Ghost Rider schrieb: > Der Widerstand der den Basisstrom des Transistors begrenzt hat 1,2 kOhm Sodele, hier haben wir ja den Strombegrenzer... mit 1,2k bekommst Du bei 4,8V höchstens (optimistische Schätzung, die Treiberleistung des PicAXE vermasselt die genaue Rechnung) einen Basisstrom von (4,8V - Ube) / 1,2k = 3,4mA. Damit ist der Transistor (für den erhofften Kollektorstrom) noch lange nicht im Schaltbetrieb und arbeitet linear. tschuessle B.
Oliver J. schrieb: > Man kann LEDs auch mit Stromquellen betreiben. -> Ersatzschaltbild Stromquelle: Spannungsqzelle + (unendlich) hohem Innenwiderstand
Ghost Rider schrieb: > Und es bleibt immernoch die Frage, wie muss ich den Vorwiderstand für > die Infrarot -LED dimensionieren? Bernhard Spitzer schrieb: > Von deinen 4 NiMh bleiben für die Diode also ca. 3,8V übrig. Aus dem > Datenblatt der nicht genannten Diode suchst Du dir jetzt die > Vorwärtsspannung ...
Ghost Rider schrieb: > Die Infrarot Diode hängt über einen Transistor (BC548) am Picaxe > Controller, der in der Fernbedienung ebenfalls verbaut ist. > Es wird kein Vorwiderstand verwendet. Du hast noch nicht erwähnt, wie genau du die Zutaten miteinander verschaltet hast.
Ok, den Vorwiderstand werd ich mir mal ausrechnen. Also Verschaltung sieht so aus: AusgangPicaxe - Vorwiderstand 1,2kOhm - Basis TransistorNPN BC548 Collektor an Minus Emitter zu Minus von IR-LED Plus IR-LED zu Batterie Plus mfg
Es gilt besonders auch, den Empfänger im Lichtspektrum zu filtern, und empfindlich einzustellen.
Ghost Rider schrieb: > Also Verschaltung sieht so aus: > Collektor an Minus Der BC548 ist ein NPN Transistor. Der Kollektor gehört an die Kathode ("Minus") der LED! > Emitter zu Minus von IR-LED Siehe oben. > Plus IR-LED zu Batterie Plus Ist ok. Das "Plus" der LED nennt sich übrigens Anode. Nun verbindest du noch den Emitter des BC548 mit GND ("Masse" / "Minus") deiner Schaltung. Das Einfügen eines passenden Vorwiderstandes für die LED kann natürlich nicht schaden.
BC337-40 sollte einigermaßen klappen wenn der Controllerausgang bei ca. 10mA nicht zu sehr in die Knie geht. 300 Ohm Vorwiderstand für den Transistor. Für die LED nen Vorwiderstand im Bereich 5-10 Ohm. Zu Anfang eher konservativ starten. Oskar wäre für die Diagnose sicher hilfreich.
Magnus Müller schrieb: > Ghost Rider schrieb: >> Emitter zu Minus von IR-LED Nachtrag: Das "Minus" der LED nennt sich Kathode.
Ghost Rider schrieb: > Emitter zu Minus von IR-LED Oha, verkehrt rum.Die LED ist LOW-Active, der Transistor schaltet gar nix. Ein Wunder, dass überhaupt was geht. Du betreibst die LED mit einer Seriendiode (B-E-Strecke) und 1,2K Vorwiderstand. Strom durch die LED ist vmtl. < 4mA gegenüber möglichen c1. 400mA. Reichweite damit um Faktor 10 reduziert.
Sorry, Emitter ist natürlich an Minus und Kollektor an Anode. Oszilloskop hab ich da, was genau soll ich messen, bzw. auf was soll ich achten? mfg
Ghost Rider schrieb: > Sorry, Emitter ist natürlich an Minus und Kollektor an Anode. Glaube ich dir jetzt nicht ohne Weiteres. > Oszilloskop hab ich da, was genau soll ich messen, bzw. auf was soll ich > achten? Hast du auch eine Kamera da? --> Foto von Bestückungs- und Lötseite machen und hier als Anhang posten.
Nachtrag: Ghost Rider schrieb: > Sorry, Emitter ist natürlich an Minus Gut so... > und Kollektor an Anode. Quatsch! Der Kollektor muss an die Kathode ("Minus") !
Magnus Müller schrieb: > Glaube ich dir jetzt nicht ohne Weiteres. Jup. Bei dem Durcheinander ist nichts sicher... Ghost Rider schrieb: > Oszilloskop hab ich da, was genau soll ich messen, bzw. auf was soll ich > achten? Vor allem den Strom über die LED (Shunt). Aber ehrlich gesagt; Wenn du nen Oskar hast und damit messen kannst sollte sollte das ganze absolut kein Problem sein.
Die LED ist natürlich korrekt angeschlossen, sonst würds ja überhaupt nicht funktionieren.. Das kommt eben davon, wenn man nicht ganz bei der Sache ist. Morgn werd ich mal mitn Oszilloskop messen, was bei der IR-LED ankommt, und dann Bilder davon machen. mfg
Dein TSOP sieht am besten bei 950nm - sendet Deine IRED auch auf dieser Wellenlänge? Es gibt ja vorrangig welche für um die 880nm, und welche für 940/950nm. Ansonsten: Oszi nehmen, und über einen kleine Strommeßshunt die Strompulse messen. Bzw. Spannungspulse über der Diode (ist aber weniger wichtig). Und man kann auch eine zweite IRED als Fotodetektor nehmen, dies an den Oszi anschließen, und deiner IRED gegenüberhalten. Damit kann man auch schön die Strahlungsleistung mit einer Fernbedienung vergleichen. Und eine weitere Ursache für geringere Leistung: vielleicht strahlt deine IRED ziemlich breit ab, und nicht gebündelt. Da käme nicht mehr viel beim Empfänger an, trotz gleicher Strahlungsleistung (läßt sich auch mit der Detektor-IRED feststellen).
Hab ich das richtig verstanden, dass wenn ich eine beliebige IR-LED an mein Oszi häng, ich IR Strahlung messen kann? Hört sich irgndwie "zu" einfach an. Übrigens: ich hab ca. 5 IR-LED´s aus alten Fernbedienungen ausprobiert. Morgenmach ich einfach mal n paar Messungen.. mfg
Wenn deine Schaltung wirklich korrekt sein sollte (was ich nach wie vor bezweifle) und die Wellenlänge der Sendediode zu der des Empfängers passt, kommt nur noch ein Fehler in der Software in Betracht.
Hmm, an einen Fehler in der Software glaub ich nicht, da die IR Routinen alle vorgefertigt sind. mfg
Ghost Rider schrieb: > Hmm, an einen Fehler in der Software glaub ich nicht, da die IR Routinen > alle vorgefertigt sind. Sag niemals "Nie". "Vorgefertigt" heißt nicht automatisch "fehlerfrei". --> Code Posten.
Ich hatte mal ein gedachtes Reichweitenproblem mit IRMP (dem hier ausm Wiki), da wurde der decoder-code so mit abfragen in ned loop zugemüllt, dass er fast keine Zeit mehr für die Erkennung von Ir-signalen hatte. Das Ergebnis war eine stark verminderte Empfindlichkeit, da der tsop bei weniger signalstärke etwas "schmiert".... Ein einfaches Warten in der main war die Lösung.
Hallo Ghost Rider, ich mache das bei meiner Fernbedienung, die für draussen und weite Entfernungen gedacht ist mit einem n-kanal Mosfet. PWM an Gate, über source und drain 7,2V vor IR-Diode 3,3Ohm (ja Ohm nicht kOhm). Mosfet (sollte ca. 1A vertragen) schaltet mit TTL Pegeln durch. Als IR-Diode verwende ich die TSAL6100 da das die hellste ist, die ich gefunden habe. Als Empfänger verwende ich einen TSOP4840 (40kHZ) den es aber auch in den Varianten für 36, 38 und 56 kHz gibt! Du solltest für den TSOP auf jeden Fall das im Datenblatt vorgeschlagene RC-Glied einbauen, ohne habe ich keine guten Erfahrungen gemacht. Desweiteren kann es in kleinen Räumen sogar notwendig sein die Intensität deutlich zu reduzieren, da es sonst aufgrund von Reflektionen zu falschen Signalen kommt, die nicht interpretiert werden. Du könntest als erstes einmal schauen, was dir Dein Empfänger ausgibt (solltest du Zugang zu einem Oszi oder Logicanalyser haben). Ich nehme an, dass du das RC5 Protokoll oder zumindest die on/off zeiten ungefähr übernimmst. Die liegen ja im Bereich einer Millisekunde. Das kann auch deine Soundkarte noch gut auflösen. Viel Erfolg =)
Ok, ich poste mal Empfänger und Sender Codes, aber diese sind mittlerweile ziemlich "komplex" Sender: [c]setfreq m32 let dirsc=%11100110 let dirsb=%00000000 pulsout C.1, 2000 pause 300 pulsout C.1, 2000 b10 = 1 b11 = 0 main1: do 'sertxd ("Taster: ",#b8,cr,lf) if b11 = 1 then goto Ubersprungen endif 'if b10 = 1 then 'enabletime 'endif if pinC.3 = 1 then pinC.1 = 1 endif if pinC.3 = 0 then pinC.1 = 0 endif 'if time = 3 then 'pinC.1 = 0 'endif 'if time = 4 then 'pinC.1 = 0 'let time = 0 'endif Ubersprungen: readadc10 B.1 ,b1 readadc10 B.2 ,b2 readadc10 B.3 ,b3 readadc10 B.4 ,b4 readadc10 B.5 ,b5 readadc10 C.4 ,b6 readadc10 C.0 ,b7 if b1 < 10 and b2 < 10 and b3 < 10 and b4 < 10 and b5 < 10 and b6 < 10 and b7 < 10 then b8 = 0 endif ;Erste Reihe: if b1 > 60 and b1 < 75 then b8 = 1 endif if b1 > 150 and b1 < 175 then b8 = 2 endif if b1 > 40 and b1 < 55 then b8 = 3 endif if b1 > 200 then b8 = 4 endif ;Zweite Reihe: if b2 > 60 and b2 < 75 then b8 = 5 endif if b2 > 150 and b2 < 175 then b8 = 6 endif if b2 > 40 and b2< 55 then b8 = 7 endif if b2 > 200 then b8 = 8 endif ;Dritte Reihe: if b3 > 60 and b3 < 75 then b8 = 9 endif if b3 > 150 and b3 < 175 then b8 = 10 endif if b3 > 40 and b3 < 55 then b8 = 11 endif if b3 > 200 then b8 = 12 endif ;Vierte Reihe: if b4 > 60 and b4 < 75 then b8 = 13 endif if b4 > 150 and b4 < 175 then b8 = 14 endif if b4 > 40 and b4 < 55 then b8 = 15 endif if b4 > 200 then b8 = 16 endif ;Fünfte Reihe: if b5 > 60 and b5 < 75 then b8 = 17 endif if b5 > 150 and b5 < 175 then b8 = 18 endif if b5 > 40 and b5 < 55 then b8 = 19 endif if b5 > 200 then b8 = 20 endif ;Sechste Reihe: if b6 > 60 and b6 < 75 then b8 = 21 endif if b6 > 150 and b6 < 175 then b8 = 22 endif if b6 > 40 and b6 < 55 then b8 = 23 endif if b6 > 200 then b8 = 24 endif ;Siebte Reihe: if b7 > 60 and b7 < 75 then b8 = 25 endif if b7 > 150 and b7 < 175 then b8 = 26 endif if b7 > 40 and b7 < 55 then if b11 = 1 then let b11 = 0 endif endif if b7 > 200 then b11 = 1 pinC.1 = 1 endif if b8 = 0 then goto main1 if b11 = 1 then let b8 = b8 + 28 endif if b11 = 0 then pinC.1 = 0 endif for b9 = 0 to 2 irout C.2,1,b8 next b9 pulsout C.1, 1000 loop[c] Empfänger: [c] setfreq m32 '''''''''''''''''''' 'PWM Initalisierung' '''''''''''''''''''' pwmout B.4, 63, 10 'CH8Pwmpin pwmout B.2, 63, 10 'CH10Pwmpin '''''''''''''''''''''''''''''''''' 'Ein und Ausgänge werden bestimmt' '''''''''''''''''''''''''''''''''' let dirsc=%000111 let dirsb=%111111 '''''''''''''''''''' 'Orientierungshilfe' '''''''''''''''''''' symbol CH1rot1 = b1 symbol CH2gruen1 = b2 symbol CH3blau1 = b3 symbol CH4weis1 = b4 symbol CH5Hinter1 = b5 symbol CH6Kast1 = b6 symbol CH7OnOff = b7 symbol CH8Pwm = b8 symbol CH9OnOff = b9 symbol CH10Pwm = b10 symbol Infrakey = b11 symbol PCControl = b12 '''''' 'Pins' '''''' symbol CH7OnOffpin = B.5 symbol CH8Pwmpin = B.4 symbol CH9OnOffpin = B.3 symbol CH10Pwmpin = B.2 '''''''''''''''''''''''''''' 'Startwerte werden bestimmt' '''''''''''''''''''''''''''' b1= 5 b2= 5 b3= 5 b4= 150 b5= 10 b6= 30 b7= 1 b8= 10 b9= 1 b10= 10 ''''''''''''''' 'Auf PC warten' ''''''''''''''' Programmstart: sertxd ("Controller gestartet",cr,lf) sertxd ("Nicht verbunden",cr,lf) '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''' 'Infrarot bestimmung''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''' Infrarotbestimmung: Anfang: do ''''''''''''''''''''''' 'On Off Pins Ausführen' ''''''''''''''''''''''' pinB.5 = b7 'CH7OnOffpin pinB.3 = b9`'CH9OnOffpin ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '6 Werte für die zwei WS2801 Controller lesen und dann laden' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' b0=b6 gosub Shiften b0=b5 gosub Shiften b0=b4 gosub Shiften b0=b3 gosub Shiften b0=b2 gosub Shiften b0=b1 gosub Shiften pinB.1 = 0 irin C.4,b11 gosub Abfragen pinB.1 = 1 loop end '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''' 'Sertxd bestimmung''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''' Sertxdbestimmung: sertxd ("Verbunden",cr,lf) do pinB.1 = 0 '''''''''''''''''''' 'Werte an PC senden' '''''''''''''''''''' sertxd ("R",cr,lf) serrxd b12,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10 if b12 = 0 then sertxd ("Nicht verbunden",cr,lf) pulsout B.1,1000 pause 500 pulsout B.1,1000 pause 500 pulsout B.1,1000 goto Programmstart endif sertxd (#b1," ",#b2," ",#b3," ",#b4," ",#b5," ",#b6," ",#b7," ",#b8," ",#b9," ",#b10,cr,lf) pinB.1 = 1 ''''''''''''''' 'PWM Ausführen' ''''''''''''''' pwmduty B.4,b8 'CH8Pwmpin pwmduty B.2,b10 'CH10Pwmpin ''''''''''''''''''''''' 'On Off Pins Ausführen' ''''''''''''''''''''''' pinB.5 = b7 'CH7OnOffpin pinB.3 = b9`'CH9OnOffpin ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '6 Werte für die zwei WS2801 Controller lesen und dann laden' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' b0=b6 gosub Shiften b0=b5 gosub Shiften b0=b4 gosub Shiften b0=b3 gosub Shiften b0=b2 gosub Shiften b0=b1 gosub Shiften loop end '''''''''''''''''''''''''''''''' 'Abfragen für die Fernbedienung' '''''''''''''''''''''''''''''''' Abfragen: 'Erster Abschnitt 'Erste Reihe If b11 = 1 then If b1 = 255 then goto Anfang endif let b1 = b1 + 5 endif if b11 = 2 then If b2 = 255 then goto Anfang endif let b2 = b2 + 5 endif if b11 = 3 then If b3 = 255 then goto Anfang endif let b3 = b3 + 5 endif if b11 = 4 then If b4 = 255 then goto Anfang endif let b4 = b4 + 5 endif 'Zweite Reihe if b11 = 5 then If b1 = 0 then goto Anfang endif let b1 = b1 - 5 endif if b11 = 6 then If b2 = 0 then goto Anfang endif let b2 = b2 - 5 endif if b11 = 7 then If b3 = 0 then goto Anfang endif let b3 = b3 - 5 endif if b11 = 8 then If b4 = 0 then goto Anfang endif let b4 = b4 - 5 endif 'Zweiter Abschnitt 'Dritte Reihe If b11 = 9 then If b5 = 255 then goto Anfang endif let b5 = b5 + 5 endif if b11 = 10 then If b6 = 255 then goto Anfang endif let b6 = b6 + 5 endif if b11 = 11 then If b8 = 255 then goto Anfang endif let b8 = b8 + 5 endif gosub PWMeinlesen if b11 = 12 then If b10 = 255 then goto Anfang endif let b10 = b10 + 5 endif gosub PWMeinlesen 'Vierte Reihe if b11 = 13 then If b5 = 0 then goto Anfang endif let b5 = b5 - 5 endif if b11 = 14 then If b6 = 0 then goto Anfang endif let b6 = b6 - 5 endif if b11 = 15 then If b8 = 0 then goto Anfang endif let b8 = b8 - 5 endif gosub PWMeinlesen if b11 = 16 then If b10 = 0 then goto Anfang endif let b10 = b10 - 5 endif gosub PWMeinlesen 'Dritter Abschnitt 'Fuenfte Reihe If b11 = 17 then If b7 = 1 then goto Anfang endif let b7 = b7 + 1 endif if b11 = 18 then If b9 = 1 then goto Anfang endif let b9 = b9 + 1 endif if b11 = 19 then ;rot b1= 255 b2= 0 b3= 0 b4= 100 b5= 50 b6= 50 b7= 1 b8= 50 b9= 1 b10= 50 gosub PWMeinlesen Return endif if b11 = 20 then ;grün b1= 0 b2= 255 b3= 0 b4= 100 b5= 50 b6= 50 b7= 1 b8= 50 b9= 1 b10= 50 gosub PWMeinlesen Return endif 'Sechste Reihe if b11 = 21 then If b7 = 0 then goto Anfang endif let b7 = b7 - 1 endif if b11 = 22 then If b9 = 0 then goto Anfang endif let b9 = b9 - 1 endif if b11 = 23 then ;blau b1= 0 b2= 0 b3= 255 b4= 100 b5= 50 b6= 50 b7= 1 b8= 50 b9= 1 b10= 50 gosub PWMeinlesen Return endif if b11 = 24 then 'weiß b1= 0 b2= 0 b3= 0 b4= 255 b5= 50 b6= 50 b7= 1 b8= 50 b9= 1 b10= 50 gosub PWMeinlesen Return endif 'Siebte Reihe if b11 = 25 then ;aus b1= 0 b2= 0 b3= 0 b4= 0 b5= 0 b6= 0 b7= 0 b8= 0 b9= 0 b10= 0 gosub PWMeinlesen Return endif if b11 = 26 then 'mittel b1= 50 b2= 200 b3= 50 b4= 255 b5= 255 b6= 255 b7= 1 b8= 255 b9= 1 b10= 255 gosub PWMeinlesen Return endif 'Shfit Fünfte Reihe if b11 = 45 then 'aus b1= 0 b2= 0 b3= 0 b4= 0 b5= 0 b6= 0 b7= 0 b8= 0 b9= 0 b10= 0 gosub PWMeinlesen Return endif if b11 = 46 then 'glimmen b1= 5 b2= 5 b3= 5 b4= 5 b5= 5 b6= 5 b7= 1 b8= 5 b9= 1 b10= 5 gosub PWMeinlesen Return endif if b11 = 47 then 'bissl heller b1= 20 b2= 20 b3= 20 b4= 40 b5= 20 b6= 20 b7= 1 b8= 20 b9= 1 b10= 20 gosub PWMeinlesen Return endif 'Shift Siebte Reihe if b11 = 53 then 'PC Modus goto Sertxdbestimmung endif if b11 = 54 then 'Programmiermodus Disconnect pulsout B.1, 5000 pause 500 pulsout B.1, 10000 pause 500 pulsout B.1, 2500 endif Return '''''''''''''''''''''''''''''''''''''''' 'Abteilung shiften für WS2801 Controller' '''''''''''''''''''''''''''''''''''''''' Shiften: pinc.0=bit7 pulsout c.1,1 '-------------- pinc.0=bit6 pulsout c.1,1 '-------------- pinc.0=bit5 pulsout c.1,1 '-------------- pinc.0=bit4 pulsout c.1,1 '-------------- pinc.0=bit3 pulsout c.1,1 '-------------- pinc.0=bit2 pulsout c.1,1 '-------------- pinc.0=bit1 pulsout c.1,1 '-------------- pinc.0=bit0 pulsout c.1,1 '-------------- Return PWMeinlesen: ''''''''''''''' 'PWM Ausführen' ''''''''''''''' pwmduty B.4,b8 'CH8Pwmpin pwmduty B.2,b10 'CH10Pwmpin Return[c] Ja ich weiß, der Code ist nicht das ordentlichste, aber er funktioniert tadellos. Das der Code an der Reichweite schuld ist kann ich mir nicht vorstellen weil: Der Empfänger ja bei irin (ohne Timeout) immer auf ein neues Signal wartet und nicht immer von oben bis unten durchläuft. Das heißt, es wird nur etwas getan, wenn ein Signal am TSOP anliegt. Noch eine Problemlösungsmöglichkeit ist mir eingefallen: Den Kondensator und den Widerstand für den TSOP, würde es was bringen, diese zwei Bauteile DIREKT am TSOP anzulöten? (Der TSOP hängt bei mir ausserhalb vom Gehäuse über ein 0,5m langes gut abgeschirmtes Kabel rum) Wie dimensioniere ich die Bauteile? (Ich kann irgnwie im Datenblatt nur Anhaltswerte finden) Wie beeinflussen die Werte die Empfindlichkeit etc.? mfg
So, ich hab jetzt diverse Messungen vorgenommen, im Anhang die Bilder, Ich hab eine Diode ans Oszi angeschlossen, man sieht ja die Ergebnisse. Anhand des einen Bildes wo man den Drehregler des Oszis sieht, kann man erkennen, wieviel Volt an der Diode anliegen. Man sieht: Der Teiler am Oszi ist auf 0.1, also 0.1 V pro Kästchen. Der Messkopf hat einen Teiler von 10, das heißt, ca. 1,2 V liegen an der Diode an. (Die Diode hab ich bei allen Messungen angeschlossen lassen) Videos lade ich noch hoch, da sieht man die Ergebnisse besser als auf den Bildern. Leider schneidet meine Handykamera beim Fotografieren des Oszis immer etwas weg... mfg
So wie es aussieht ist die Diode mehr als 50% der Zeit an. Das ist schon wieder Kontraproduktiv. Besser ist eher ein Tastverhältnis von etwa 25%. Dazu kommt noch, das die Frequenz wohl nicht konstant ist, und damit ggf. auch noch etwas daneben. Da reduziert das nutzbare Signal schon erheblich. Eine mögliche Ursache können Verzögerungen durch Interrupts sein. Bei einem so unübersichtlichen und dann auch noch unvollständigen Code erübrigt sich die Fehlersuche hier. Der Anstieg sieht bei der Spannung an der Diode auch recht Sägezahnförmig aus, nicht nach einem Rechteck - da ist wohl auch die Hardware zur Ansteuerung auch nicht gut. Die Beschreibung der Schaltung lässt auch nichts gutes erwarten. Der Kondensator am Empfänger IC ist für die Versorgungsspannung. Der sollte wenn möglich wirklich am IC sitzen, nicht 50 cm davon entfernt. Etwa 100 nF sind da die richtige Größenordnung. Der Genaue Wert ist aber unkritisch und hat praktisch keinen Einfluss auf die Empfindlichkeit. Wichtiger ist da der Entsprechende Kondensator an der Senderseite. In der Regel wird man auch da einen Kondensator/ELko brauchen um die Stromspitzen zu puffern.
Leider kann ich dank meines bescheidenen Internets keine Videos uploaden, ich setz jetzt einfach mal n Mos-FET und n Vorwiderstand zur LED ein, mal schaun ob, bzw. was das ganze bringt. mfg
So, ich hatte keinen passenden Mos-FET da, deswegen kam einfach ein BDX33C Leistungs-Darlington Transistor zum Einsatz. Als Vorwiderstand hängen nun parallel 3 x 12Ohm dran. Und siehe da: ES FUNKTIONIERT!! Es reicht nun bis zum Bett, die Verbindung ist stabil, und das auch noch bei Tageslicht!! (Vorher gings nur mit geschlossenem Rollo) DANKE LEUTE!! Ihr seit die besten!!.. mfg
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.