PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fernbedienung : IR



Barthimaeus
28.01.2008, 14:01
Da ich das Kapitel Funkmodule aufgrund hoher Kosten und mangelnden Wissens vorerst geschlossen habe, überlege ich nun, wie man Datenübertragung über IR realisieren könnte. Ginge das, wenn man einfach an einen RS232 Ausgang eine IR Led dran hinge und einen IR-Fototransistor an einen RS232 Eingang? Gibt es sowas wie ultrahelle IR Leds? Wenn meine Idee nicht richtig ist - wie macht man es dann?

shaun
28.01.2008, 14:13
Um Einflüsse durch Umgebungslicht auszuschliessen, sollte man das IR-Licht modulieren, so wie IR-Fernbedienungen es auch machen. Dafür gibt es dann auch fertige Empfänger für um die 50 cent mit eingebautem Verstärker, Demodulator, IR-Filter usw (TSOP1736 zB für 36kHz). Dann musst Du nur noch Deine Daten auf einen 36kHz-Träger aufmodulieren und los geht's.
Optimale Reichweite erhält man, wenn man die Puls- und Pausenzeiten zwischen den Bits dem Datenblatt der Empfänger entsprechend wählt.

deSilva
28.01.2008, 14:29
Die Receiver sind pipi-einfach anzuschießen: +, GND, digitaler Ausgang. Fertig!

IR Sende-Dioden brauchen ziemlich viel Strom, da vertut man sich leicht.. Es gibt auch praktische IR-LED-Arrays...

Informationen im Web massenweise, z.B.: http://users.pandora.be/davshomepage/index.htm

Bei 40kHz kannst Du maximal 9600 baud übertragen; mit CRC oder sogar ECC deutlich weniger

Barthimaeus
28.01.2008, 14:49
"Dann musst Du nur noch Deine Daten auf einen 36kHz-Träger aufmodulieren" Was bedeutet das? Ich arbeite mit einem AVR Takt von 8Mhz und würde gern die Ansteuerung der Hardware RS232 Schnittstelle von Bascom benutzen - lässt sich das machen? Bekomme ich die IR Empfänger

Barthimaeus
28.01.2008, 14:49
"Dann musst Du nur noch Deine Daten auf einen 36kHz-Träger aufmodulieren" Was bedeutet das? Ich arbeite mit einem AVR Takt von 8Mhz und würde gern die Ansteuerung der Hardware RS232 Schnittstelle von Bascom benutzen - lässt sich das machen? Bekomme ich die IR Empfänger/Sender im normalen Elektronik Fachhandel, oder muss ich die bestellen?

Besserwessi
28.01.2008, 16:53
Die IR übertragung ist bei den üblichen 30-40 kHz auf Datenraten von ca. 4800 Baud beschränkt. 9600 Baud könnten gerade noch gehen. Zum Modulieren könnte man den PWM Ausgang des AVR benutzen und die Serielle Ausgabe dann in Software programmieren. Wenn man die RS232 Software nicht selber schreiben will könnte man das UART Signal mit dem PWM Ausgang in Hardware logisch Verknüpfen ob da ein UND / ODER Gatter das richtge ist müßte man dann nochmal testen. Die Logik kann auch mit dem Verstärker kombiniert werden. Die Ir LED sollte jedenfalls zwischen den Zeichen aus sein.

Die meisten IR Dioden haben übrigens einen recht guten Wirkungsgrad im Vergleich zu den sichtbaren LEDs. Man muss auch nicht den maximal zulässigen Strom (meist 100mA) nehmen es geht auch mit weniger. Eine gute, günstige Wahl sind z.B. LB274 oder SFH 487. Je benötigter Reichweite braucht man aber mehrere IR-LEDs. IR LEDs sind eigentlich gut zu bekommen, notfalls aus einer alten mechanischen Maus oder Fernbedienung.

Barthimaeus
28.01.2008, 20:55
das klingt aber nicht gerade einfach :(

deSilva
28.01.2008, 22:18
Beim ersten Mal ist alles schwer :-)
Die SFH bekommst Du bei Reichelt for 45 cents, einen TSOP 17xx auch da für 65 cents. Mt einer Fernbedienung kannst Du den Empfang üben (Links habe ich ja gegeben..)

