SENDEMODUL MIT PICAXE

In einem Sonarheft habe ich einen einfachen selbstgebauten Mehrkanalschalter vorgestellt, den ich in meinem XXVIw eingebaut habe. Der Schalter wird mit Tippbefehlen gesteuert und steuert die Ausfahrgeräte inklusive Schnorchelmast an und ist so wie er präsentiert wurde natürlich auf das Boot zugeschnitten. 

Bei den ersten Probefahrten des XXVIw wurden die Ausfahrgeräte und die damit verbundene Ansteuerung ausgiebig getestet. Dabei nervte recht schnell das dauernde eintippen der gewünschten Funktion, ein schönes Beispiel für Idee und praktische Ausführbarkeit. In der Werkstatt sah alles so schön aus, am See war das tippen nur noch nervig. Schnell kam der Wunsch nach einem Sendemodul, welches die Funktion auf Knopfdruck schaltet. Von meinen vorhergehenden Basteleien hatte ich noch eine 3*4 Tastaturmatrix rumliegen die ich anstatt loser Taster verwenden wollte. Um Eingänge am Mikroprozessor zu sparen wurde die Matrix mit verschiedenen Widerständen so verschaltet, dass jeder Tastendruck einen spezifischen Widerstandswert ergab der mit dem A/D Wandler im PICAXE 08M2 leicht ausgelesen werden konnte. Nun wurden den Widerstandswerten entsprechende Schaltvorgänge zugeordnet. Das gestaltete sich auf Anhieb für mich als Programmierlaien stellenweise schwieriger als gedacht: Der Chip erzeugte aus einem mir nicht ersichtlichen Grund mehr Schaltvorgänge als gewünscht. Ich habe die Suche des Fehlers nach kurzer Zeit abgebrochen und einfach eine Umgehung (neudeutsch: "Workaround") programmiert womit dann das Programm auch funktionierte. Das sieht im Code zwar unschön aus, sieht später aber kein Mensch mehr und ich hab ein paar graue Haare weniger.

Die Schaltung macht nun genau das, was ich von Hand am See bisher mehr oder weniger mühsam einge"morst" habe und funktioniert recht gut. Allerdings ist der Einbau der Schaltung in den Sender recht tricky, denn der Sender stört den Chip recht heftig und es mussten einige Kondensatoren in der Schaltung verstreut werden Vermutlich wäre es noch besser, die Schaltung in ein Metallgehäuse einzubauen, aber da habe ich drauf verzichtet. Die Schaltung ist auf meine MC19 angepasst, sie gibt auf Steckplatz 9 genau 5 Volt heraus welche zum Betrieb der Schaltung benötigt werden. Bei der Inbetriebnahme stellte ich fest, dass in den Einstellungen die Eingänge auf 150% gedreht werden müssen. Genauso funktionierte die Schaltung erst, als die Vorwiderstände der Transistoren entsprechend verringert wurden sodass die Transistoren weiter öffneten. Das liess sich prima an der Fernbedienung nach drücken des Jog Dial sehen, denn dann werden die aktuellen Servowege angezeigt und die stiegen nach Anpassung der Widerstände auf 100%. Bei Nachbau also darauf dringend achten.

Die Software hat noch Speicherplatz für Modifikationen frei. Beispielsweise wäre es denkbar, mit der 3x4 Tastaturmatrix bis zu 20 Funktionen anzuwählen. Diese sind in 2x10 Funktionen aufgeteilt. Die unteren 10 Funktionen werden mit den Tasten 0-9 angewählt und mit der Taste * "abgeschickt", die oberen 10 Funktionen werden mit Eingabe der # beendet. Somit könnte ein großer PICAXE mit entsprechenden Ausgängen angesteuert werden, oder zwei Kleine, welche sich obere und untere Funktionen teilen. Natürlich gehen auch 3x9 Ausgänge oder 8x4... Und das alles mit einem 8poligen Chip im Sender und einer billigen Matrix Tastatur. Selbstverständlich ist die Übertragung der Schaltbefehle alles andere als schnell und weder codiert noch mit Prüfsummen versehen. Einen Tauchtank würde ich auch nicht darüber schalten, aber es ist einfach, nachvollziehbar, quelloffen und somit selbst erweiterbar. 

DAS PROGRAMM

;sendermodul mit picaxe 08m2

;tastatur mit widerstandsleiter an pin c.2, ausgang1 an pin c.4, ausgang2 an pin c.1

;

;1-3=820r,1-5=1k,2-7=15k,4-6=560r,4-plus=100r,3-minus=1k,6-7=3k3,5=ausgang

;

;1=15,2=26,3=38,4=51,5=80,6=106,7=152,8=186,9=206,0=241,*=228,#=246

;

#picaxe08m2

sertxd   ("sendermodul mit 08m2",cr,lf) ;text wird bei einschalten zur identifizierung des chips gesendet

;disablebod

;disconnect

symbol eingang = c.2

symbol transoben = c.1

symbol transunten = c.4

symbol adwert = b0

symbol adwertalt = b1

symbol zahl = b2

symbol schleife = b3

symbol kurz = w3

symbol lang = w4

 

low transunten

low transoben

kurz = 300 ;kurzer impuls 0,3sec

lang = 700 ;langer impuls 0,7sec

 

main:

schleife = 0

zahl = 0

readadc eingang , adwert

 

select case adwert

case 0 to 4 ;leerlauf

goto main

case 5 to 20 ;taste 1

high transunten : pause lang : low transunten : pause kurz

goto main

case 21 to 32 ;taste 2

high transunten : pause kurz : low transunten : pause kurz

high transunten : pause lang : low transunten : pause kurz

goto main

case 33 to 44 ;taste 3

zahl = 1

case 45 to 65 ;taste 4

zahl = 2

case 66 to 93 ;taste 5

zahl = 3

case 94 to 129 ;taste 6

zahl = 4

case 130 to 167 ;taste 7

zahl = 5

case 170 to 196 ;taste 8

zahl = 6

case 197 to 216 ;taste 9

zahl = 7

case 217 to 232 ;taste *

zahl = 9

case 233 to 243 ;taste 0

zahl = 8

case 244 to 255 ;taste #

zahl = 10

endselect

for schleife = 0 to zahl

high transunten : pause kurz : low transunten : pause kurz

next schleife

high transunten : pause lang : low transunten : pause kurz ;abschliessender impuls

goto main