Forum: HF, Funk und Felder Funksteckdosen REV, C-Programm für Microcontroller


von Martin Remplbauer (Gast)


Lesenswert?

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.

von Martin (Gast)


Lesenswert?

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.

von Martin Remplbauer (Gast)


Angehängte Dateien:

Lesenswert?

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!

von Mario G. (suicided)


Lesenswert?

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

von JoachimB (Gast)


Lesenswert?

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

von JoachimB (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.