Ceos
29.01.2008, 11:11
entschuldigt die frage, aber kann es sein das am ASURO der pin von CON1 der auch zur IR-Diode führt für die Modulation ist ??? nur mal rein ausinteresse weil ich den schaltplan vom asuro in der beziehung net ganz kapiere wenn hier keiner was von ASuro hören will bitte einfach den Post ignorieren ^^

Barthimaeus
30.01.2008, 21:19
"Zum Modulieren könnte man den PWM Ausgang des AVR benutzen und die Serielle Ausgabe dann in Software programmieren"

Kann mir jemand das mit dem modulieren nochmal genauer erklären? Moduliert man da Wellenlänge, Amplitude oder Frequenz des Lichts? Oder etwas ganz anderes?

Zum Empfänger:

"Die Receiver sind pipi-einfach anzuschießen: +, GND, digitaler Ausgang. Fertig!"

Du meinst doch sicherlich: +,GND, digitaler EINGANG, oder?

Kann ich als besagten Eingang einfach einen mit BASCOM programmierten RS232 Eingang verwenden?

deSilva
30.01.2008, 21:28
Guck mal hier
http://www.mikrocontroller.com/de/IR-Protokolle.php

Was dem einen sein Eingang ist dem anderen sein Ausgang :-)

Wenn Du RS-232 Signale sendests, dann kannst Du sie natürlich auch so verarbeiten - wie gesagt, es ist ein digitaler AUSgang am IR-Receiver...

Barthimaeus
30.01.2008, 21:41
Die Seite ist Hilfreich!

liesse sich der Sender villeicht so realisieren?:


$regfile = "m8def.dat"
$crystal = 8000000
$Baud = 4800

Config Portd.1 = Output


Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up

Compare1a = XXX ' Welchen Wert benötige ich für 36khz?

Do
Print "Diese Nachricht soll über IR (mittels RS232 Protokoll)
verschickt werden"
Loop

End



Ich habe nun einen Software PWM (für die Modulation) an den Hardware RS232 Ausgang eines Mega 8 gelegt. Ich weiss, dies ist nicht die BASCOM Ecke, aber könnte das klappen?

shaun
30.01.2008, 22:06
Wie soll die PWM an den Ausgang kommen und gleichzeitig noch der UART senden können? So wird es kaum funktionieren.
Moduliert wird die Amplitude, genau genommen sendest Du zB für ein "1" ein 36kHz-Schwingungspaket, für eine "0" keins, oder für eine "1" doppelt so lang wie für eine "0" oder oder oder.
Das Problem: der Empfänger braucht bestimmte Impulsbreiten, um seine Empfindlichkeit regeln zu können, daher kannst Du den ersten Vorschlag -kein Signal gleich "0"- so nicht umsetzen.
In der Praxis kommt hier wieder eine Codierung ins Spiel, wie Du sie auch für die Funkmodule gebraucht hättest.

Barthimaeus
30.01.2008, 22:16
Hat denn da noch niemand eine Anleitung geschriebe, wie man soetwas baut & programmiert? Das Prinzip habe ich jetzt verstanden (denke ich), aber die Umsetzung (sowohl in Hardware als auch in Software) ist mir noch nicht klar.

"genau genommen sendest Du zB für ein "1" ein 36kHz-Schwingungspaket, für eine "0" keins, oder für eine "1" doppelt so lang wie für eine "0" oder oder oder" Wie sieht denn das "Protokoll" für den TSOP1736 aus? Was für ein Signal setzt er in eine 1 und was für ein Signal setzt er in eine 0 um?

Wie errechne ich eigentlich, was für einen pwm Wert ich für eine "Schwingung" von X Hz benötige?

