Decoder mit Microcontroller    

Signale im Motorola-Format decodieren und Magnetartikel steuern
Bauanleitungen

Unter "ARDUINO  => Decoder" wird unter "Teil 1" eine Schaltung "HJB Schaltdecoder 4 Servos OP v1.4"  beschrieben (siehe dort). Diese Schaltung habe ich modifiziert indem ich einen ARDUINO NANO mit entsprechender Programmierung verwende. Dabei werden viele bereits bekannte Schaltungsteile, sowie die komplette Funktionalität, aus der Schaltung "HJB Schaltdecoder 4 Servos OP v1.4" übernommen, sodass sich der Leser lediglich mit dem neuen Schaltungsteil "ARDUINO NANO" zu beschäftigen hat.

Teil 1: ein Decoder mit 4 Weichen-Servos und Anzeigen mittels ARDUINO NANO und 2 ATtiny85

Abb.1


Abb.2
Wir übernehmen die Eingangsstufe von unserer bereits bekannten Schaltung "4 Servos OP v1.4" und bauen sie auf einem Steckboard auf. Sodann wird eine Zentrale mit Keyboard angeschlossen. Von Interesse sind nun die Ausgänge des IC1 MC145027, in Abb.2 benannt mit E0, E1, E2, E3. Hier bieten sich nun 3 Möglichkeiten an:
1. Wir entnehmen die erzeugten Pegel einer Tabelle (siehe unter ARDUINO => Decoder => Abb.5).
2. Wir messen mittels Multimeter die Pegel bei jeder Keyboard-Tastenbetätigung 1rt, 2rt, bis 4gn. und notieren uns diese.
3. wir schließen einen Logic Analyzer an die Schaltung an und betätigen die Keyboard-Tasten 1rt, 2rt, bis 4gn nacheinander. Das Ergebnis zeigt dann die folgende Abb.3

Abb.3
Channel 0, angeschlossen an E3 (siehe Abb.1), triggert bei jeder Keyboard-Tastenbetätigung. Die dabei jeweils erzeugten Pegel an E0, E1, E2 werden unter Channel 1, 2, 3 angezeigt. So erkennt man bei einer einzigen Messung die jeweiligen Pegel bei Tastenbetätigungen: Taste 1rt => Pegel LLL, Taste 2rt => Pegel LHL, bis Taste 4gn => Pegel HHH.
Diese "Pegelmuster" von L´s und H´s an den Ausgängen E0 bis E3 müssen nun einem nachfolgen Microcontoller (wir werden hier einen ARDUINO NANO verwenden) zugeführt werden und dieser berechnet dann die zu schaltenden Ausgänge je nach anliegenden Pegeln.
HINWEIS: Informationen zu Logic Analyzer finden Sie unter Messtechnik => Logic Analyzer

Abb.4    Zahlen in den Kreisen nummerieren die Abfragen 1 bis 8
Um ein Programm für einen Microcontroller zu erstellen, ist erst einmal die erforderliche Programmstruktur zu überlegen. Bestens geeignet dazu ist ein Flussdiagramm, welches in der linken Abb.4 dargestellt ist.
Nach Programmstart wird E3 eingelesen (wird eine Keyboardtaste gedrückt, erscheint ein kurzer H-Impuls an E3).
Ist nun E3=L, dann wurde keine Taste gedrückt und das Programm springt zum Anfang zurück.

Ist E3=H, dann wurde eine Taste gedrückt

und das Programm liest E0, E1, E2 ein.



Danach führt das Programm Abfragen aus, um zu ermitteln welche Taste gedrückt wurde.


E0=L UND E1=L UND E2=L => schalte Ausgang D9 auf H

wenn nicht, nächster Schritt



E0=H UND E1=L UND E2=L => schalte Ausgang D9 auf L

wenn nicht, nächster Schritt




E0=L UND E1=H UND E2=L => schalte Ausgang D8 auf H

wenn nicht, nächster Schritt





E0=H UND E1=H UND E2=L => schalte Ausgang D8 auf L

