Forum
Arduino Programmierung "speciale" (Elektronik)
Ich habe da mal wider ein Programmierproblem.
Grindstone war mitte des Jahres ja schon so freundlich, mir ein Programm zu schreiben. Dieses Programm soll jetzt noch erweitert werden.
Das Hauptproblem besteht darin, dass die verschiedenen Betriebsmodi nur über zwei Digitalausgänge der übergeordneten SPS codiert werden können.
Hier erst mal eine verbale Beschreibung (ich weiß, ein Timing-Diagramm wäre besser und kann ich auch nachreichen).
1) Automatik-Betrieb
Zunächst mal soll über SPI ein BCD-Schalter ausgelesen werden (dafür habe ich schon ein Sketch, welches eingebunden werden kann) welcher die Anzahl der Impulse vorgibt.
Wenn über START ein kurzer Impuls kommt, sollen die entsprechende Anzahl an Impulsen (mit einem bestimmten ganzzahligen Faktor multipliziert) an den Schrittmotortreiber ausgegeben werden. Der Binärausgang für die Drehrichtung soll dabei auf 0 bleiben (ist nur eine willkürliche Festlegung). Nachdem alle Impulse ausgegeben wurden, soll über den Binärausgang ENDE ein kurzer Impuls an die SPS zurück gegeben werden.
Wenn über START zwei kurze Impulse kommen, soll auch die entsprechende Anzahl an Impulsen an den Schrittmotor ausgegeben werden. Der Binärausgang für die Drehrichtung soll dabei aber auf 1 für die andere Drehrichtung wechseln und es soll auch wieder eine Rückmeldung an die SPS erfolgen.
2) Hand-Betrieb
Der Digitaleingang HAND wird von der SPS auf 1 gesetzt und es kommt (mit kurzer Verzögerung) von START ein Impuls, soll der Digitalausgang für die Impulse zum Schrittmotor so lange 'laufen', wie HAND auf 1 steht. Wie im Automatik-Betrieb soll der Binärausgang für die Drehrichtung dabei auf 0 bleiben.
Wenn über START dann zwei kurze Impulse kommen soll das gleiche passieren, nur auch wieder in die andere Richtung.
Ich wüsste zumindest keine andere Variante, wie diese Funktionen sonst mit nur zwei Eingängen realisiert werden könnten.
Bei diesem Lastenheft wüsste ich schon gleich gar nicht, wie ich mit der Programmierung anfangen sollte...
Vielleicht kann der Kollege Schleifstein ja nochmal helfen (gerne auch gegen eine Aufwandsentschädigung)
Gruß, Mathias
Gesamter Thread:
