![]() |
Wenig Aufwand bereitet die Steuerung des Senders, als Platine eignet sich auch ein Lochraster |
Die Fuchsjagd ist nicht nur eine sommerliche Beschäftigung für Grünröcke, auch Funkamateure pirschen gern durch das Dickicht. Zum Glück geschieht das ohne Flinte und Gewehr, den Vierbeinern wird bei einer Amateurfunk-Fuchsjagd kein Haar gekrümmt. Ausgestattet mit Empfänger, Antenne und Kopfhörer geht es mit viel Spaß in Wald und Feld. Ob auf 2m oder 80m, gut versteckt im Unterholz wechseln sich die Füchse beim Senden ab, ganz nach dem Motto: "Jeder darf einmal". Ziel der Fuchsjagd ist es, die versteckten Sender (Füchse) möglichst schnell zu peilen und zu orten. Und manchmal sind bei einem Fuchs kleine Aufgaben versteckt, die es zu lösen gilt.
In der Regel werden fünf CW-Sender im Grün versteckt, die sich beim Senden jede Minute abwechseln, genau gesagt geht jeder der Sender alle fünf Minuten für eine Minute auf Sendung. Zur Unterscheidung der Sender ist jedem ein unverwechselbares Rufzechen zugeordnet. Der erste Fuchs besitzt das Rufzeichen MOE, der zweite MOI, der dritte MOS, der vierte MOH, der fünfte MO5. Im Morsecode sieht das so aus: Die Morsekennung beginnt mit "Dah Dah" - das Morsezeichen für den Buchstaben M, dann folgt "Dah Dah Dah" -- der Buchstabe O und das Rufzeichen des ersten Fuches endet mit einen kurzen "Did", das ist ein E. Der zweite Fuchs ist ebenfalls gut zu erkennen, denn dieser sendet nach M und O zwei Punkte "Did Did", das ist der Buchstaben I. Der dritte Fuchs sendet M und O, gefolgt von drei Punkten, das ist das S. Wie es weitergeht, wissen Sie sicher schon: Der vierte Fuchs sendet wieder M, dann O und danach folglich vier Punkte, also ein H. Zuletzt folgt der fünfte Fuchs mit M, O und 5 Punkten, das ist die Ziffer 5. Diese prägnanten Rufzeichen wurden gewählt, um allen Interessierten, ob SWL, Funkamateur oder Otto Normalbürger die Möglichkeit zu geben, an Fuchsjagden teilzunehmen. Die Praxis zeigt, dass dieses System hervorragend funktioniert.
Winterzeit - Bastelzeit. In der kalten Jahreszeit pirscht kaum jemand durch das Unterholz. Dafür ist es eine prima Zeit, die nächste Fuchsjagd vorzubereiten. Zum Beispiel durch den Aufbau eines geeigneten Empfängers oder einiger Sender. Die hier beschriebene kleine Schaltung "Foxcontrol" ist eine Zeitsteuerung für Fuchsjagdsender und hält sich exakt an das MOE-System. Welchen Fuchs er "spielen" soll, merkt Foxcontrol anhand des gesteckten Jumpers F1 bis F5. Sie bestimmen, ob die Schaltung als Fuchs 1, 2, 3, 4 oder 5 agiert. Natürlich darf nur ein Jumper gesteckt sein, damit der kleine Mikrocontroller eindeutig im Bilde ist. Der Jumper kann als Drahtbrücke ausgeführt werden und legt den betreffenden Eingang des Mikrocontrollers auf Massepotenzial. Zur Spannungsversorgung kommt ein 78L05 im Transistorgehäuse zum Einsatz, der maximal 100 mA leistet. Getaktet wird der 8051-Abkömmling, ein Atmel AT89C2051 Mikrocontroller, mit stattlichen 12 MHz. Als einziges Bedienungselement dient ein Taster, der die Schaltung mit weiteren Sendern zeitlich synchronisiert. Für eine komplette Ausstattung zur Fuchsjagd wird man Foxcontrol fünf Mal aufbauen. Zum Starten und Synchronisieren der Füchse drückt man die fünf Starttaster der Sender möglichst gleichzeitig einmal kurz herunter. Damit werden die Füchse zeitgleich gestartet. Es reicht aber aus, die Füchse nebeneinander zu legen und die Taster so schnell wie möglich nacheinander zu betätigen.
Das Schaltbild ist nicht allzu umfangreich: Kernelemente sind der Prozessor und die RTC PCF8583 | ![]() |
Und damit kommen wir zur Zeitsteuerung. Damit der Mikrocontroller weiß, was die Stunde (besser gesagt, die Minute) geschlagen hat, bedient er sich eines kleinen Zeitgebers, einer Real Time Clock (RTC). Zum Zeitgeber gehört der Quarz von 32,768 kHz und die variable Kapazität. Die RTC stammt von Philips und wird über zwei Leitungen angesprochen, SCL und SDA. I2C heißt das Protokoll und SCL ist für den Sende/Empfangstakt verantwortlich, während SDA die Dateninformation transportiert. SCL und SDA sind zudem auf den Stecker SL1 heraus geführt, ebenso wie +5V und GND. Damit ist es möglich, die Steuerung leicht um weitere I2C-Komponenten, die eventuell auf der Senderplatine untergebracht sind, zu erweitern. Die Schaltung besitzt drei wesentliche Ausgänge, PTT, /PTT und CW-OUT. PTT ist die ganze Zeit auf High-Pegel, während Morsezeichen gesendet werden. Das Signal /PTT verhält sich umgekehrt und wird während einer Aussendung auf Masse gezogen. Beide Signale sind nicht für Fuchssender bestimmt, sondern für andere Anwendungen in Verbindung mit üblichen Funkgeräten. CW-OUT dient speziell dem Fuchs und tastet ihn im Takt der CW-Zeichen. Sendet der Mikroprozessor ein Zeichen, setzt er CW-OUT auf High-Pegel. Im Ruhezustand ist CW-OUT daher Low. Mit CW-OUT kann man über einen Basiswiderstand direkt die Basis eines Transistors bedienen, der den Fuchs "on the air" bringt.
![]() |
Der Bestückungsplan zeigt u.a. die Belegung der beiden 4-poligen Stecker |
Kaum größer als eine Streichholzschachtel: Das kompakte Layout | ![]() |
Die kleine Schaltung ist schnell bestückt. Sie kommt mit einer einseitigen Platine und ohne Drahtbrücken aus. Der Starttaster sollte so montiert werden, dass er aus dem Gehäuse herausschaut. Dann muß man es nicht öffnen, um Foxcontrol zu synchronisieren.
...wurde in Basic geschrieben und ist dank der Subroutinen sehr übersichtlich. Das folgende Listing zeigt unter anderem, wie man recht einfach Morsezeichen erzeugen kann.
Rem Steuerung für Fuchsjagdsender Rem Bascom Compiler für 8051, Version 1.0.0.16 Rem by Michael Woeste, dg5dbz ' Hardware: ' Jumper, die bestimmen, welcher Fuchs es ist: ' P1.7 gesetzt für Fuchs 1 (sendet 1. Minute) ' P1.6 gesetzt für Fuchs 2 (sendet 2. Minute) ' P1.5 für Fuchs 3 ' P1.4 für Fuchs 4 ' P1.3 für Fuchs 5 ' I2C: ' SDA auf P1.1 ' SCL auf P1.0 ' CW-Ausgabe auf P1.2 ' Optionale, positiv arbeitende PTT auf P3.4 ' Optionale PTT negativer Logik: /PTT an Pin P3.5 ' Fuchs-Synchronkabel: ' Fuchs-Synchrontaster (Schliesser gegen Masse) an P3.7 ' alle Füchse mit einem Kabel gleichzeitig synchronisieren ' oder mehrere Taster flott hintereinander drücken ' PCF8583 ' Signal A0 auf GND ' mit 12 MHz getaktet $crystal = 12000000 Config Scl = P1.0 ' hier ist SCL angeschlossen Config Sda = P1.1 ' und hier SDA Dim Fuchs1 As Bit Dim Fuchs2 As Bit Dim Fuchs3 As Bit Dim Fuchs4 As Bit Dim Fuchs5 As Bit Dim Dummy As Bit Dim Wadr As Byte , Radr As Byte ' Schreib- u. Leseadresse PCF8583 Dim On_air As Bit ' Flag: Bin auf Sendung Dim Sekunde As Byte , Minute As Byte ' für Zeit Dim Temp As Byte ' für alles und nichts Dim D As Byte , I As Byte ' in Rufz_senden benötigt 'bestimmt, welcher der 5 Füchse das ist Declare Sub Senden_an Declare Sub Senden_aus Declare Sub Uhr_stellen Declare Sub Hole_zeit Declare Sub Rufz_senden Declare Sub Readloop ' wird von Rufz_senden aufgerufen 'Variablen-Initialisierungen Dummy = 0 Fuchs1 = 0 ' Flag: welcher Fuchs bin ich (1-5) ? Fuchs2 = 0 Fuchs3 = 0 Fuchs4 = 0 Fuchs5 = 0 Wadr = &B10100000 ' 8583 mit A0 auf 0 Radr = &B10100001 ' 8583 mit A0 auf 0 !! 'Programm Start 'Initialisierungen P1 = 255 ' auf Eingang schalten Reset P1.2 ' cw aus Call Welcher_fuchs ' Abfrage Jumper Call Senden_aus ' zusätzliche PTT aus 'nur zum Test: 'Set Fuchs5 'Minute = 4 'Hauptschleife Do If P3.7 = 0 Then Call Uhr_stellen ' falls Sync-Signal auftritt End If Call Hole_zeit If Fuchs1 = 1 Then ' falls ich der Fuchs 1 bin If Minute = 0 Then ' falls erste Minute Set On_air ' gehe auf Sendung Call Senden_an ' zusätzlich PTT schalten Else ' falls nicht Reset On_air ' bin nicht dran Call Senden_aus ' PTT aus End If End If If Fuchs2 = 1 Then If Minute = 1 Then Set On_air Call Senden_an Else Reset On_air Call Senden_aus End If End If If Fuchs3 = 1 Then If Minute = 2 Then Set On_air Call Senden_an Else Reset On_air Call Senden_aus End If End If If Fuchs4 = 1 Then If Minute = 3 Then Set On_air Call Senden_an Else Reset On_air Call Senden_aus End If End If If Fuchs5 = 1 Then If Minute = 4 Then Set On_air Call Senden_an Else Reset On_air Call Senden_aus End If End If If Minute = 5 Then Call Uhr_stellen ' sobald der 5. Fuchs fertig ist, alle Uhren auf 0:0 End If If On_air = 1 Then ' Kennung geben Call Rufz_senden Wait 1 ' eine Sekunde warten zwischen 2 Rufzeichen End If Loop Until Dummy = 1 ' endlose Schleife End ' liest Jumper aus Sub Welcher_fuchs If P1.7 = 0 Then Set Fuchs1 If P1.6 = 0 Then Set Fuchs2 If P1.5 = 0 Then Set Fuchs3 If P1.4 = 0 Then Set Fuchs4 If P1.3 = 0 Then Set Fuchs5 End Sub ' zusätzliche PTT schalten Sub Senden_an Set P3.4 Reset P3.5 End Sub ' zusätzliche PTT aus Sub Senden_aus Reset P3.4 Set P3.5 End Sub ' Füchse haben die Rufzeichen MOE (Fuchs1) bis MO5 (Fuchs5) Sub Rufz_senden ' CW-Ausgang ist P1.2 'erst MO senden Restore Allfox: ' m,o gilt für alle Füchse For I = 1 To 24 Call Readloop ' Read Data and Set/Reset Pin P1.2 Next ' MO gesendet, jetz kommt es für jeden Fuchs getrennt ' E (einmal kurz) für Fuchs1 If Fuchs1 = 1 Then Restore Fox1 For I = 1 To 4 ' e und dreimal pause = 4 Ziffern in DATA Call Readloop Next End If ' I (zweimal kurz) für Fuchs2 If Fuchs2 = 1 Then Restore Fox2 For I = 1 To 6 Call Readloop Next End If ' S (dreimal kurz) für Fuchs3 If Fuchs3 = 1 Then Restore Fox3 For I = 1 To 8 Call Readloop Next End If ' H (viermal kurz) für Fuchs4 If Fuchs4 = 1 Then Restore Fox4 For I = 1 To 10 Call Readloop Next End If ' 5 (fünfmal kurz) für Fuchs57 If Fuchs5 = 1 Then Restore Fox5 For I = 1 To 12 ' 12 = Anzahl der Ziffern in DATA Call Readloop Next End If End Sub ' Wird mehrfach von Rufz_senden aufgerufen ' liest DATA und setzt / löscht CW-Out Pin P1.2 Sub Readloop Read D If D = 1 Then Set P1.2 Else Reset P1.2 End If Waitms 100 ' CW-Geschwindigkeit für ein e End Sub ' Stellt Fuchs auf 0:00 Uhr ' z.B. nachdem der 5.Fuchs gesendet hat Sub Uhr_stellen I2cstart 'generate start I2cwbyte Wadr 'write address I2cwbyte 0 'select control register I2cwbyte 8 'set year and day bit for masking I2cstop 'generate stop I2cstart 'generate start I2cwbyte Wadr 'write mode I2cwbyte 2 'select seconds Register I2cwbyte 0 'write seconds I2cwbyte 0 'write minutes I2cwbyte 0 'Write Hours I2cwbyte 0 'write days I2cwbyte 0 'write months I2cstop End Sub Sub Hole_zeit ' liest Minute und Sek. aus Uhr I2cstart 'generate start I2cwbyte Wadr 'write addres of PCF8583 I2cwbyte 2 'select second register I2cstart 'generate repeated start I2cwbyte Radr 'write address for reading info I2crbyte Sekunde , Ack 'read seconds I2crbyte Minute , Ack 'read minutes I2crbyte Temp , Ack 'read hours I2crbyte Temp , Ack 'read year and days I2crbyte Temp , Nack 'read weekday and month I2cstop 'generate stop Sekunde = Makedec(sekunde) Minute = Makedec(minute) End Sub ' Hier die Definitionen für MOE bis MO5 ' Bei Allfox ist MO codiert, der Rest beim jeweiligen Fox1..5 Allfox: Data 1 , 1 , 1 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 1 , 1 , 1 , 0 , 1 , 1 , 1 , 0 , 0 , 0 Fox1: Data 1 , 0 , 0 , 0 'moe Fox2: Data 1 , 0 , 1 , 0 , 0 , 0 'moi Fox3: Data 1 , 0 , 1 , 0 , 1 , 0 , 0 , 0 'mos Fox4: Data 1 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 0 , 0 'moh Fox5: Data 1 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 0 , 0 'mo5 End
Und hier geht es zum Download.
Für dieses Projekt biete ich einen Programmierservice an.