deSilva
30.01.2008, 23:30
Das tut mir ja leid, dass das alles bei den AVRs so schrecklich kompliziert ist. Ich habe das vor längerer Zeit mal für den Parallax Propeller gemacht, an einem Sonntag Nachmittag. Hilft Dir natürlich nix :-(

deSilva
30.01.2008, 23:50
Das Einfachste wäre, Du steuerst mit dem UART Signal einen auf 36 oder 38 kHz eingestellten NE555 o.ä. im Start-Stop Betrieb an. Der große Vorteil, dass Du die 100 mA o.ä. für die IR-Diode gleich aus dem 555 ziehen kannst (glaube ich wenigstens, der sollte 150-200 mA machen)

Barthimaeus
31.01.2008, 09:11
Jetzt muss ich nur noch raussuchen, wie man das macht. Hab noch nie mit so nem Teil gearbeitet ^^

shaun
31.01.2008, 12:02
unbegründetes Gestänker gegen den AVR? Na super, und morgen geht's dann AMD vs Intel und Linux vs Windows? Dass es mit einem nackten Controller komplizierter ist, irgendeine Funktion zu erhalten als mit einem Rundumglücklich-Framework mit fertigen Routinen für alles und jedes sollte wohl einleuchten?!

555-Dimensionierungen findet man zu Tausenden im Netz, aber die Frequenz muss schon einigermaßen genau für vernünftige Reichweiten sein. Die Berechunng der PWM-Frequenz steht im jeweiligen AVR-Datenblatt, ob und wie es unter Bascom vielleicht einfacher geht - ???
Ich würde die PWM als Zeitbasis nehmen, so schliesst man das Genauigkeitsproblem von vornherein aus.
Was den TSOP angeht: wenn er ein 36kHz-Paket erkennt, zieht er den Ausgang auf 0, sonst ist er 1. Die Zeiten sind für RC5 optimiert, aber die genauen Bedingungen stehen im Datenblatt der TSOPs.
Apropos RC5: es gibt für Bascom doch sicher fertige RC5-Implementierungen, oder? Könnte man da nicht drauf aufsetzen, so für den Anfang?

Barthimaeus
01.02.2008, 22:33
Da ich noch nicht sehr erfahren im Bereich Elektronik bin, ist es mir nicht ohne weiteres möglich die vielen Seiten/Schaltpläne zum NE555 zu verstehen. Oft lese ich Begriffe wie "monostabilen Kippstufe" und denke mir ->zu hoch für mich? Nein, ich bräuchte bloß einen Artikel, der die Funktion des ICs von Grund auf erklärt - hat jemand einen Link für mich?

shaun
01.02.2008, 22:39
Anscheinend waeren Grundlagen wichtiger, denn Du brauchst eine astabile Kippschaltung.
Mit dem 555: Pin 1 an Masse, 8 und 4 and Plus, 6 und 2 zusammen und ueber Kondensator nach Masse sowie ueber Widerstand R2 zu Pin 7 und dann mit Widerstand R1 nach Plus. Die Widerstaende bestimmten Ein- und Ausschaltdauer, wobei einmal die Summe beider entscheidet, einmal nur der R2. An Pin 3 kannst Du dann Dein Signal abnehmen. Gehen eventuelle Unsauberkeiten hilft ein Kondensator von 10-100n von Pin 5 nach Masse. Nach dieser Beschreibung kannst Du Dir nun mal eine Seite ergoogeln und gucken, ob Du es nachvollzogen bekommst.

deSilva
01.02.2008, 22:48
unbegründetes Gestänker gegen den AVR? Na super, und morgen geht's dann AMD vs Intel und Linux vs Windows? Dass es mit einem nackten Controller komplizierter ist, irgendeine Funktion zu erhalten als mit einem Rundumglücklich-Framework mit fertigen Routinen für alles und jedes sollte wohl einleuchten?!
Keine Ahnung von nix , was :-)
Soll ich Dir die Assemblerroutinen posten? Der Propeller ist ein NACKTER CONTROLLER, nur recht pfiffig gemacht :-) :-)