wenn nicht, nächster Schritt



E0=L UND E1=L UND E2=H => schalte Ausgang D9 auf H

wenn nicht, nächster Schritt




E0=H UND E1=L UND E2=H => schalte Ausgang D9 auf L

wenn nicht, nächster Schritt



E0=L UND E1=H UND E2=L => schalte Ausgang D8 auf H

wenn nicht, nächster Schritt



E0=H UND E1=H UND E2=H => schalte Ausgang D8 auf L

wenn nicht, nächster Schritt

Abfrage Ende

Zurück zum Schleifenanfang

Ein ARDUINO NANO kommt zum Einsatz


Abb.5  zeigt die Beschaltung der Eingangsstufe zum ARDUINO NANO

Abb.6
Abb.6 zeigt den ersten Teil des Sketch für den ARDUINO NANO, welcher nur einmal beim Start ausgeführt wird.

Deklaration:
hier werden erforderliche Variablen definiert, sowie zugehörige Anschlüsse am ARDUINO NANO






Inizialisierung
hier werden die zugehörigen Ausgänge des ARDUINO NANO definiert.

Abb.7
Abb.7 zeigt den zweiten Teil des Sketch für den ARDUINO NANO.
Hier startet die Schleife.

Es folgt die Abfrage des NANO-Eingang A3:
wenn der Wert X3 (das ist der Pegel, welcher am NANO-Eingang A3 anliegt) größer 50 ist (also mit Sicherheit größer 2 Volt; d.h. H ist), dann werden die nachfolgenden Abfragen ausgeführt.

Diese nachfolgenden Abfragen weisen nacheinander den Variablen E0, E1, E2 die an den NANO-Eingängen A0, A1, A2 anliegenden Pegel zu, also jeweils HIGH (H) oder LOW (L).

Abb.8
Abb.8 zeigt den dritten Teil des Sketch für den ARDUINO NANO.
Mittels 8 UND-Abfragen der jeweiligen Werde (H oder L) von E0, E1, E2 werden die Adressen ADR1, ADR2, ADR3, ADR4 auf HIGH (H) oder LOW (L) gesetzt.

in der Programmiersprache bedeutet z.B.:

if ( (E0==LOW)&&(E1==HIGH)&&(E2==LOW) )
wenn E0=L    UND E1=H        UND E2=L
dann
digitalWrite (ADR2,HIGH);
schreibe in ADR2 ein H-Pegel


Da in der Deklaration mit
int ADR2=8;
und in der Inizialisierung
pinMode(8, OUTPUT);
der NANO-Ausgang D8 definiert wurde, erscheint am Ausgang D8 ein H-Pegel (also 5 Volt)

Entsprechendes gilt hier für die anderen Abfragen.





ENDE der Abfragen.

Schleifenende und Rücksprung zum Schleifenanfang.
Das war´s schon was für für das Programm eines ARDUINO NANO erforderlich ist. Das Listing habe ich mit Kommentaren versehen und zusätzlich neben der Abb.8 noch durch ein paar Erklärungen ergänzt. Anzumerken ist noch, dass im Flussdiagramm (Abb.4) bei "keine Taste gedrückt" zum Anfang gesprungen wird; im Sketch (Abb.7 bis Abb.8) springt das Programm bei Nichterfüllung der Abfrage (also keine Taste gedrückt) zum Ende der der Abfrage umfassenden geschweiften Klammern {...} und kehrt dann zum Schleifenanfang zurück, was auf das Selbe herausläuft! Grundlegende Informationen zum ARDUINO finden Sie unter ARDUINO => Grundlagen.
Schießt man einen Logic Analyzer an den so programmierten ARDUION NANO an (Channel-Anschlüsse wie in Abb.5) und betätigt nacheinander die Keyboard-Tasten 1rt, 2rt, 3rt, 4rt, 1gn, 2gn, 3gn, 4gn, so erhält man folgendes Messergebnis:

