Ich möchte mit meinen Mikrocontroller (ATMEL T89C51RD2) Funksteckdosen ansteuern. Hab den Sender von der Fernbedinung ausgebaut. Meine Frage ist welches Signal ich vom Mikrocontroller an den Sender schicken muss bzw. wie ich das Programm schreibe.
Da muss man doch etwas mehr über deinen Sender wissen. Z. B. wie die Tasten des Senders "funktionieren" . Wenn eine Taste einfach GND durchschaltet zum Senden, dann könntest du u. U. deinen Controller mit der Senderelektronik "verheiraten" und der Controller besorgt das Durchschalten von GND.
Ich meine das so: Ich habe das Signal ausgelesen, dass er über den Sender sendet, und dass wiederum die Funksteckdose empfängt. (Bild ist im Anhang). Leider weis ich jetzt nicht genau wie ich solch ein Signal generieren kann. Sollte solch ein Signal mit warteschleifen realisiert werden oder doch eher mit Timer? wobei ich nicht wirklich weis wie der Timer einzubinden ist bzw. wie er genau funktioniert!
Jede steigende Flanke wird dem Sender ein neues Bit signalisieren. Ist "High-Zeit" dann ca. 1 ms (jedenfalls länger als 500 µs) ist 'ne "1", wenn nicht, dann isses 'ne "0". Zwischen den einzelnen Bits gibts 'ne Pause von 250 µs. Wenn der Controller sonst nichts anderes zu tun hat, kann man das durchaus mit warteschleifen realisieren. Dann ist aber ein wenig Zeittuning erforderlich um das "Protokoll" einzuhalten. Mit Timern geht das natürlich auch - aber nicht ganz so einfach. Du musst dann mit Interrupts arbeiten, was ein wenig Einlesen erfordert. Pseudocode:
1 | while (noch_bits_zu_senden) { |
2 | pin = high; |
3 | wait (250µs); |
4 | if (bit == 0) |
5 | pin = low; |
6 | wait (750µs); |
7 | pin = low; |
8 | wait (250µs); |
9 | }
|
Die Frage ist unter "µC & Elektronik" vielleicht besser aufgehoben. VG mario
Martin Remplbauer schrieb: > Meine Frage ist welches Signal ich vom Mikrocontroller an den Sender > schicken muss bzw. wie ich das Programm schreibe. das Signal, dass der Mikrocontroller an den Sender schicken muss, ist hier näher beschrieben: http://avr.börke.de/Funksteckdosen.htm Gruß Joachim
Martin Remplbauer schrieb: > Leider weis ich jetzt nicht genau wie ich solch ein Signal > generieren kann. Sollte solch ein Signal mit warteschleifen realisiert > werden oder doch eher mit Timer? wobei ich nicht wirklich weis wie der > Timer einzubinden ist bzw. wie er genau funktioniert! Wenn der Controller nur das Sendesignal erzeugt und dabei nicht von einem anderen Interrupt gestört wird, dann ist eine Warteschleife eine einfach zu realisierende Sache. Ich würde eine Warteschleife für das kürzeste Signal schreiben. Der kurze Puls und die kurze Pause werden dann mit einem einmaligen Schleifendurchlauf erzeugt. Das lange Signal, sowohl Puls als auch Pause, ist dreimal so lang. Die Pause zwischen zwei Datenpaketen ist 31 mal so lang. Weitere Details findest Du im IC-Datenblatt: http://www.princeton.com.tw/downloadprocess/downloadfile.asp?mydownload=PT2262.pdf Gruß Joachim
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.