Nachfolgend beschreibe ich den Selbstbau einer Funkfernsteuerung für
Dorma-Torantriebe. Weil mir die Sender fürs Kaufen schlicht zu teuer
waren, hab ich mich an den Selbstbau gewagt.
Allgemeines:
Der Sender sendet auf den bekannten 433 MHz. Er sendet immer dasselbe
Protokoll, benutzt also keinen Rolling-Code o.ä. Der Sender hat 10
Dip-Schalter, mit denen die Codierung eingestellt wird (damit der
Empfänger reagiert, müssen die Schalterstellungen identisch sein, logo).
Das Protokoll habe ich mit einem Standard 433 MHz-Empfänger und einem
Selbstbau-Logic-Analyzer ausgelesen.
Codierung:
Das gesendete Protokoll ist für unterschiedliche Schalterstellungen im
Dateianhang dargestellt. Darin gibt es zwei Zeiten: 475 us für kurze
Pulse/Pausen sowie 950 us für lange Pulse/Pausen. Die ganz lange Pause
zwischen den Wiederholungen dauert 16,7 ms (16.700 us).
Ist ein Dip-Schalter eingeschaltet (on), wird eine kurze Pause und ein
langer Puls gesendet. Ist der Schalter ausgeschaltet, wird eine lange
Pause und ein kurzer Puls gesendet. In der Darstellung habe ich das Bits
genannt. Die Sende-Reihenfolge ist:
- Start, kurzer Puls
- Bit für Schalter 1
- Bit für Schalter 2
... usw. ...
- Bit für Schalter 8
- Bit für Schalter 10 (ja, wirklich!)
- unveränderlich ein Bit 0
- unveränderlich ein Bit 1
- Bit für Schalter 9
- Pause 16,7 ms/16.700 us
Danach beginnt das Protokoll wieder von vorn.
Schaltung:
Zentrales Bauteil ist ein ATmega8. Er läuft mit dem internen Oszillator
auf 1 MHz, die Fuses sind im Auslieferungszustand. Der ATmega gibt das
Sende-Protokoll über Port C5 aus. Über die Ports C3 und C4 wird der
Sender (ein simples unintelligentes 433 MHz-Sendemodul) mit Strom
versorgt. Über die Dip-Schalter wird die Codierung vorgegeben. Die
Stromversorgung erfolgt durch zwei Knopfzellen (ich habe den Typ 2025
verwendet, 2016 gehen auch; 2032 sind für den Halter zu dick), eine
Diode in Durchlassrichtung bringt die Spannung auf verträgliche ca. 5V.
Zwei 100nF Kerko und ein 10uF Elko (liegend unterm Controller) stützen
die Spannung. Die Antenne ist ein Draht mit 16 Windungen auf einem 6
mm-Bohrer, auf ca. 3 cm auseinandergezogen. Ein gestreckter 17 cm-Draht
bringt sicher höhere Sendeleistung, war mir aber zu groß. HF-Kenner
kriegen die Antenne sicher viel besser hin. Aufgebaut ist die Schaltung
auf Lochraster. Bilder findet ihr in den Dateien.
Programm:
Das Programm ist mit der Demo-Version von BASOM erstellt. Der Quellcode
ist hinterlegt.
Besonderheit: Die Dip-Schalter schalten nach Masse. Ein geschlossener
Schalter ("on") bringt für den Controller daher den Wert 0 - bitte lasst
euch davon nicht verwirren...
Die Fuses entsprechen dem Auslieferungszustand.
Funktion:
Durch einen Taster wird der Controller mit Strom versorgt. Er schaltet
das Sendemodul ein und sendet das Protokoll. Nach 50 Sendungen (dauert
ca. zwei Sekunden) schaltet er das Modul ab und legt sich schlafen. So
werden die Batterien nicht geleert, wenn der Taster in der Tasche mal
dauerhaft gedrückt ist.
Dateien:
1. Scans der Sendeprotokolle (erstellt mit Scanalogic - Ikalogic, Bilder
von Hand zusammen-montiert)
2+3. Fotos vom Musteraufbau
4+5. Schaltplan und Bestückungsplan
6+7. Quellcode und Hex-Datei
[Edith sagt: Korrektur der Beschreibung. Ich war schon vor längerer Zeit
auf 1 MHz umgestiegen, Fuses sind im Auslieferungszustand.]
Wenn Du die beiden Pins für die Sender-Versorgung parallel schaltest, musst Du sie auch gleichzeitig ein- und ausschalten, sonst gibt es einen Kurzschluss! Oder die Brücke Pin26-27 entfernen. Nach dem Sender-Einschalten würde ich noch ein wenig warten, da ja erst der C1 aufgeladen werden muss. Ansonsten saubere Sache, Vielen Dank! Man kann sich natürlich überlegen, ob man die Dipschalter braucht oder ob man den Code im Speicher ablegt, entweder gleich beim Compilieren oder z.B. über eine serielle Verbindung. Dann reicht nämlich ein kleiner ATtiny.
Zitat Weil mir die Sender fürs Kaufen schlicht zu teuer waren, hab ich mich an den Selbstbau gewagt. http://www.ebay.de/itm/Garagentor-Handsender-Fernbedienung-Universal-Funk-433-92MHz-/271568041325?pt=LH_DefaultDomain_77&hash=item3f3ab7756d solong falker
@eProfi: Ich hab bewusst zwei Pins parallel benutzt, um ausreichend Strom zu liefern. So habe ich für 1/8 Mikrosekunde einen Kurzschluss, das hielt ich für vertretbar. Du hast aber natürlich Recht, sauberer wäre, die Pins gleichzeitig zu schalten. Sicherlich würde auch ein einzelner Pin ausreichend Strom liefern. Das mit der Pause nach dem Einschalten ging mir jetzt auch durch den Kopf. Eine kleine Pause würde dem Sender mehr Gelegenheit geben, sich bereit zu machen. Die Dip-Schalter habe ich ganz bewusst eingebaut, um die Bedienung möglichst original zu haben. Du hast aber völlig Recht, bei einem festen Code kannst Du den auch einfach einprogrammieren. @Rolf: Gutes Angebot. Erstens hab ich für meinen Krams aber nichtmal zwei Euro bezahlt (Bastelkiste ist gut gefüllt). Und zweitens - wahrscheinlich wichtiger - wollte ich einfach wissen, ob ich das nicht auch hinkriege. Dritter Vorteil wäre, wenn Dir Deine letzte Fernbedienung plötzlich verreckt und Du keinen Geber mehr fürs Programmieren hast.
Hier hab ich zwei kleine Änderungen vorgenommen, auf die eProfi hingewiesen hat: Die Pins für die Sender-Versorgung schalte ich nun gleichzeitig ein. Das klappt nicht mit Aliasen, sieht daher weniger schön aus. So schließen sich die beiden Pins aber nicht mehr gegenseitig kurz. Nach Einschalten des Senders warte ich einen kleinen Moment. So kann sich der Kondensator aufladen und sich der Sender bereitmachen. Danke für die Tipps!
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.


