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.]
:
Bearbeitet durch User
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.