Ein Muster wurde für zwei Servos mit ATtiny13 aufgebaut. Für einen vieltürigen Lokschuppen wurde mit einem ATmega8 das Maximum, nämlich 15 Servos, herausgeholt, ohne externe Portexpander oder ähnliches verwenden zu müssen.
Gibt's schon, nur IMHO nicht so richtig open-source. Beispielhaft als Youtube-Video.
Ein Anschluss an eine Zentralsteuerung („digitale Modellbahn“) war nicht gewünscht und ist nicht vorgesehen.Das Justage- und Bedienkonzept ist einheitlich:
Die Firmware. Der Schaltplan ist darin als Netzliste dokumentiert. Die Firmware läuft mit internem 128-kHz-Oszillator auf 64 kHz geteilt und ist so extrem Strom sparend. Zwei Taster und zwei Servos können angeschlossen werden. Die Pulsweitenerzeugung erfolgt per Hardware und ist jitterfrei.
Das verbleibende Problem aller derartigen Lösungen ist, dass der Servo ruckelt. Auch im o.a. Youtube-Video ist das zu sehen und zu hören. Um den Motor richtig zu regeln, müsste der Servo elektrisch frisiert werden, etwa wie die folgende Abbildung zeigt.
Die Firmware. Der Schaltplan ist darin als Netzliste dokumentiert. Die Firmware läuft mit internem 8-MHz-Oszillator und ist maximal Strom sparend ausgelegt. 15 Taster in einer Charliplex-Matrix (an 6 Leitungen) und 15 Servos können angeschlossen werden. Die Pulsweitenerzeugung erfolgt per Software, gestützt von einem 16-bit-Zeitgeber, und ist jitterarm (max. 2 µs), im stationären Betrieb (alle Servos im Stillstand) jitterfrei.
Falls es später doch noch zur Digitalumstellung kommt, liegen auf den Tastenanschlüssen RxD und TxD. Dann darf kein ATtinyX8 eingesetzt werden. Bei anderen Signalisierungssystemen als TTL-RS232 muss man's mit Software allein erschlagen.