Fehlermeldung kopf

Modelleisenbahn in Spur Z (Spurweite 6,5mm, Massstab 1:220). Infos zur Modellbahn, Tipps zur Eisenbahn, Links zu Modellbahnseiten, Arduino.
Arduino IDE
Bevor man einen ATMega328 in der Arduino-Umgebung programmieren kann, muss man sich natürlich zuerst die Arduino-Software herunterladen. Die Programmiersprache ist sehr an C++ angelehnt, wird jedoch durch viele vordefinierte Makros sehr vereinfacht. Weiter benötigt man einmal einen "echten" Arduino und zwar einen, auf dem der μC in einer DIL-Fassung sitzt. Mit diesem Board können dann die zu programmierenden ATMega328 in die Fassung gesteckt und programmiert werden.

Es gibt sehr viele Einsatzmöglichkeiten für einen Arduino auf einer Modelleisenbahn. Nicht immer muss es ein "ganzer" Arduino sein, der μC mit einigen peripheren Bauteilen genügt und häufig genügt auch ein kleinerer μC z.B. ein ATtiny.
Auf diese Weise lassen sich z.B. für wenige Euro Digitaldekoder bauen aber auch Encoder, die die Daten auf den Bus schreiben, sind kein Problem.

Da ja doch so einige μCs zusammenkommen, habe ich mir zwei Arduinoboards als "Programmer" eingerichtet und sie mit ZIF-Sockeln versehen:

Das linke ist ein Uno zum Programmieren von ATmega328 (Der Orignalsockel wurde einfach durch einen ZIF-Sockel ersetzt.), das rechte ist ein Duemilanove mit einem Prototype-Shield und kann ATtiny84 und ATtiny85 programmieren.
Die winzigen ATtiny85 eignen sich z.B. hervorragend als einzelne Weichen- oder Signaldekoder, oder als Beleuchtungssteuerung eines Gebäudes, oder...

ATMega 328



Nebenstehend ist das Anschlußschema des ATMega328 zu sehen. Man sieht, daß die im Programm verwendeten Portnummern nicht gleich den Pinnummern sind, so ist z.B. Port6 gleich Pin12.

Arduino-Clone
Wenn man den ATMega328 in der Arduino-Umgebung programmieren möchte, benötigt man einen 328 mit Bootloader, den man z.B. im Guloshop erhält. (Falls ein 328 ohne Bootloader verwendet werden soll, siehe hier). Weiter sollte man sich gleich die passende Fassung, einen 16MHz-Quarz und 220nF-Kondensatoren mit bestellen.


Die Zeiten ändern sich: ein Arduino Nano ist inzwischen fast schon billiger zu erhalten und er hat noch USB und Stromversorgung mit an Bord: Link und nochmal Link




Mit "Arduino Clone" ist kein echter Clone des Arduino gemeint - der hat viel mehr Funktionen an Bord als man im Modellbahnbetrieb benötigt.
(Aber auch ein - fast - echter Clone läßt sich nach Bedarf herstellen.)
Gemeint ist ein Clone des Arduino als μC, den man im Modellbahnbetrieb einsetzen kann, ohne USB und sonstige nicht benötigte Eigenschaften.

Zunächst lötet man die Fassung auf die Platine, die man vorher auf die Größe zugesägt hat, die für die Bauteile nötig ist.
(Natürlich sollte man vorher einen Plan erstellen, was alles auf die Platine soll.)
Für einen reinen Arduino-Clone reicht eine sehr kleine Platine. Nach der Fassung verlötet man den 16MHz-Quartz und die beiden Kondensatoren, danach verkabelt man die Stromversorgung - siehe Bild. Das wars eigentlich schon - außer wenn man keine 5V-Stromversorgung zur Verfügung hat, dann muss noch etwas getan werden:

Ein 5V-Spannungsregler wie der 7805 ist recht preiswert und für unsere Zwecke eigentlich schon überdimensioniert. Das zweite Bild zeigt, wie man ihn verkabelt.
Nun kann aber noch ein Problem auftreten: Manche Modellbahner haben keine Gleichspannung sondern nur Wechselspannung zur Verfügung, dann ist auch noch ein Gleichrichter nötig, das dritte Bild zeigt dessen Einbau. Als Gleichrichter kommt z.B. ein B40C1000 infrage. Der Elko sollte ein Spannungsfestigkeit von mindestens 40V haben. Und wenn man dann anstatt 470μF 1000μF nimmt, ist das auch kein Schaden.

Beim Einsetzen des μC muss man auf die richtige Position achten: Eine Kerbe an der Fassung und am ATMega328 zeigen die richtige Position an.
Ein verpoltes Einsetzen kann zur Zerstörung des ICs führen.
Das wars dann schon.
Wie dann die einzelnen Pins des ATMega328 verkabelt werden, ist in den entsprechenden Beiträgen zu lesen.

Auf einen ATMega328 ohne Bootloader kann dieser mit Hilfe eines Arduino Uno oder Duemilanove aufgespielt werden.
Zunächst muss aber ein Arduino als Programmer ausgerüstet werden: Schließen Sie dazu einen Arduino an und laden in ihn das ISP-Programm, das Sie unter "Datei/Beispiele/ArduinoISP" finden. Dann wählen Sie "Tools/Programmer/Arduino as ISP". Der Arduino ist jetzt als Programmer bereit.
Den leeren 328 verbindet man nach nebenstehender Schaltung mit dem Arduino Uno.
Der leere 328 benötigt nebenstehende externe Beschaltung. Die Leitungen PIN 10 bis PIN 13 gehen zum Programmer-Arduino, wobei mit "PIN" die Portnummer gemeint ist.
Und noch etwas: Bei einem Duemillanove müssen Sie nichts weiter tun, aber bei einem UNO sollte jetzt noch ein Kondensator von ca. 10 μF zwischen Reset (des Programmer-Arduino) und GND geschaltet werden.
Jetzt kann über "Tools - Bootloader installieren" dieser auf den leeren 328 gebrannt werden.