Ich konnte seit Kurzem einen Greifautomaten mein Eigen nennen. Ihr kennt bestimmt diese „Groschengräber“ von der Kirmes, bei denen man zig Euro einwerfen muss, um letztendlich einen Teddy im Wert von wenigen Cent mittels einer Greifzange zum Ausgabeschacht zu befördern.
Das Gerät ist nachweislich ordentlich defekt: Die Steuerplatine reagiert nicht, das Netzteil hat diesen unangenehmen Schmurgelgeruch, das 7Segment-Display zur Anzeige der Zeit und Credits vermisst ein paar Segmente und der Münzprüfer nimmt einen Großteil der Münzen nicht mehr an.
Das Gute: das Chassis und die Mechanik sind noch gut in Schuss, die Motoren und der (weiter unten beschriebene) Solenoid arbeiten ebenfalls noch. Das Wichtigste also funktioniert.
Ihr ahnt es und der Titel verrät es: ich möchte die Steuerung der vorhandenen Komponenten mit einem Arduino übernehmen. Die Wahl des Mikrocontrollers fällt dabei auf den MEGA2560 (reichlich IO-Pins für Sensoren, Potis, Wahlschalter).
Nun ergeben sich dabei ein paar Baustellen und Problemstellungen:
Kleine Aufgaben wie Ansteuerung eines Displays sowie die Abfrage des Joysticks und der Endschalter vom Schlitten stellen (noch!) kein Problem dar. Check!
Die Motoransteuerung:
Das Gerät besitzt 3 DC-Getriebe-Motoren (für vorwärts-/rückwärts-Fahrt auf der X- und Y- sowie die Greifzange hoch/runter auf der Z-Achse). Diese werden mit 0-22V (mit einem Stromverbrauch unter 1A) für unterschiedliche Geschwindigkeiten angesteuert. Das habe ich mit dem L298N-H-Brücken-Motortreiber (3 Stück davon) vor. Den erwarteten Spannungsabfall von ca 2V gegenüber der Versorgungsspannung kann ich in Kauf nehmen.
Aufgrund der passenden Spezifikation (5-35V Versorgungsspannung, bis 2A, PWM-Steuerung) erschien dieser mir als passend. Eventuell hätte aber auch jemand noch einen besseren Tipp?
Die Greifzange:
Diese besteht aus 3 Armen, die von einem Solenoid zusammengezogen werden. Ich müsste diesen also mit einer Spannung von 0V (greift nicht, öffnet) über 10V (greift schwach, lässt Objekt fallen) bis hoch auf 40V (greift stark zu) beaufschlagen.
Sollte ich das ebenfalls mit einem Motortreiber bewerkstelligen oder reicht ein NPN-MOSFET? Ist ein PWM-Signal für eine Solenoid-Ansteuerung überhaupt empfehlenswert?
Welche Möglichkeit hätte ich ansonsten, um eine analoge Spannung im nötigen Bereich zu erzeugen und regeln?
Ich rechne mit einem Haltestrom von 2A max, aber man darf glaube ich gerade bei der Anzugphase von Solenoiden etwas überdimensionieren, oder?
Stromversorgung
Im Original-Gerät gibt es zur Stromversorgung aller Komponenten ein (erschreckend) offenes Netzteil, das an den Ausgängen 5V, 12V, 24V & 48V (alle DC) zur Verfügung stellt.
Die Spannungen dienen zur Versorgung von Microcontroller und Display (5V), Beleuchtung und Münzprüfer (12V), der Motoren (24V) und des Solenoid (48V). Allerdings möchte ich dieses Netzteil auf keinen Fall wieder verwenden, da es doch schon sehr „abgeranzt“ ist.
Stattdessen würde ich DIN-Schienen-Netzteile einsetzen (lassen! Das werde ich nicht selbst vornehmen, sondern überlasse das einem Elektriker) mit eben diesen einzelnen Spannungen. Schutz- und FI-Schalter runden das Ganze dann noch ab.
Ursprünglich wollte ich ein PC-Netzteil verwenden, aber bei diesen wäre ja bei 12V Schluss..
Gibt es eventuell andere all-in-one-Netzteile, die ebenfalls mehrere Spannungen zur Verfügung stellen?
Finden meine Planungs-Ansätze bei Euch Zuspruch oder schlägt jemand die Hände über dem Kopf zusammen? Bin für alle Hardware-Empfehlungen offen.
Bevor die Frage nach Datenblättern oder Modellbezeichnungen kommt: Motoren und Solenoid haben keine Typenbezeichnungen, alle Werte (Spannungen und Stromverbrauch) konnte ich nur bei den Funktionstests ermitteln.
Zwischenzeitlich mal ein bisschen schlauer(?) gelesen..
Tatsächlich ist für mich im Moment der interessanteste Part die Greifzange (Punkt 3):
Wie steuere ich einen Solenoid richtig an?
Es gibt ja extra "Solenoid Treiber", z.B. den DRV110. Ist er als einzelner IC noch relativ günstig, wird ein fertiges Entwicklungsboard doch schon ganz schön teuer. Und ich weiß nicht, ob er (1.) überhaupt notwendig ist, weil diese Treiber ja denn Sinn haben, den Haltestrom zu reduzieren, nachdem der Solenoid angezogen hat. Ich aber die volle Kraft im angezogenen Zustand ja noch brauche, um die Zangen weiter mit mehr oder weniger Kraft geschlossen zu halten. (2.) wüsste ich auch gar nicht, ob und wie das Ganze bei diesem Board vom Arduino aus kontrollierbar ist.
Ein Lösung mit einem NPN-Transistor/(MOS)FET scheint mir daher einfacher und günstiger.
Jetzt wäre ich also auf der Suche nach einem geeigneten Modul, das 50-60V und bis zu 8-10A abkönnen sollte. Worauf sollte ich bei der Auswahl achten? Empfehlungen?
Meine bisherigen Projekte bewegten sich immer im 5-15V-Bereich und max 5A (Magnetventile, LED-Module, kleinere Motoren), da ist die Auswahl an Bauteilen, Themen und Tutorials immer recht groß..
In einem ersten Versuch habe ich mal den IRF520 einem Test unterzogen.. glaube aber nicht, daß er bei der Temperatur-Entwicklung das lange mitmacht.. Auch habe ich dabei ein wahrnehmbares Fiepsen im Solenoid vernommen. Aber das war bei einer Spannungsregelung durch PWM-Signal ja zu erwarten.
Könnte man das durch einen "Tiefpass-Filter" (ich hoffe, ich habe das alles richtig verstanden) zwischen PWM-Pin des Arduino und Gate des MOSFET eventuell noch glätten und damit eliminieren?
ich würd ja probieren den Greifer direkt mit 12V und 48V über (je ein) Relais anzusteuern.
verstehe aber auch nicht ganz warum man da die kraft regeln muss.
Ist mir tatsächlich auch schon in den Sinn gekommen. Und behalte ich mir als Option auch noch im Hinterkopf, zwei vorher festgelegte Spannungen nacheinander zu schalten.
Dennoch hoffe ich erstmal einen geeigneten MOSFET zu finden, was mir den Vorteil brächte, mit dem Mikrocontroller selbst die Spannungen und damit die Greifkraft stufenlos einzustellen.
Bei einem funktionierenden Automaten "scheppert" die Zange im geschlossenen Zustand übrigens auch recht stark. Die gepulste Spannung scheint da also auch verwendet zu werden. Sogar in einer recht niedrigen Frequenz (kein Fiepen, dafür klapperts).
Genau so siehts aus!
Diese Automaten gaukeln einem vor, daß man das süße Einhorn nicht gewonnen hat, weil die Zange irgendwie nicht richtig drauf gelandet ist, man also ungeschickt positioniert hat.
Die Zange greift zu, hebt das Ding, aber dann rutscht es irgendwie raus.
Genau das ist der Augenblick, wo die Greifkraft nachlässt, gerade genug, um die Zange geschlossen zu halten wie ein labbriger Händedruck.
Das Programm entscheidet, nach wieviel Spielen es so gnädig ist, die Greifkraft bis zum Ende aufrecht zu erhalten. Je nach Profitgier des Aufstellers kann das recht häufig oder bis meistens eher selten ausfallen.
Im Grunde also nichts anders als ein Glücksspielautomat, wie man ihn von Tankstellen, Gaststätten und Spielhallen kennt.
Keine Sorge, mein Umbau wird nicht monetär aktiviert, sondern durch Spieltoken, damit ihn keiner in 10 Minuten leerräumt..
Auf der Suche nach einem geeigneten (MOS)FET bin ich hoffentlich fündig geworden. Folgendes ist in meinem Warenkorb gelandet:
400W Power MOSFET Module – mit zwei parallelen D4184-N-MOSFET. Wusste noch gar nicht, daß man Transistoren parallel schalten kann, um die Leistung zu erhöhen. Aber nach kurzem Nachschlagen gelernt, daß so etwas auch wieder völlig neue Probleme mit sich bringen kann..
Wie dem auch sei.. auf Grund des Spannungsbereichs bis max. 36V scheidet der wohl schonmal für diesen Zweck aus (trotzdem gut, sowas auf Lager zu haben).
Letztendlich habe ich mich mal auf der (o.g.) defekten Steuerplatine umgeschaut und dort mehrere TIP142-Transistoren ausmachen können, von denen einer (mit dickem Kühlkörper) sehr wahrscheinlich (Leiterbahn des collectors verfolgt) den Solenoid angetrieben hat. Sicherheitshalber den auch mal gleich mitbestellt..
Soviel zu den Treiber-Modulen. Sobald ich diese in den Händen habe, kann ich lostesten..
Eine Frage aber noch zur Freilaufdiode: Da ein Solenoid ja (wie ein Relais oder elektr. Magnetventil) eine induktive Last darstellt, benötige ich bestimmt eine. Auf welche Charakteristik sollte ich bei der Wahl unbedingt achten? Bisher kam ich mit dem „Allrounder“ 1N4004 bei kleineren Aktoren immer ganz gut hin. Ob das auch bei diesem elektromagnetischen „Monster“ reicht..?
Dann sollte ich mit meinen ja auch hinkommen, liegt ja auch noch innerhalb der tolerierbaren Größen. Aber danke
Habe nun die ersten Greiftests mit dem FR120N (s.o.) gemacht,.. und was soll ich sagen. Bin begeistert!
Der Transistor bleibt schön kühl (im Gegensatz zum Solenoid in der Zange! Da muss man Spielpausen einplanen) und auch die Greifkraft lässt sich toll mittels PWM regeln.
Hab ich natürlich auch gleich getestet. Kann aber den PreScaler/Teiler nicht niedriger als 8(0x02) setzen, da sonst der Ausgang am FET-Modul immer die volle Spannung liefert, obwohl der Pin das PWM-Signal wie erwartet ausgibt. Ich vermute, daß das Modul (wegen Optokoppler oder FET?) mit der hohen Frequenz nicht mehr mitkommt. Ist aber auch nicht schlimm, da teste ich mich einfach durch die akustischen Toleranzgrenzen durch Tatsächlich ist sogar eine niedrige Frequenz gar nicht mal so störend. Vielleicht entlastet das den Greifer sogar thermisch etwas..
Damit wäre nun die eine Baustelle vorerst geschlossen, damit sich die nächste öffnen kann: die Motoren zum (Vor- und Zurück) Laufen bringen.
Mit meiner ersten Annahme, daß es sich hier um 24V-Motoren handelt, lag ich mal schön daneben. Mit 24V laufen sie doch noch viel zu langsam. Also wieder ein Blick auf die Platine geworfen und dort den Weg bis zu 3 (entsprechend der Menge der Motoren) TIP124-Transistoren zurückverfolgt.
Die Drehrichtung der Motoren wurde dabei wohl von je 2x 24V(dafür also die Spannung!)-Relais geregelt, die die Polarität am Motor durch Umschalten vertauscht haben:
Relais1-AUS..Relais2-AN ==> +48V------->---------Motor-->--Drain-TIP142
Relais1-AN....Relais2-AUS => Drain-TIP142--<--Motor--<--+48V
Nun wollte ich ja das Ganze mit einem H-Brücken-MotorTreiber realisieren, aber wegen der höheren Versorgungsspannung von 48V werde ich grad nicht fündig…
Einzig der DRV8871 käme noch in Betracht, aber da kratze ich schon am Limit (Versorgungsspannung meist mit 45V angegeben, im Datenblatt aber sogar 50V).
Sollte sich da nichts besseres finden oder empfehlen lassen, werde ich wohl denselben Weg gehen wie beim Original und wie von @ardu123 ähnlich vorgeschlagen: mit einem MOSFET die Spannung/Geschwindigkeit regeln und mit 2 Relais pro Motor die Drehrichtung nach o.g. Prinzip bestimmen.
Fallen, in die ich dabei tappen könnte? Evtl. beim Ausschalten der Relais „keinesfalls“ beide Anschlüsse des Motors auf Drain-MOSFET/+48V legen o.ä.?
EDIT: och mensch,... jetzt ist bei diesen handelsüblichen Relais-Modulen bei 30V-DC Kontaktbelastbarkeit Schluss! .. oder such ich nur falsch? Muss ich mir tatsächlich so ein 6fach Relais-Board selbst basteln?