Multischalter MS1           

von  Holger Fritzsch                      
Elektronik-Labor  Projekte   AVR   T13-Contest

 

Jeder kennt das Problem der Wechselschaltung, es werden spezielle Schalter und Mehraderleitungen benötigt. Wenn es mehr als zwei "Schaltstellen" werden sollen, wird es besonders kompliziert.

Tatsächlich geht es und vor allem eleganter. Die Lösung liegt in einem programmierbaren Mikrocontroller der Firma ATMEL, genauer dem Attiny13. Dieser bildet das Herz bzw. Hirn meiner Schaltung.

Der 8-beinige Chip ist sehr vielseitig einsetzbar, falls man ihn wie nachfolgend erläutert, Intelligenz "einprogrammiert". Mit der Schaltung können, je nach Anwendung, bis zu vier Taster (B1 bis B4) abgefragt werden. Das erfolgt prellfrei, nicht benötigte Taster werden nicht angeschlossen. Dabei ist B0 der zu schaltende Ausgang. Hier folgt eine Transistortreiberstufe (T1) und schließlich ein Relais (Rel). Der Vorteil dieses Konzepts ist die galvanische Netztrennung. Es können für o.g. Taster sogar "Klingeltaster" und entsprechende Leitungen benutzt werden. Natürlich könnte man eine Optokoppler-Triac Kombination benutzen. Diese Variante liegt bei mir auch vor, hat aber nicht den oben erwähnten Vorteil der Netztrennung. Außerdem benötigt man einen Triac, der in dem zu schaltenden Strombereich (bis 5A) schon einen beachtlichen Kühlkörper benötigt, was das Gerät vergrößern würde. Als Trafo reicht ein Typ von 50 bis 100 mA aus, da die Gesamtstromaufnahme  nur vom aktivierten Relais bestimmt wird und die des Chips vernachlässigend klein ist.



Die Funktion im Detail:

Das Programm beginnt mit den Deklarationen des Chiptyps - hier wird dem Compiler mitgeteilt um welchen Controller es sich handelt
Taktfrequenz: hier wird dem Compiler mitgeteilt wie schnell er zu arbeiten hat
Konfiguration des Ausgangs:
Hier wird im DDR (Data Diretion Register) festgelegt, daß sich B0 als Ausgang zu verhalten hat.(Datenrichtung raus)
Konfiguration des Eingangs:
Hier wird im DDR (Data Diretion Register) festgelegt, daß sich B1 bis B4 als Eingang zu verhalten haben.(Datenrichtung rein)
Aktivierung der Pullups:
Eingänge werden auf logisch 1 gesetzt, dies ist ein definiertes Potential, wenn die Taster nach Masse schalten. Diese Zeilen "ersparen" uns die sog. "Pullup-Widerstände", die von jedem Pin nach "+" führen würden. Es werden nun die internen Pullup-Widerstände aktiviert.
Endlosschleife:
Das Hauptprogramm steht zwischen „Do“ und „Loop" und es ist eine Abfrage. Es werden  über "Debounce" (prellfrei) die Tastenzustände abgefragt. Sie können entweder " 0 " geschlossen, oder " 1 " geöffnet sein.
Tritt der Zustand " 0 " ein, so wird die Schleife verlassen und zur Unterroutine "Schalten" gesprungen.
In dieser Routine wird der jeweilige Zustand des Ausgangsports B0 "getoggelt" .
Dieser Fall kann von den Tasten T1 bis T4 unabhängig voneinander erfolgen. Ist keine Taste geschlossen liegen an den jeweiligen Eingängen logisch " 1 " an, und wir verbleiben in der Abfrage -Endlosschleife.
End - gibt das Programmende an, an das sich die Subroutine "Schalten" anschließt.
Der Rücksprung erfolgt mit dem Befehl "Return", somit wird das Programm weiter in der folgenden Zeile ausgeführt.

Praxistips:
Man beginnt mit der Beschaffung der nötigen Einzelteile , z.B  Fa. Conrad, Reichelt.
Zur Trennung der Leiterbahnen hat sich bei mir ein 3mm- Spiralbohrer, der von Hand geführt wird, bewährt. Natürlich kann man auch einen kleinen Handfräser mit entsprechendem Schleifkopf verwenden.

Die verbliebenen Leiterzüge werden mit einem Glasradierer metallisch blank geputzt und möglichst nicht mehr mit den Fingern berührt. Danach setzt man die "Brücken" ein. Ich verwende hierzu isolierten Schaltdraht mit 0,5 bis 0,8mm Durchmesser, deren Enden man gut verzinnt. Nun setzt man die einzelnen Bauteile, entsprechend der aus dem  Bestückungsplan hervorgehenden Lage und Richtung ein und verlötet diese. Nach erfolgreicher Mehrfachkontrolle wird die Platine mit farblosen Schutzlack gestrichen.

Es ist zu beachten, dass auf der Platine Netzspannung anliegt. Gerade im Bereich des Netztrafos, des Relais und der beiden 2-fach Schraubklemmen ist besondere Vorsicht geboten.

Nach erfolgreichem Funktionstest sollte das Gerät in ein Kunststoffgehäuse oder Verteilerdose eingebaut werden. Einstellungen sind nicht erforderlich. Es hat sich u.U. bei langen Zuleitungen bewährt dem Taster und/oder den jeweiligen Anschlussklemmen einen keramischen 100nF-Kondensator parallel zu schalten. Das Gerät verrichtet inzwischen seit gut einem Jahr ohne Beanstandungen ihren Dienst.

Hinweis: Das vorgestellte Programm läuft auf dem ATTINY 22 / AT90S2343 /ATTINY 13 fehlerfrei.

Es ist nur das Regfile anzupassen.

In Bascom einstellen: HW_ Stack:16
                               SW_ Stack:8
                               Framesize:24  

Download: MS1.zip

         
$regfile = "attiny13.dat"                                   'Prozessortyp
$crystal = 1200000 'Takt

Config Pinb.0 = Output 'output -DeKlaration
Config Pinb.1 = Input 'input 1 -Deklaration
Config Pinb.2 = Input 'input 2 -Deklaration
Config Pinb.3 = Input 'input 3 -Deklaration
Config Pinb.4 = Input 'input 4 -Deklaration

Portb.1 = 1 'Aktivierung des Pullup- Widerstand
Portb.2 = 1 'Aktivierung des Pullup- Widerstand
Portb.3 = 1 'Aktivierung des Pullup- Widerstand
Portb.4 = 1 'Aktivierung des Pullup- Widerstand


Do 'Endlosschleife, Abfrage
Debounce Pinb.1 , 0 , Schalten , Sub
Debounce Pinb.2 , 0 , Schalten , Sub
Debounce Pinb.3 , 0 , Schalten , Sub
Debounce Pinb.4 , 0 , Schalten , Sub
Loop
End 'Programmende

Schalten: 'Subroutine "Schalten"
Toggle Portb.0
Return

 


Elektronik-Labor  Projekte   AVR   T13-Contest