Barthimaeus
02.02.2008, 11:49
Danke, ich hab jetzt eine Seite gefunden, auf der mehrere 555 Schaltungen erarbeitet werden (http://www.dieelektronikerseite.de/Elements/NE555%20-%20Der%20Herr%20der%20Zeiten.htm). Die werde ich erstmal durcharbeiten, aber in der Zwischenzeit habe ich noch eine andere Idee für die Modulation der IR Led - Ein Transistor:

Kollektor an einen 36khz PWM Ausgang
RS232 Ausgang an Basis
LED zwischen Emitter und Masse

Wenn nun die RS232 Schnittstelle ein Bit sendet wird der Transistor aktiv und ein 36Khz Signal wird von der LED abgestrahlt. Ginge das?

deSilva
02.02.2008, 12:00
Im Prinzip schon.. es ist ein etwas ungewöhnliches "UND-Gatter" :-)

Gucke erst mal, wieviel Strom Du für die Diode brauchst. Wenn Du aus dem Controller 40mA rausziehst, hast Du schon lange keine 5 Volt mehr am Collector ...

Barthimaeus
02.02.2008, 12:48
Ich habe eine Diode aus dem Elektronik Fachhandel - keine Seriennummer -> Kein Datenblatt -> Aber der Verkäufer sagte, dass sie wie eine Standart LED mit 1,7V 10mA arbeiten würde.

"Im Prinzip schon.." heisst das, dass es funktinieren würde, oder nicht?

Warum ein "ungewöhnliches" und Gatter? Wie würde ich denn ein "gewöhnliches" machen? (Ja, ich weiss was und/(x)oder/nicht Gatter sind)
Für mich ist der Transistor an dieser Stelle nur ein Schalter, oder etwa nicht?

deSilva
02.02.2008, 13:09
(a) Ein normales UND-Gatter ist entweder ein IC, oder eine Beschaltung der Transistorbasis, z.B. durch zwei Dioden, dann hast Du erst mal ein NOR-Gatter, da muss man sich dann weiterhangeln :-) Es ist bei Transitoren nicht gut, die Basisspannung über die Collectorspannung zu legen, und das ist bei Dir der Fall...

(b) Die Vorwärtsspannung der Diode zu messen ist einfach, Ihren maximalen Strom ist nicht so einfach. Eventuell ist 1,7 Vold auch schon viel zu viel, "übliche" IR-Dioden haben eher 1,3 V, aber "übliche " IR LEDs liefern auch 1 W !

Nun strahlt JEDE LED auch IR ab; wenn man das Gehäuse geeignet färbt kann man sicherlich auch "eigentlich" dunkelrote als (schwache) IR-Dioden nutzen...

(c) Du musst einfach etwas mehr exprimentieren und messen...

Barthimaeus
02.02.2008, 13:16
Muss meine Schaltung korrigieren:

Die IR Diode muss Zwischen PWM Ausgang und Kollektor
Der Rest bleibt gleich - Jetzt werden Basis und Kollektorstrom doch nicht mehr VOR der Diode übereinandergelegt, oder ?

deSilva
02.02.2008, 13:38
Doch! Immer wenn das 36 kHz Signal am Collector "low" ist und die seriellen Nutzdaten an der Basis "high".

Aber es sollte nicht allzu schlimm sein, da kein Collector-Emitter Strom fließt... Es ist eben sehr ungewöhnlich.

Barthimaeus
02.02.2008, 13:53
Wenns funktioniert - in 20 min kommen die ersten Testergebnisse...

