Hi
Mit Eurer Hilfe bastel ich gerade an einem Sketch, Der mir 5 Schieber (Wasserhähne) ansteuern soll.
Gebraucht wird Das, hoffentlich bald, an meiner Heizung, um die Wärmequelle wechseln zu können (Thermische Solar/Ölbrenner bzw., welcher Pufferspeicher geladen/entladen werden soll).
Schieber-Prototyp:
Dort managed Das ein ATtiny45 mit zwei CNY70 und einem L298.
Das soll nun bald ein Sketch auf einem MEGA machen (da ich nur dort genügend Pins frei habe, brauche pro Schieber 2 Sensoren (Drehrichtung) und 2 Aktoren (Laufrichtung Motor)).
Der Versuchs-Arduino, Der mich gerade gelinkt hat ist zwar ein NANO, sollte aber Nichts zur Sache tun.
Statt der CNY70 benutze ich am Nano einen Dreh-Encoder, um die Drehrichtung zu Simulieren.
Ebenfalls ist eine LED nebst Vorwiderstand per Jumper-Wire dazu da, den 'Zustand' eines der Pins anzuzeigen - also, ob MOTOR-AUF z.B. gerade angesteuert wird.
Das klappt auch ganz gut (wen wundert's).
Nun hatte ich aber mit der Zählerei Probleme und steckte die LED an einen der Sensor-Pins, Diese zeigte mir auch durch fröhliches Blinken, daß vom Encoder genau Das kommt, was ich erwarte.
Da die LED überhaupt was anzeigt, bin ich auch am richtigen Pin - PullUP ist dort aktiviert.
Nur zählen wollte der Rechenknecht diese Impulse nicht :o
Lange Rede, fast kein Sinn:
Die LC-LED hat es geschafft, den Pegel an dem INPUT_PULLUP-Pin so weit runter zu ziehen, daß der Eingang laufend als LOW gemessen wurde, obwohl die LED mit fröhlich HIGH/LOW-Wechsel anzeigte.
Habe in der Stunde wohl auch einige Fehler aus dem Code entfernen können, aber hier dran suchte ich jetzt doch etwas länger.
Da ich diesen Fehler schon ein bisschen fies fand, nur wegen Euch es Dazu kommen konnte (der ganze Kram basiert auf der LED-Blink-Klasse) und ich Euch ein solches Missgeschick nicht wünsche, dieser Post.
Das Video zeigt außerdem, daß ich schon fast ein Jahr mit dieser 'Schieberart' um habe und meine Heizung immer noch strunz-dumm ist.
Vll. wird's dieses Jahr ja was - die Hoffnung stirb zuletzt.
MfG
PS: Das Pollen des Drehencoder und die Abarbeitung der erzeugten drei Schieber benötigt derzeit nur ~900ns (nur heartbeat-Anzeige, allerdings mit 9600baud).
Sobald Mehr ausgegeben wird, steigt die maximale Laufzeit aber auf 90ms - passiert aber erst, wenn x ms kein Sensor detektiert wird, die Grenzen angepasst werden, da davon ausgegangen wird, daß wir am mechanischen Ende angekommen sind..
Bei normalem Drehen konnte ich hier keinen Verzähler feststellen (Werte durch die Bank durch durch 4 teilbar, da 4 Flanken pro Raste).
Nebenbei:
Ich bin derzeit etwas unschlüssig, ob ich nicht diese Drehencoder (ALPS, genauen Typ müsste ich schauen) am Schieber verbauen soll - spricht da Was gegen?
CNY70 wären ebenfalls vorhanden und die Files für die Aufnahme bereits vorhanden, Strom spielt eine untergeordnette Rolle, mit 12V und A 'ohne Ende' komme ich in den Kellerraum.