Abb.9
Wir erkennen im Messergebnis folgendes:
E3: liefert bei jedem Tastendruck (Keyboard-Taste) ein H-Impuls
E0, E1, E2: zeigt die vom IC MC145027 decodierten Pegel zur jeweils gedrückten Taste
ADR1: ist der Ausgang D9 des NANO und bei Taste 1rt auf H und bei Taste 1gn auf L (unser Ausgang für Adresse 1)
ADR2: ist der Ausgang D8 des NANO und bei Taste 2rt auf H und bei Taste 2gn auf L (unser Ausgang für Adresse 2)
ADR3: ist der Ausgang D7 des NANO und bei Taste 3rt auf H und bei Taste 3gn auf L (unser Ausgang für Adresse 3)
ADR4: ist der Ausgang D6 des NANO und bei Taste 4rt auf H und bei Taste 4gn auf L (unser Ausgang für Adresse 4)
Die Schaltung funktioniert also wie erwartet korrekt.
Wer über keinen Logic Analyzer verfügt, kann natürlich etwas umständlicher mit einem Multimeter an den Ausgängen D9 bis D6 nach jeder Tastenbetätigung messen messen. Oder man verwendet dazu die nachfolgend beschriebene Anzeige.

Anzeigen und Weichenservos


Abb.10
Die Abbildung 10 zeigt den vollständigen Schaltplan. Die Schaltung setzt sich aus 4 Bereichen zusammen:
3 Bereiche kennen wir bereits aus der Schaltung "Schaltdecoder 4 Servos OP v1.4", siehe unter ARDUINO => Decoder => Teil 1 (Beschreibungen siehe dort), diese sind hier in Abbildung 10 dargestellte Bereiche: Decoder, Anzeigen, und Weichendecoder. Der 4. Bereich ARDUINO Nano wurde oben beschrieben.

In Abbildung 10 wurden Ziffern in farbigen Kreisen für Anschlusspunkte eines Logic Analyzer eingezeichnet. Die untere Abbildung 11 zeigt das Ergebnis, wenn wiederum Keyboardtasten in der Reihenfolge 1rt, 2rt, 3rt, 4rt, 1gn, 2gn, 3gn, 4gn betätigt wurden.

Abb.11
Channel 0 bis 7 wurden bereits weiter oben auf der Seite beschrieben. Channel 8 bis11 zeigen die von den zwei ATtiny85 erzeugten PWM-Signale für die vier Servos. Das Programm für die ATtiny85 mit Beschreibungen kenn wir bereits, siehe unter Servosteuerung => Download 2W30ATtiny84 (ganz am Ende auf dieser Seite).
Anmerkung: die ATtinies erzeugen, je nach Stellung, permanente PWM-Signale, welche den Servos zugeführt werden. Der verwendete Servo funktioniert aber nun so, dass er sich selber abschaltet, wenn er seine jeweilige Endposition erreicht hat und verbraucht dann natürlich auch keinen Strom mehr. Ich habe aber auch leider bemerkt, dass es unter den Servos Typ "9g SG90" Exemplare gibt, die bei gewünschten Endpositionen nicht korrekt abschalten und dann weiter "zittern". Diese Exemplare sind dann leider nicht verwendbar (möglicher Weise könnte man im PWM-Programm die beiden Servopositionsstellungen so verändern, dass dieser Effekt nicht mehr auftritt. Ich werde dies bei Gelegenheit einmal ausprobieren).

Schaltungstestaufbau

Die Schaltung habe ich zu Testzwecken auf einem Steckbord aufgebaut, damit können Sie ebenfalls die Schaltung ausprobieren.

Abb.12   Die Schaltung auf 2 Steckbords
Steckplatine A: 5V Stromversorgung, Decoder, ARDUINO NANO, 2 ATtiny85.
Steckplatine B: Treiber-IC ULN2803A mit Anzeige-LRDs, Treiber-IC UDN2981A mit 4 angeschlossenen Servos.
Anmerkung: dieser Aufbau dient lediglich zu Testzwecken! Möglicherweise genügt die hier gezeigte Stromversorgung nicht den Anforderungen zum Betreiben aller 4 Servos; dann sollte eine stärkere 5V Stromversorgung verwendet werden.

