Heute habe ich mal wieder für den ein oder anderen eine kleine nützliche elektronische Schaltung.
Am Ende des Beitrag findet Ihr auch ein kleines Video, was das Ganze schön veranschaulicht.
Ich hatte im Sommer für meine erste selbstgebaute CNC-Fräse „Ava“ eine luftgekühlte 500 Watt Chinafrässpindel mit Netzteil, Spindelhalterung und den gängigsten Spannzangengrößen bestellt. Kostenpunkt waren rund 70 EUR für das Set.
Die ganze Zeit hatte ich die Spindel einfach parallel betrieben. Heißt, wenn ich was fräsen wollte, habe ich halt die Geschwindigkeit manuell über den am Netzteil angeschlossenen Poti eingestellt und die Spindel mit dem Netzteil gesondert ein- und ausgeschaltet.
Größter Nachteil hierbei: Bei Problemen kann man zwar die Achsen mit dem Notschalter abschalten, aber die Spindel läuft erbarmungslos weiter.
Jetzt in unserer Zwangspause habe ich mich mal in meinem Büro hingesetzt und mir überlegt, wie ich die Spindel über die CNC-Software ein- und ausschalten lassen und auch gleichzeitig die Geschwindigkeit über die Sofware einstellen lassen kann.
Die Geschwindigkeit der Spindel lässt sich bei meinem Netzteil wie gesagt mit einem 10k-Potentiometer manuell einstellen. Parallel gibt es aber noch den so genannten Mach3-Eingang. Beide Anschlüsse steuern mit einem Normsignal (Analogspannung) die Drehzahl der Spindel in einem Bereich von 0-10 VDC.
Der Mikrocontroller (Arduino Uno R3) mitsamt CNC Shield V3 und installiertem Grbl1.1 liefert am Z+ – Ausgang eine Spannung von 0-5 V DC.
Super. Jetzt brauchen wir also nur noch eine Art „Frequenzumrichter“. Dieser muss unser Arduino-Analogspannungsignal nur verdoppeln, dann können wir es in den Mach3-Eingang einspeisen.
Eine Möglichkeit das Ganze umzusetzen ist es, einen OpAmp (Operation Amplifier/Operationsverstärker) zu verwenden. Mit dem entsprechendem Spannungsteiler können wir die Eingangsspannung am Ausgang verdoppeln. Hierfür benötigen wir also einen Faktor 2.
Da ich auch noch eine wirkliche stromlose Abschaltung haben möchte und nicht nur, wenn die Eingangsspannung des PWM-Signals 0V ist, habe ich zusätzlich noch ein Relais, was die Spindel definitiv vom Strom nimmt. Neben dem direkten Abschalten über den Not-Aus-Knopf.
Für das Ganze braucht es nur eine handvoll günstiger Bauteile, etwas Kabel und fleißige Hände.
Als erstes mal die verwendeten Komponenten im Einzelnen und wie sie miteinander verbunden sind:
Der Schaltplan:
Ich habe einen LM358 als OpAmp verwendet, da dieser über zwei Operationsverstärker in einem IC-Gehäuse verfügt.
Der erste OpAmp verdoppelt die Spannung für die Drehzahl, der zweite OpAmp hebt jedes Signal auf mindestens 0,7 V an, es sei denn, der Wert ist 0 V oder zu knapp darüber.
Spoiler: Die 0,7 V benötigen wir zum Schalten eines Transistors und somit ist er dafür zuständig, die Spindel richtig Ein- oder Auszuschalten.
Fertige Lochraster-Platine:
Die blauen Leiterbahnen sind Drahtbrücken.
Wie funktioniert nun das Ganze?
Der LM358 wird mit den 24 V des ersten Netzteils (ist für alles außer der Spindel verantwortlich) versorgt. Ein Step-Down-Modul versorgt ebenfalls den Stromkreis aus den 24 V und zwar mit 5 V. Diese 5 V brauchen wir für Arduino, das Schaltrelais und auch für die optischen Endschalter.
Das CNC-Shield mitsamt seiner Steuerlogik und den Motortreibern wird ebenfalls direkt mit 24 V versorgt.
Ganz wichtig: Das Potentiometer des Netzteils darf jetzt NICHT mehr angeschlossen sein, sonst kanns leicht verkokelt riechen. 🙂
Angenommen, wir schalten mit unserer CNC-Software die Spindel mit dem Kommando „M3 S1000“ ein, so sendet der Z+ – Ausgang des CNC-Shields 5 V.
1000 ist hierbei der maximale Wert, also die höchste Drehzahl, die die Spindel erreicht.
Dieses 5V-Signal geht in den dritten Pin des LM358 und wird mit dem Spannungsteiler an Pin 2 verglichen und über Pin 1 verstärkt ausgegeben. Wir brauchen für den Faktor 2 hier einen Teiler von jeweils 10k. Zur Feinjustierung habe ich einen 10k-Poti verwendet.
Wenn wir jetzt mit unserem Multimeter die Spannung am Ausgang „Spindle PWM IN“ messen, sollte unser Multimeter rund 10 VDC anzeigen. Also volle Leistung/Umdrehung. Falls nicht, justieren wir am Poti so lange, bis wir diesen Wert haben.
Wenn wir nun unsere Spindel mit dem Kommando „M5“ anhalten und mit dem Kommando „M3 S500“ die Spindel mit 50% Leistung ansteuern, messen wir rund 2,5 V am Ausgang „Spindle PWM IN“. Passt.
„M3 S0“, oder „M5“ setzt den Wert auf 0 V.
Da ich aber gerade bei Werten von unter S100 die Spindel intern leise brummen hörte, wollte ich eine definitive Abschaltung haben, denn dummerweise war der Wert nie so wirklich 0.
Als Lösung habe ich mich dafür entschieden, dass ich den zweiten OpAmp des ICs hierfür nutzen kann. Alles, was oberhalb von „S 100“ liegt, erzeugt eine annehmbare Drehung der Spindel und ist es wert, dass die Spindel eingeschaltet werden soll. Darunter sinds Kriechspannungen, die ich nicht will.
Daher nehme ich das Ausgangssignal des Pin 1 und leite es als Eingangssignal, das verstärkt werden soll in den Pin 5 des OpAmps. Hier nutze ich nun einen 10k/5k-Spannungsteiler (Faktor 1,5) um sicher zu sein, dass das Signal mindestens 0,7 V erreicht, um einen Transistor durchzuschalten.
Da das verwendete Relais gegen GND schaltet, brauchen wir diesen Transistor, um eine Inverterschaltung aufzubauen, ansonsten wäre ohne sie das Relais angezogen, wenn die Spindel aus ist und nicht angezogen, wenn die Spindel läuft. In beiden Fällen würde sie sich dann ja nicht drehen, was ziemlich blöd ist.
Die invertierende Schaltung sorgt also dafür, dass, wenn das Signal 0,7 V ist, der Transistor durchschaltet und somit das Relais gegen GND schaltet. Das Relais schaltet durch und die Spindel läuft an.
Ist das Signal 0V, sperrt der Transistor und das Relais schaltet gegen +5V. Somit schaltet sich das Relais ab und die Spindel hört auf sich zu drehen.
Das ist die ganze Magie. 🙂 Eine einfache Schaltung, die künftig für mehr Sicherheit und Komfort sorgt beim Einsatz der Fräse.
Endstopps
Kommen wir abschließend noch zu den Endschaltern. Ich habe mich für optische Endschalter entschieden. Bei der Art der Verkabelung habe ich mich für „normally closed“ entschieden. Ich habe insgesamt sechs Schalter. Auf jeder Achse zwei Stück an den jeweiligen Endpunkten.
Warum Lichtschranke statt Schalter? Ganz einfach: Sie gelten als höchst zuverlässig und reagieren sofort.
Und warum „normally closed“ und was ist das überhaupt?
Stellt Euch das als einen Stromkreis mit einem Schalter und einer Lampe vor. Ist der Schalter ausgeschaltet und ist die Lampe ebenfalls aus, spricht man von „normally open“, denn in dem Moment, wo ich den Schalter drücke, schließe ich den Schaltkreis und der Strom fließt.
Bei „normally closed“ ist es gerade umgekehrt. So lange bis der Schalter gedrückt wird, fließt der Strom und die Lampe brennt. Das ist „normally closed“
Drücke ich jetzt in diesem Stromkreis den Schalter, geht die Lampe aus.
Normally closed verbraucht im Gegensatz zu normally open immer Strom. Erst beim Unterbrechen des Stromkreis fließt halt keiner mehr.
Eigentlich könnte man die Endschalter auch einfach „normally open“ betreiben. Nachteil hier wäre dann aber, dass in einem Fehlerfall (bspw. bei Defekt einer Leitung zum Sensor) der Fehler nicht erkannt wird, da der Sensor ja nicht den Stromkreis schließen kann und auf Grund des Defekts immer 0V hat.
Bei „normally closed“ würde ein Defekt der Leitung die 0V an die CNC-Software übermitteln und die Fräse sofort zum anhalten zwingen.
Nebenbei: Dieses Prinzip nutzt man auch bei Alarmanlagen, denn so kann man nicht so leicht die Sensoren „blind“ machen, in dem man ihnen einfach den Strom abklemmt. 🙂
Der Aufbau ist ganz einfach. Auch hier kommt lediglich eine Inverterschaltung zum Einsatz, die das Signal gerade umdreht. Pro Sensor zwei Widerstände, ein Transistor, fertig.
Die Lochrasterplatine (3x für X, Y und Z-Achse)
Hier ist die Platine, die pro Achse zum Einsatz kommt. Es werden parallel zwei Lichtschranken abgefragt. Wird eine der beiden unterbrochen, sendet dies einen 0V-Impuls an den „to controller“-Ausgang. Dieser ist mit dem entsprechenden Pin des CNC-Shields verbunden.
Die blauen Leiterbahnen sind Drahtbrücken.
Der Schaltplan
Ganz wichtig
Wenn Ihr das nachbauen wollt, dann bitte höchste Sicherheitsstufe bei der Arbeit, denn durch die Netzteile arbeitet Ihr an 230V AC. Das kann lebensgefährlich sein! Die fünf Sicherheitsregeln sind daher unbedingt zu beachten!
Ich habe wieder einen kleinen Download vorbereitet, in dem Ihr Schaltplan, Lochrasterplatine, Bauteileliste und Fotos zum Nachbauen findet.
Elektronische Spindelansteuerung
Hy Habe deine Schaltung nach gebaut, und nun die frage, habe ein 12V Netzteil angeschlossen und ein 5V Adapter, wenn das Relay nun angeschlossen ist bekomme ich beim einschalten der Spindel ein USB Fehler in ESLTCAM.
ist die Schaltung nicht für 12V ausgelegt oder kann da was anderes nicht stimmen?
Hallo Sven,
nein, 12V reichen. Das klingt, dass Du ein Problem mit der Abschirmung hast. Ein mechanisches Relais erzeugt hohe Störimpulse.
Abhilfe könnte ein gut abgeschirmtes USB-Kabel (also nicht der Chinamist 🙂 ) bringen. Alternativ könntest Du auch ein SSR Relais verwenden.
Bei mir gab es mit einem verwendeten Notebook ein ähnlich gelagertes Problem. Irgendwann stieg Estlcam aus. Wenn ich aber meinen Minitower verwende, läuft die Schaltung so, wie angegeben.
Hallo danke für dein Fastback, mittlerweile hat sich das Problem zur Spindel Gewand, sprich Relay schaltet aber wenn die Spindel läuft USB Fehler( ohne Spindel geht’s dann.
USB Kabel habe ich schon getestet.
Baue mir jetzt ein neues Case dann mal Abschirmung Verbessern
Hallo Werkstadt Team,
Ich möchte deine Steuerung nachbauen, habe im Video eine LED auf der Platine gesehen, wo wird diese in der Schaltung integriert ?
Und dann noch eine Frage: Warum das CNC-Shield mit 5V versorgen , wenn das Arduino-Board 5V an den gekennzeichneten 5V/GND auf dem CNC-Shield 5V geliefert werden?! Und davon gibt es sogar 2 Stellen mit 5V/GND auf dem Board! WO bekomm ich das Netzteil mit der Mach3 Version her? Soll ja später alles passen !
Ich werde an dem Projekt auf jeden fall Spaß haben!
Hallo Mario,
sorry für die sehr verspätete Antwort. Hab Deinen Beitrag leider eben erst gesehen. Die LEDs die Du gesehen hast, sind auf dem 1-Kanal-Relais bereits verbaut, daher nicht in der Schaltung berücksichtigt.
Was die 5V vom Arduino angeht … Ich bin bei so was immer sehr zurückhaltend, denn die 5V die „vom Arduino kommen“, kommen von einem kleinen Spannunsgregler der den Strom doch stark begrenzt.
Sicher, alleine für das Board würde es ausreichen die 5V vom Arduino-Pin zu holen, aber wenn man auf der sicheren Seite sein will, geht man besser direkt an die Spannungsquelle.
(Relais, Servos, usw. verbrauchen auch zu viel Strom und sollten daher ihren Strom auch immer direkt von der Quelle und nicht vom Arduino weitergeleitet bekommen.)
Das Netzteil war bei der Frässpindel mit dabei. Musst nur beim bestellen darauf achten, dass MACH3 vermerkt ist. Andere gehen auch, aber da ist es umständlicher um ans Ziel zu kommen.
Viele Grüße,
Michael
Hallo, ich habe das Problem das wenn ich im Programm angebe 100% zwar 5v an die. Platine gehen aber nur 1.4 herauskommen? Auch durch das drehen des Potis ließ sich nicht viel ändern. Ich nutze den LM358P. In deinen Texten redest du allerdings den mit dem n am Ende, ist es das?
Hi. Nein, N und P weisen keine Unterschiede beim LM358 auf.
Überprüfe noch mal Schritt für Schritt deine Platine. Wenn Du Rüdigers Kommentar – Asche auf mein Haupt, ich kam nach all der Zeit noch immer nicht dazu das zu korrigieren – berücksichtigst, muss es funktionieren. Eventuell kalte Lötstelle/falsche Verbindung?
Viele Grüße,
Michael
Ohh neinnnnn ich habe den Kommentar nicht berücksichtigt! Ich dachte das sich das längst geklärt hätte 😭😭😭
Ich bin kein Elektroniker und weiß nicht genau was Rüdigers Kommentar meint, also was ich machen muss, ich hoffe das es möglich ist das sie mir das erklären? Am besten mit einem Bild? Das wäre sehr freundlich da das das letzte an meiner fräse wäre und ich mittlerweile echt am Ende mit den Nerven bin nach einigen Rückschlägen
Hallo ich habe mal eine Frage ? welsches Relais wird für die Schaltung den gebraucht?
Hallo Mike,
ich habe hier das „1 Kanal Relais-Modul“ verwendet. Findest Du so auch unter google. Darauf verbaut ist eine Ansteuerung des Relais (wird gegen GND geschaltet). Das darauf verbaute Relais selbst ist ein SRD-05VDC und wird mit 5V angesteuert und kann Lasten – in diesem Fall benötigt – bis maximal 10A bei 30V DC schalten.
Aber beachte: Das funktioniert mit dieser Spindel sehr gut bei mir.
Beim Einsatz einer leistungsfähigeren Spindel die auch mit einem Frequenzumrichter arbeitet, benötigst Du ein SSD-Relais, sonst kann es zu Schaltproblemen kommen.
Viele Grüße, Michael
Hallo Michael,
das ist zwar schon eine Zeitlang her, seit der Artikel veröffentlicht wurde (bin erst jetzt darauf gestoßen), aber ich muss dennoch darauf hinweisen, dass die Trimmer R9/R5 in der Schaltung an den OpAmps falsch verdrahtet sind: In der Stellung E bilden sie einen Kurzschluss für die Ausgänge! Das zerstört die OpAmps. Richtig wäre: Minus-Eingang auf Mittelabgriff S und Ausgang auf Endanschlag E, Endanschlag A über R3 auf GND.
LG Rüdiger
Hallo Rüdiger,
sorry für die späte Antwort. Vielen Dank für Deinen Hinweis…. Werde den Schaltplan demnächst ändern.
Viele Grüße,
Michael
Hallo Rüdiger, ich verstehe nicht ganz was genau ich machen muss mit deiner Anleitung,könntest du mir das bitte erklären?
Hallo, hat jemand zufällig ein Diagramm bei dem Rüdigers Kommentar berücksichtigt wird?