Barthimaeus
02.02.2008, 20:47
So - es funktioniert nicht :( Für die Modulation habe ich einen Output Compare Register Wert von 111 für 36Khz (Berechnung siehe Bascomrubrik) eingestellt, aber leider kommt nur wirre Zeichen an, jedoch nicht das gesendete: Der Code lautet:



$regfile = "m8def.dat"
$crystal = 8000000
$baud = 2400

Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1
Compare1a = 111

Do
Print "Hallo"
Wait 1
Loop

Der Hardware RS232 Ausgang des Controllers ist mit der Basis eines npns verbunden, die IR Led zwischen (330Ohm Vorwiederstand) PWM und Kollektor geschaltet, der Emitter liegt auf Masse. Den Output Pin des IR Empfängers habe ich über einen max232 mit dem Empfangspin der seriellen Schnittstelle verbunden.

Was mich jedoch wirklich stutzig macht, ist, dass nicht einmal der Sekundentakt im Ergebnis erkennbar ist. Auch empfängt das Terminal nur ein einziges mal, direkt nach einen Reset des Controllers ein/einige Zeichen. Keinesfalls jedoch ein "Hallo". Woran könnte das liegen? Modulation nicht richtig? 111 nicht der Richtige OC Wert?

Barthimaeus
03.02.2008, 11:29
So - hier mal der Schaltplan (nicht meckern: Erster Gehversuch mit Eagle ^^)

Sieht da jemand einen Fehler?

Edit: habe im Schaltplan den Vorwiederstand für die LED vergessen - dieser existiert in Wirklichkeit aber.

Besserwessi
03.02.2008, 11:58
Im Schaltplan fehlen noch die Abbolckkondensatoren am Kontroller und ein Widerstand vor der Basis.

Das überhaupt schon mal was ankommt ist schon ein gutes Zeichen. Das heißt das die Modulation im Prinzip funktioniert.
Das die falschen Zeichen kommen kann an verschiedenen Problemen liegen. Eventuell reicht die Signalstärke nicht aus und das Serille Signal wird dadurch zu stark verzögert. Man könnte das eventuell bei 1200 Baud noch mal testn. Es kann auch sinvoll sein wiederholt das gleiche Zeichen zu senden um zu sehen ob wenigstens konstand das gleiche Ankommt. Manchmal hilft es auch 2 Stoppbits einzustellen.
Sonst müßte man mal kontrollieren ob die Daten eventuell invertiert ankommen. Wenn man die Software UART von BASCOM nimmt kann man das Signal in software invertieren.

radbruch
03.02.2008, 12:45
Hallo

Die Ports können 40mA, da kann man die LED auch direkt zwischen die Pins klemmen. Meine tiny13 senden mit 47Ohm noch großartig. Um den 36kHz-Takt zu erzeugen inizialisiere ich den 8bit-Timer so:

Config Timer0 = Timer , Compare A = Toggle , Prescale = 1 , Clear Timer = 1
Ocr0a = 133

Das erzeugt ein 72kHz-Togglen am OCR-Pin und ergibt 36kHz-Trägerfrequenz. Meine tinys takten mit 9,6MHz. Für 8MHz muss man OCR0A mit 8000kHz/72kHz=111 laden.

Ich weiß jetzt nicht, wie die Empfangsseite aussieht, aber ein TSOP invertiert das Signal!

Schaut euch mal den Thread an:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=36253
Der Einstieg war eigentlich eine Kommunikation zwischen Mikrokontroller und PC. Hier zwar per RC5-Code, aber die Hardware oder die Tools dazu kann man vielleicht auch zum IR-Steuern eines Roboters verwenden.

Gruß

mic

Fennias
03.02.2008, 13:21
Du solltest auch erstmal 2400 Baud ausprobieren, da die meisten TSOPs 10 Takte brauchen um das Signal gut zu erkennen.
Hab mal einen kleinen Schaltplan gemacht und hoffe der ist soweit richtig (mein erster Versuch mit Eagle). An X3 Sollten dann das Signal (5V) anliegen.
Man kann dann noch nen kleinen Widerstand mit in Reihe schalten oder es auch lassen. IR-LEDs halten auch gepulste Ströme bis 3 Ampere aus. Womit man dann auf eine Reichweite(je nach Abstrahlwinkel) von ca. 50 - 60 Meter kommen wird. (Mit Optik vielleicht 300).

Barthimaeus
03.02.2008, 16:24
Irgendwas stimmt noch nicht und es kann wohl nicht daran liegen, dass der TSOP das Signal invertiert, denn wenn das der einzige Fehler wäre würde ja trotzdem konstant das selbe zeichen ankommen. Dies ist nicht der Fall. Es kommen immer nur einige, wenige, unterschiedliche Zeichen an, und nur direkt nach dem Einschalten des Stroms am TSOP. Danach kommt nichts mehr an. Woran kann das liegen? Einen 100nF Abblockkondensator habe ich jetzt eingebaut. Übrigens erkennt BASCOM Ocr1a bei mir nicht als vom Controller belegtes Register an und beschwert sich darüber, dass ich die Variable ocr1a nicht deklariert hätte. Mit compare1a geht's jedoch. Gibt es da eigentlich einen Unterschied?

pwm1a=ocr1a=compare1a ?

shaun
03.02.2008, 19:02
Es muss keineswegs immer das gleiche falsche Zeichen ankommen, wenn eine Invertierung o.a. Störung/Veränderung vorliegt, da die Pegel für die Rahmensynchronisation (Startbit!) festgelegt sind.

Barthimaeus
03.02.2008, 19:07
leider hilft mir dieses Wissen nicht weiter. Ich habs mittlerweile auch mit einer Invertierten Softwareschnittstelle probiert und es klappt auch nicht. Hat jemand noch eine Idee?

Barthimaeus
06.02.2008, 18:09
So, ich komme dem Ziel näher:



$regfile = "m8def.dat"
$crystal = 8000000

Config Portb.1 = Output

Config Timer1 = Timer , Compare A = Toggle , Prescale = 1 , Clear Timer = 1

Open "comb.0:2400,8,n,2,INVERTED" For Output As #1

Compare1a = 111


Do
Print #1 , "X"
Wait 1
Loop


Ich empfange jetzt regelmäßig, wie gewünscht im Sekundentakt Zeichen, nur leider keine "X"e. Es sind immmer die gleiche Anzahl an Zeichen und oft sogar die selben. Im Terminal sieht das dann so aus:



=ðJž=ðJž=ðJž=ðJž=ðJž=ðJž=ðJž=ðJž=ðJž=ðJž=ðJž=ðJž=ð Jž=ðJž


WObei ein 1sek Block aus einem "=ðJž" besteht.

Ich habe bereits unterschiedliche Bitraten ausprobiert, sowie 1, bzw. 2 Stopbits, jedoch bleibt der Sekundentakt erhalten. Nur wenn ich die Invertierung des RS232 Ausgangs wegnehme ist keine Systematik im empfangenen mehr zu erkennen und auch der Sekundentakt ist weg.
Hat jemand einen Vorschlag wie ich weitermachen könnte?


Es hat sich grade ein RIESIGES PROBLEM ergeben : Der TSOP EMPFÄNGT BESAGTES SIGNAL AUCH WENN ICH GAR KEINE LED/IRLED ANGESCHLOSSEN HABE - WAS UM HIMMELS WILLEN GEHT HIER VOR?

radbruch
06.02.2008, 18:27
Müssten denn nicht zwei Pins auf Ausgang geschaltet sein? PWM und TX?

Ohne Signal müsste der Ausgang des TSoPs high sein.

Barthimaeus
06.02.2008, 18:38
hasst recht, aber leider klappts trotzdem nicht !

radbruch
06.02.2008, 18:47
Hallo

Ne, ich hab nicht recht. Laut Datenblatt wird TX automatisch Ausgang wenn der UART enabled wird. Und da stellt sich dann die nächste Frage:


Open "comb.0:2400,8,n,2,INVERTED" For Output As #1
Ist das ein Soft-UART von Bascom? Denn TXD ist PortD.1

Gruß

mic

Barthimaeus
06.02.2008, 18:59
Beim Software UART kann man doch den Ausgabepin selbst bestimmen, oder? Ich denke, dass es wohl noch an meiner Schaltung liegt. Hat jemand villeicht noch eine Idee, wie man einen IR Sender mit möglichst wenigen Bauteilen umsetzten könnte?

radbruch
06.02.2008, 19:11
Ja, kann man selbst bestimmen. Ist mir eben aufgefallen, weil im Schaltplan war noch TXD eingezeichnet.

Läuft der Mega8 wirklich mit 8MHz?

Barthimaeus
06.02.2008, 19:21
Garantiert - ich benutze einen 8Mhz Quarz und habe die Fuses auf External Crystal/Resonator High Frequency eingestellt. Aber ich vermute wirklich, dass es an der Schaltung liegt. Leider ist Fennias Schaltung gleich wieder so kompliziert, dass ich als Elektronikanfänger sie nicht verstehe. Gibt es denn keine Möglichkeit eine Schaltung mit möglichst wenig "Hühnerfutter" zu realisieren?

p.s.: der TSOP funktioniert reibungslos - hab ihn grad mit ner Universalfernbedienung getestet.

radbruch
06.02.2008, 19:52
Wie oben schon beschrieben würde ich die LED erstmal direkt, mit Vorwiderstand natürlich, zwischen zwei Pins anschliessen. Anode an TXD, Kathode an OC1A. Zum Testen ist das einfach und falls die Sendeleistung dann nicht ausreichen sollte, kann man immer noch was dazubasteln.

Barthimaeus
06.02.2008, 20:03
ES FUNKTIONIERT !!!

Ich verstehe nur nicht, wie ein Signal von TXD zu OC1A geschickt werden kann, denn sie liegen doch beide auf +5V, oder? Ich dachte, dass der Strom irgendwie von +5V zu GND gelangen muss. Kannst du das mal erläutern? Wie kommt hier die Modulation zustande?

Barthimaeus
06.02.2008, 20:17
Nicht mehr nötig, ich habs verstanden ^^ Ist einfacher als ich dachte. Allerdings beträgt die maximale funktionierende Sendeentfernung nur an die 15cm :( Liegt das am Vorwiederstand ? 330Ohm zu groß?

radbruch
06.02.2008, 20:26
Bei den tiny13 haben wir 47Ohm verwendet. Mit 100Ohm sind's auch schon einige Meter. Das hängt natürlich auch von der verwendeten IR-LED ab. Ich hatte schon mit einer "normalen" roten 3mm-LED über einen Meter Reichweite.

Nur 15cm könnten auch bedeuten, dass mit der Trägerfrequenz etwas nicht stimmt.

Barthimaeus
07.02.2008, 12:57
Nur 47Ohm? Wieviel mA machen denn IR LEDs mit?

Mir ist grad aufgefallen, dass die 330Ohm die ich verwendet habe ja zu einem Strom von 150mA (5V/330Ohm=0,015A) führen, die der Wiederstand aus dem COntroller zieht. Hab ich da nicht ziemlich Glück gehabt, dass der Controller nicht draufgegangen ist?

radbruch
07.02.2008, 13:41
Hallo

Die LED kann sicher mehr als 100mA aushalten, zumal wir sie ja nur pulsen, 0.015A sind 15mA, den Strom berechnet man aber (5V-Vled)/R, Vled ist der Spannungsabfall an der LED von ca. 2,2V, Widerstand schreib man ohne ie.

Gruß

mic

Barthimaeus
07.02.2008, 13:54
Aja . 0,015A = 150 mA - > Peinlich ^^ Kann ja mal passieren. Und wenn man mehr als 40mA aus dem Controller zieht geht der Port kaputt?

(Das was man auf die Dauer im Roboternetz lernt vermittelt einem der Physikunterricht in der Schule ja garnicht ^^ )

Besserwessi
07.02.2008, 14:34
Kurzzeitig können die Ports einiges mehr ab. Wenn man nur einen Ausgang oder 2 Ausgänge weiter auseinander belastet, sollte das auch noch keine lokale zu starke Erwärmung geben. Das kann dann also auch ein paar Stunden oder gar Monate gut gehen, denn das Hauptproblem dürfte dann die Elektromigration sein und das ist eher eher ein Langzeitproblem.
Viel mehr als etwa 60 mA werden die Ports auch im Kurzschlußfall nicht unbedingt liefern.

radbruch
07.02.2008, 14:42
Vermutlich kann ein Port noch mehr als 40mA, aber Atmel garantiert eben nur 40 pro Pin (Summenströme beachten).

Ich habe mir mal das Datenblatt einer LD 271 angeschaut, das ist die IR-LED in meinem RP6.

Stoßstrom für 10us: 3,5A!
Durchlassstrom: 130mA

Allerdings beträgt die Durchlassspannung nur ca. 1,3V, man kann aber noch die leichten Pegelunterschiede der Pins mitrechnen weil 0V<low<high<5V setze ich hierfür mal 0,7V an:

(5V-1,3V-0,7V)/47=64mA

Ein 82Ohmer wäre sicherer *grins* Aber durch das 1:1-Pulsen ist der effektive Strom natürlich kleiner... Wie geschrieben sende ich mit 100Ohm (allerdings Pin gegen GND) mehrere Meter weit. Das Sicherste wäre es den Strom mal zu messen.

Gruß

mic

Barthimaeus
07.02.2008, 19:49
So - ich denke, damit sind meine Fragen fürs erste beantwortet. Ich hab mir vorhin noch 'nen TSOP 1556 geholt und werde mir jetzt zwei Tranceivermodule basteln. Eine Signalverstärkung müsste sich eigentlich mit einem npn und einem pnp mit relativ geringem Aufwand realisieren lassen:

Basis des NPNs an TXD, +5V an Kollektor des npns, IRLED an Emitter des NPNs, IRLED (anderer Pol) an Emitter des PNPs, OC1 an Basis des PNPs , GND an Kollektor des pnps. Auf diese Weise müsste es glaube ich gehen, habs aber nicht ausprobiert (eine weitere Idee vom Elektronik-Noob ^^)

Barthimaeus
09.02.2008, 13:35
So, der Transceiver ist fertig. Leider habe ich das Problem, dass die Transceiver auch ihr eigenes Signal empfangen, obwohl sie auf unterschiedlichen Frequenzen Senden/Empfangen. (zb Sendediode 36khz mit tsop1556 in einem Modul - im zweiten Modul andersrum) Die TSOPS empfangen zwar nur wirres Zeug von sich selbst, aber das stört auch schon.

Barthimaeus
10.02.2008, 16:48
Ich kriege meine Tiny13 einfach nicht dazu genau genug zu modulieren. Mit nem mega8 und Quarz funktionierts wunderbar, aber meine tiny13 senden nichts verständliches, bzw. richtiges und da kann man doch keinen Quarz anschliessen, oder? Oder liegts villeicht am Programm:



$regfile = "attiny13.dat"
$crystal = 9600000

Config Portb.1 = Output
Config Portb.0 = Output

Config Timer0 = Timer , Compare A = Toggle , Prescale = 1 , Clear Timer = 1

Open "comb.1:2400,8,n,2, INVERTED" For Output As #1

Ocr0a = 86


Do
Print #1 , "hallo"
Wait 1
Loop

radbruch
10.02.2008, 17:42
Ocr0a = 133 für 36kHz

Barthimaeus
10.02.2008, 17:49
Ich benutze aber einen 56khz Empfänger :(
(srry, hätt ich erwähnen sollen)

radbruch
10.02.2008, 18:17
Hallo

Den tiny13 kann man auch extern betakten, je nach Typ bis 20MHz.

Ist die LED richtig gepolt? Beim Mega8 war der Soft-UART auf PortB.0 und die Trägerfrequenz auf PortB.1

Gruß

mic

Barthimaeus
10.02.2008, 19:15
Die LED war richtig gepolt, allerdings war in den Fuses komishcerweise ein Voteiler von 8 für den Timer aktiviert ^^ Wie kann das sein?

radbruch
10.02.2008, 19:43
Auslieferzustand der tiny13 ist 1,2MHz. Ich habe mich nicht getraut danach zu fragen *lol*

mic

Barthimaeus
10.02.2008, 20:10
Auf 9,6Mhz hatte ich ihn ja umgestell. Da gibt es aber noch ein weiteres bit, dass ich nicht kannte, dass nur einen Vortieler für den Timer einstellt ^^ In Zukunft kannst du bei mir gern fragen ... ->Anfänger