Mit den Drehzahl-Reglern auf Analog-Basis war ich schon bald nicht mehr zufrieden. Der logische Schritt? Umbau auf eine digitale Konfiguration. Dazu aber braucht es mindestens ein Display, um die aktuellen Werte lesen zu können, und eine Eingabemöglichkeit. Für das Display bot sich erst einmal ein 16x2 Zeichen LCD mit I2C-Bus an, die Dinger sind relativ günstig und einigermaßen gutmütig. Außerdem laufen sie gut mit dem Arduino Nano zusammen.
Ziemlich schnell bin ich dann auf das Problem gestoßen, dass ich in grenzenlosem Optimismus die einzigen für das I2C-Protokoll vorgesehenen Anschlüsse am Nano (Pins A4 = Daten, A5 = Takt) bereits für die Drehregler verlötet habe. Upps.
Nächster Bock (jaja, im laufenden Betrieb Zeug umplanen ist immer eine schlechte Idee): Der Dreh- und Drückknopf muss praktisch sofort auf Betätigung reagieren. Also: Wenn ein "Klick" (ob vom drehen oder drücken) kommt, soll ein Interrupt im Controller ausgelöst werden. Das eine Klick (beim Drehen) bewirkt, dass der zweite Anschluss vom Drehschalter geprüft wird. Ist der auf 5 Volt, geht es vorwärts. Ist er aber zu dem Zeitpunkt auf Null Volt, geht es rückwärts. Simpel, elegant, aber leider am falschen Anschluss. Denn: Die einzigen zwei Pins, die für Interrupt-Signale vorgesehen sind, sind die Pins D2 und D3.
Da bin ich schlichtweg vom ESP8266 verwöhnt worden in letzter Zeit. Denn dort kann so gut wie jeder Pin so gut wie alles machen. Na schön, ist ja auch eine ganz andere Geräteklasse…
Langer Rede kurzer Prozess: Neue Drähte ziehen, alte Drähte auslöten.