Warum die PWM-Signale nicht mit dem ARDUINO NANO erzeugt werden, sondern mit 2 ATtiny85
Im Prinzip würde ein Programm zur Erzeugung der PWM-Signale spielend Platz im ARDUINO NANO finden. Das Programm wäre aber deutlich langsamer zur gleichzeitigen Ansteuerung von 4 Servos. Mit dieser hier gezeigten Schaltung bedient der ARDUINO NANO lediglich die Ansteuerung der 2 ATtiny85, welche dann sofort reagieren und die Servos bedienen.

Lohnt es sich einen ARDUINO NANO einzusetzen?
Gegenüber der Schaltung "HJB Schaltdecoder 4 Servos OP v1.4" (siehe "ARDUINO  => Decoder" unter "Teil 1") werden folgende Bauteile eingespart: 1x 47HC138, 2x LTV847, 1x 4044, 15x 510 Ohm. Bauteilkosten 2,87 € (Reichelt Preis März 2024). Für die hier beschriebene Schaltungslösung mit einem ARDUINO NANO kommt der Preis von 18,50 € hinzu (Reichelt Preis März 2024). Die Schaltung ist also um 18,50 € - 2,87 € = 15,63 € teurer! Der Einsatz eines ARDUINO NANO lohnt sich nicht! Daher werden auch keine Downloads zu dieser Schaltung eingestellt. Jedoch sollte gezeigt werden, wie ein Programm für einen Microcontroller aussehen kann.

Teil 2: ein Decoder mit 4 Weichen-Servos und Anzeigen mittels 1 ATtiny84 und 2 ATtiny85

Im obigen Teil 1 verwendeten wir einen ARDUINO NANO, welcher für unsere Schaltung viel mehr Funktionalität besitzt als erforderlich ist. Für unsere Zwecke vollkommen ausreichend ist ein deutlich preiswerter ATtiny84, welcher über mehr Pins verfügt als ein ATtiny85. Dennoch war die Beschäftigung mit dem Teil 1 nicht vergeblich! Denn:
1. mit einem ARDUINO NANO können Programme sehr einfach zu Überprüfungen hochgeladen werden.
2. Unser Programm (Sketch) kann
ohne Änderungen für einen ATtiny84 verwendet werden.
Lediglich die Verdrahtung ist anzupassen.
Somit genügen im Folgenden wenige Erklärungen. Dennoch werde ich vollständigkeitshalber Flussdiagramm und Sketch lediglich mit angepassten Kommentaren wiedergeben.

Abb.13
Die Abbildung 13 zeigt die Anschlussbelegungen
vom IC MC145027 zum ATtiny84,
sowie vom ATtiny84 zum IC UDN2981.


Weiter ist das 14-polige IC ATtiny84 abgebildet.
In den blauen Kreisen sind die Nummern angegeben, die im Programm (Sketch) für die Zuweisungen der ATtiny84-Pins zu verwenden sind.

Abb.14
Die Abbildung 14 zeigt im Grunde dasselbe Flussdiagramm wie in Abbildung 4, nur dass ich hier die Bezeichnungen statt eines ARDUINO UNO die des ATtiny84 angebe.
Nach Programmstart wird E3 eingelesen (wird eine Keyboardtaste gedrückt, erscheint ein kurzer
H-Impuls an E3).
Ist nun E3=L, dann wurde keine Taste gedrückt und das Programm springt zum Anfang zurück.

Ist E3=H, dann wurde eine Taste gedrückt

und das Programm liest E0, E1, E2 ein.
Danach führt das Programm Abfragen aus, um zu ermitteln welche Taste gedrückt wurde.

E0=L UND E1=L UND E2=L => schalte Nr. 9 auf H


wenn nicht, nächster Schritt

E0=H UND E1=L UND E2=L => schalte Nr. 9 auf L

wenn nicht, nächster Schritt


E0=L UND E1=H UND E2=L => schalte Nr. 8 auf H

wenn nicht, nächster Schritt


