-
-
Moderator
Robotik Visionär
Hallo Harry
Primitiv ist nicht unbedingt schlecht, beim kleinen tiny13 sogar eher gut. Eine IR-LED aus einer alten Fernbedienung sollte eigentlich grundsätzlich mal funktionieren.
Mit toggeln meine ich das Ein- und Ausschalten der Trägerfrequenz die deine RC5-Signale transportiert. Wenn du einen 38kHz-TSoP verwendest, mußt du die eingeschaltete LED zusätzlich mit 38kHz takten. Der TSoP ignoriert alle anderen IR-Signale die nicht seiner Trägerfrequenz entsprechen. Das dient der Störsicherheit und ist wohl der Grund, warum deine Schaltung nicht funktioniert.
Das Aufmodulieren der Trägerfrequenz macht man am einfachsten indem man die LED mit ihrem Vorwiderstand zwischen zwei Ports des Mikrokontrollers anschließt. Beim Senden taktest du dann z.B. mit dem Timer im CTC-Mode den OC0x-Pin(Pin 5 oder 4 =Kathode der LED) mit den 38kHz (Achtung! Taktfrequenz für den Timer sind dann 76kHz!) und gleichzeitig schaltest du den anderen Pin (Anode) im Rythmus deiner Datenbits ein und aus. Die Bitzeiten erzeugst du mit dem zweiten Timer und einer ISR die die Bitfolge rausschiebt. Das scheint mir eine optimale Anwendung für den tiny13 zu sein: "Two Independent Output Compare Units" steht im Datenblatt.
Ob das so funktioniert habe ich auch noch nicht getestet, auch die Werte für OCRx kann ich dir nicht sagen. Ich bin noch Counter/Timer-Newbie. Beim 76kHz-Takt würde ich es mal so versuchen:
9600kHz/76kHz=126,31.. d.h. Prescaller=1 und OCRx=126 (das sind dann knapp 0,3% Fehler, das sollte der TSoP tolerieren)
Vielleicht könnte das noch ein Timerprofi bestätigen. Alles in Allem hört sich das sehr lecker an und scheint mir eine klasse Anwendung für meine eigenen tiny13 zu sein...
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen