Teil 2:
Das Gerät um welches sich hierbei Handelt ist eine art Waschmaschine.
Ein Acrylkasten in dem sich folgende "Aktoren" befinden.
- Eine 24V DC Pumpe.
- Ein Taster mit integrierter LED.
- Eine 24V DC Gleichstrom Turbine.
- Einen 24V DC Getriebemotor.
- Einen 24V Lüfter der aber an die gleichen Klemmen wie der Gleichstrommotor angeschlossen ist der ist sozusagen außer acht zu lassen.
- Einen Rastschalter (13 Stufen wovon ich nur 4 Stk. benötige).
Auf dem Arduino befinden sich folgende Shields (mit Pinbelegung):
-
Arduino Compatible Mega Motor Shield 13A, 5-28V - RobotShop für die Turbine (ist an PWMA und PWMB angeschlossen, der enable jumper ist auf 5V gesteckt ). Angesteuert wird das Ganze über PWMA(im sketch PWMAVACUUM genannt) an Pin 6.
24V gehen auf die Platine über den BAT anschluss.
-
Arduino Motor Shield Rev3 | EXP Tech Hier sind die an den Anschlüssen am Kanal A (PWM A (Pin 3), DirA (Pin 12), BreakA(Pin 9)) der Motor. Am Kanal B (PwmB (Pin 11), DirB (Pin 13), BreakB (Pin8)) ist die Pumpe angeschlossen. 12V gehen auf diese Platine (habe einen Wandler an das 24V Netzteil gemacht).
-
Die Led befindet sich auf Pin 22.
-
Als nächstes habe ich einen Rastschalter (Position 1 (OFF), Position 2 (ON), Position 3 (PLATE), Position 4 (VACUUM) so angeschlossen wie hier zu sehen : Digitaler Input - Schalter auslesen « Physical Computing
-
Der Pumpentaster ist genau so angeschlossen.
Nachdem ich den Eingängen die entsprechenden Variabeln zugeordnet habe und im Setup alles als Input und Output deklariert habe sowie aufgrund komischer Geräusche vom Motor ( Ist ein altes dingen welches ich nach dem Test austauschen möchte ) die Frequenzen geändert habe, hab ich im endeffekt nur ein paar if - else abfragen in den loop gestellt um rauszufinden ob das so funktioniert.
Das tut es, irgendwas sagt mir zwar das es total unelegant ist aber in erster linie wollte ich mal endlich ein kleines erfolgserlebnis haben.
Genau da stehe ich jetzt.
Folgendes soll das Gerät können oder sagen wir mal ein Ablaufplan den ich mir ausgedacht habe.
Raste auf position (1) OFF:
-Das Gerät befindet sich im Ruhemodus, alles aus.
Raste auf position (2) ON:
-Die LED soll an gehen, weiter nichts.
Raste auf position (3) PLATE:
-Die LED soll an gehen.
-Der Motor soll mit einer festgelegten Geschwindigkeit nach links rum starten und nach 60 Sekunden (5 umdrehungen - kann man ja mit PWM sowie Zeit verändern anpassen) sanft die Drehrichtung wechseln ( mache ich es mit einem Delay geht das, aber der hält ja das program an und es ist wichtig das ich jederzeit auf ein anderes Programm wechseln kann bzw. Unterbrechen).
-Die Pumpe soll mit einem Druck auf den Pumpentaster ihren Dienst verrichten (nur so lange der Taster gedrückt ist)
Raste auf position (4) VACUUM:
-Die LED soll an gehen.
-Der Motor soll mit einer festgelegten (langsameren Geschwindigkeit als im Programm PLATE) nach links rum starten und nach 1 1/2 Umdrehungen (c.a. 15-20 Sekunden) die Drehrichtung wechseln.
-Das i Tüpfelchen wäre, dass sich die Drehrichtung nicht nur automatisch sondern zusätzlich noch manuell mit einem druck auf den Pumpentaster wechseln ließ (aber nur im VACUUM).
Wichtig dabei ist das sich jedes Programm am beliebigen Punkt abschalten lässt.
Ich hoffe ihr habt das was ich gerne realisieren möchte verstanden.
Mit der BlinkWithout Delay funktion komme ich irgendwie überhaupt nicht zurecht, der möchte dann immer links und rechts gleichzeitig drehen ich weiß nicht wie ich dem das richtig sage.
Vielen dank für eure Aufmerksamkeit und Hilfe
Lieben Gruß
P.s. Sorry noch vergessen das ganze wird mit einem Arduino Mega 2560 betrieben.