E0=H UND E1=H UND E2=L => schalte Nr. 8 auf L

wenn nicht, nächster Schritt


E0=L UND E1=L UND E2=H => schalte Nr. 9 auf H

wenn nicht, nächster Schritt

E0=H UND E1=L UND E2=H => schalte Nr. 9 auf L

wenn nicht, nächster Schritt


E0=L UND E1=H UND E2=L => schalte Nr. 8 auf H

wenn nicht, nächster Schritt


E0=H UND E1=H UND E2=H => schalte Nr. 8 auf L

wenn nicht, nächster Schritt

Abfrage Ende

Zurück zum Schleifenanfang
Die unteren Abbildungen 15 bis 17 zeigen das Listing für den ATtiny84 Sketch. Vergleicht man diese mit den obigen Abbildungen 6 bis 8 für das Listing des ARDUINO NANO, so wird man feststellen, dass sich die Listings, bis auf meine eingefügten Kommentare, nicht unterscheiden. D. h. die Programme sind Identisch! Die eingefügten unterschiedlichen Kommentare bieten lediglich eine Hilfe bezüglich der sich unterscheidenden Anschlüsse (Pins) vom ARDUINO NANO zum ATtiny84.
Ein großer Vorteil, dass ein für den ARDUINO NANO (oder auch UNO) geschriebenes Programm unverändert auch für einen ATtiny84 verwendbar ist (sofern hierfür die ATtiny84-Pins ausreichen!), ist u. A. folgender:
Man entwickelt sein Programm erst einmal auf einem ARDUINO NANO (oder UNO), kann das Programm beliebig testen, bis es zufriedenstellend funktioniert (ein wiederholtes Hochladen von Versuchsprogrammen ist ja mit dem über USB an den PC verbundenen ARDUINO leicht möglich). Erst wenn hier alles wunschgemäß funktioniert, überträgt man unverändert das Programm auf einen ATtiny84! Dazu muss natürlich (ähnlich wie bei einem ATtiny85) erst ein Bootloader auf den ATtiny84 gebrannt werden, bevor der Sketch hochgeladen werden kann. Dies werde ich (demnächst) unter ARDUINO => ARDUINO ATiny-Brenner einstellen.
HINWEIS:
Es ist von großem Vorteil, alle Variablen und Anschlüsse unter Deklaration und Inizialisierung zu definieren! Denn bei Änderungen von Anschlüssen (Pins) sind lediglich in diesen zwei Bereichen entsprechende Änderungen durchzuführen, vorausgesetzt Variablennamen bleiben unverändert. Dann muss in der Endlosschleife nichts geändert werden.
Es war und ist also nicht umsonst, dass wir uns zunächst mit dem ARDUINO NANO beschäftigen und uns dann in die Thematik eines ATtiny84 einarbeiten!

Abb.15
Abb.15 zeigt den ersten Teil des Sketch für den ATtiny84, welcher nur einmal beim Start ausgeführt wird.

Deklaration:
hier werden erforderliche Variablen definiert, sowie zugehörige Anschlüsse am ATtiny84.





Inizialisierung
hier werden die zugehörigen Ausgänge des ATtiny84 definiert.

Abb.16
Abb.16 zeigt den zweiten Teil des Sketch für den ATtiny84.
Hier startet die Schleife.

Es folgt die Abfrage des ATtiny84-Eingang A3 = Pin 10:
wenn der Wert X3 (das ist der Pegel, welcher am ATtiny84-Eingang A3 anliegt) größer 50 ist (also mit Sicherheit größer 2 Volt; d.h. H ist), dann werden die nachfolgenden Abfragen ausgeführt.


Diese nachfolgenden Abfragen weisen nacheinander den Variablen E0, E1, E2 die an den ATtiny84-Eingängen A0=Pin13, A1=Pin12, A2=Pin11 anliegenden Pegel zu, also jeweils HIGH (H) oder LOW (L).

Abb.17
Abb.17 zeigt den dritten Teil des Sketch für den ATtiny84.
Mittels 8 UND-Abfragen der jeweiligen Werde (H oder L) von E0, E1, E2 werden die Adressen ADR1, ADR2, ADR3, ADR4 auf HIGH (H) oder LOW (L) gesetzt.

in der Programmiersprache bedeutet z.B.:

if ( (E0==LOW)&&(E1==HIGH)&&(E2==LOW) )
wenn E0=L    UND E1=H        UND E2=L
dann
digitalWrite (ADR2,HIGH);
schreibe in ADR2 ein H-Pegel


Da in der Deklaration mit
int ADR2=8;
und in der Inizialisierung
pinMode(8, OUTPUT);
der ATtiny84-Ausgang D8 definiert wurde, erscheint am Ausgang D8 ein H-Pegel (also 5 Volt)

Entsprechendes gilt hier für die anderen Abfragen.




ENDE der Abfragen.

Schleifenende und Rücksprung zum Schleifenanfang.

Der komplette Schaltplan mit Anzeigen und Weichenservos


Abb.18
Wie in Abbildung 10, nur dass statt einem ARDUINO NANO ein ATtiny 84 zum Einsatz kommt.
Die Schaltung setzt sich aus 4 Bereichen zusammen:
3 Bereiche kennen wir bereits aus der Schaltung "Schaltdecoder 4 Servos OP v1.4", siehe unter ARDUINO => Decoder => Teil 1 (Beschreibungen siehe dort), diese sind hier in Abbildung 18 dargestellte Bereiche: Decoder, Anzeigen, und Weichendecoder. Der 4. Bereich ATtiny84 wurde oben beschrieben.

Auch in Abbildung 18 wurden Ziffern in farbigen Kreisen für Anschlusspunkte eines Logic Analyzer eingezeichnet. Auch hier trifft die obige  Abbildung 11 zu, welche das Ergebnis zeigt, wenn wiederum Keyboardtasten in der Reihenfolge 1rt, 2rt, 3rt, 4rt, 1gn, 2gn, 3gn, 4gn betätigt wurden.

Der komplette Schaltungsaufbau auf 2 Steckboards


Abb.19
Steckplatine A: 5V Stromversorgung, Decoder, AATtiny84, 2 ATtiny85.
Steckplatine B: Treiber-IC ULN2803A mit Anzeige-LRDs, Treiber-IC UDN2981A mit 4 angeschlossenen Servos.
Anmerkung: dieser Aufbau dient lediglich zu Testzwecken! Möglicherweise genügt die hier gezeigte Stromversorgung nicht den Anforderungen zum Betreiben aller 4 Servos; dann sollte eine stärkere 5V Stromversorgung verwendet werden.
Zum Hochladen des Programms in den ATtiny84 muss natürlich zuvor ein Bootloader auf den ATtiny84 gebrannt werden. Die Schaltung dafür werde ich demnächst einstellen (sie ist etwas anders, als die für einen ATtiny85!).
Lohnt es sich einen ATtiny84 einzusetzen?
Gegenüber der Schaltung "HJB Schaltdecoder 4 Servos OP v1.4" (siehe "ARDUINO  => Decoder" unter "Teil 1") werden folgende Bauteile eingespart: 1x 47HC138, 2x LTV847, 1x 4044, 15x 510 Ohm. Bauteilkosten 2,87 € (Reichelt Preis März 2024). Für die hier beschriebene Schaltungslösung mit einem ATtiny84 kommt der Preis von 1,90 € hinzu (Reichelt Preis März 2024). Die Schaltung ist also um 1,90 € -2,87 € = -0,97 € preiswerter! Der Einsatz eines ATtiny84 lohnt sich weniger wegen 97 Cent Ersparnis; er lohnt sich aber aus zwei Gründen:
1. weniger Löcher zu bohren, weniger Lötarbeiten, weniger Bauteile sind auf einer Platine zu verbauen.
2. eventuelle Änderungen können per Software gelöst werden (z.B. wenn die Schaltung für andere Schalt- und Servoanwendungen genutzt werden soll).
Nachteil:
die Schaltung verfügt über keine Datenerhaltung bei Abschaltung der Betriebsspannung, wie das der Fall bei der Schaltung "HJB Schaltdecoder 4 Servos OP v1.4" ist! Bei Wiedereinschaltung müssen entweder alle Keyboardtasten zur korrekten Stellung wieder betätigt werden, oder die Zentrale (oder eventuell eine angeschlossene PC-Steuerung) liefert bei Spannungseinschaltung automatisch entsprechende Keyboard-Tastensignale. Eine andere Lösung wäre, der Attiny84 speichert die Schaltzustände und liest diese bei erneutem Einschalten wieder ein. Das wäre beispielsweise durch Beschreiben und Auslesen des im ATtiny84 enthaltenen EPROM möglich, womit ich mich aber noch nicht beschäftigt habe (auch würde diesbezüglich ein eigenes Kapitel "EPROM" erforderlich sein).

Die Platine 13.04.

Ohne Platine ist die Schaltung wohl kaum betriebssicher aufzubauen. Deshalb erstellt ich ein Platinen-Layout. Es gibt 2 Möglichkeiten: entweder kommt ein einseitig kupferkaschiertes Material zur Anwendung, wobei einige Verbindungen auf der Oberseite mittels Drahtbrücken zu erstellen sind, oder man treibt den etwas anspruchsvolleren Aufwand und verwendet zweiseitig kupferkaschiertes Material (wobei dann natürlich Durchkontaktierungen erforderlich sind). Auch ein Bestückungsaufdruck ist sehr hilfreich.

Abb.20
Vergleiche die Abbildung 20 mit Abbildung 12 unter ARDUINO => Decoder , die Ersparnis an Bauteilen ist deutlich!
Bei einer 1-seitigen Platine stellen in Abb.12 die hellgrünen Linien Drahtbrücken dar, bei einer 2-seitgen Platine Leiterbahnen auf der Bestückungsseite (A), wobei dann die goldfarben dargestellte Bohrungen Durchkontaktierungen (B) sind. Zwei 90°-Winkel (C) dienen zur Befestigung einer Frontplatte, wenn die Schaltung in ein 19"-Gehäuse eingeschoben werden soll, was sinnvoll und platzsparend ist, da sicher mehr als eine Platine zum Einsatz kommen wird. Möchte man auch am 19"-Gehäuse Stellungsanzeigen haben, so finden LEDs auf der Frontplatte Platz. Die Verbindungen erfolgen über die 16-polige Steckleiste (rot umrandetes Rechteck). Eine 32-polige gewinkelte Federleiste (rechts auf der Platine) stellt die externen Verbindungen zur Verfügung.
Dieses Platinenlayout wurde von mir noch nicht bestückt aufgebaut und getestet, jedoch gewissenhaft mit dem getesteten Schaltplan überprüft.
Diese Schaltung eignet sich für zwei Anwendungsfälle: (a) als Weichendecoder für 4 Weichen mit Servoantrieben, (b) als Signaldecoder für 4 2-begriffige Licht-Signale. Formsignale, welche nicht mit Dauerstrom angesteuert werden können, können hier nicht angeschlossen werden, da die Schaltung dafür keine Impulse liefert.
Download
Decoder mit 4 Weichen-Servos und Anzeigen mittels 1 ATtiny84 und 2 ATtiny85
im Download enthalten:
- Flussdiagramm
- Schaltplan
- Platinenlayout und Bestückungsaufdruck
- Anschlussbelegungen
- Kommentiertes Listing (Sketch) für ATtiny84
Download für erforderlichen Sketch für die ATtiny´s 85 2W30ATtiny85
Beschreibungen hierzu siehe  unter ARDUINO=>Servosteuerung
Für einen ATtiny84 ist ein anderer Bootloader als für einen ATtiny85 erforderlich; ebenso für das Hochladen von Programmen!

19.04.
Der ATtiny84-Bootloader ist  unter
ARDUINO
=>
ARDUINO ATtiny-Brenner

eingestellt.

 

zurück zu ARDUINO