Analysieren eines schnellen 24-V-PWM-Signals in Arduino

Ich versuche gerade, einen 3D-Druckkopf auf eine billige chinesische CNC-Fräse zu montieren. Bisher konnte ich den Lüfter, das Heizelement (einschließlich des Auslesens eines Thermistors) und den Feeder-Motor mit einem Arduino Uno erfolgreich steuern.

Die CNC selbst hat ein Terminal, das mit dem Frässpindelmotor verbunden ist. Dies erzeugt ein 24-V-2-MHz-PWM-Signal, das die Drehzahl des Spindelmotors steuern soll.

Nachdem ich den Druckkopf installiert habe, möchte ich in der Lage sein, die Geschwindigkeit des Filamentzufuhrmotors zu steuern, indem ich die Spindelgeschwindigkeitseinstellung der CNC verwende. Dazu brauche ich den Arduino, um die Ausgabe des Spindeldrehzahlterminals lesen zu können.

Nun zu meiner Frage: Wie ist es möglich, ein 24-V-PWM-Signal auf 5 V herunterzuschieben, damit ich das Tastverhältnis mit meinem Arduino lesen und messen kann?

Mein erster Gedanke war, einen Optokoppler zu verwenden: Dies scheint ein möglicher Weg zu sein, aber meine Optokoppler (LTV-817A) haben eine Grenzfrequenz von 80 kHz. Soweit ich weiß, sind sie für eine 2-MHz-PWM zu langsam Signal.

Welche Alternativen habe ich?

Sind Sie 100% sicher, dass es sich um eine 2-MHz-Trägerfrequenz für die PWM handelt?
Ich stimme dafür, diese Frage als nicht zum Thema gehörend zu schließen, da es sich um ein altes aufgegebenes XY-Problem handelt. Mühlen machen schlechte 3D-Drucker, und der Filamentvorschub erfordert mehr Präzision als nur eine Rate. Es gibt eine ganze Menge Kunst und Wissen, die Sie übersehen, wenn Sie versuchen, ein Experiment zu kopieren, das vor 15 Jahren im Hobbybereich interessant schien, als FDM außerhalb einiger weniger Unternehmen kaum bekannt war, aber heute längst veraltet ist .
Ich stimme zu, dass die Mühle niemals mit speziell gebauten Druckern konkurrieren wird, sei es nur, weil die Z-Distanz, die sie zurücklegen kann, viel zu klein ist, um etwas Sinnvolles zu drucken. Deshalb habe ich nach dem elektrischen Problem der Verarbeitung eines PWM-Signals gefragt, von dem ich sicher bin, dass es andere Anwendungen außerhalb des 3D-Drucks gibt. Der erste Absatz meiner Frage diente nur dem Kontext.

Antworten (2)

Mein Vorschlag ist:

  1. Tiefpassfilterung des 2-MHz-PWM-Signals zur Erzeugung eines drehzahlproportionalen 0-24-V-DC-Signals. Eine einfache RC-Schaltung sollte ausreichen. Bei 2 MHz ist die Zeitkonstante viel kleiner als die Hochlauf-/Auslaufgeschwindigkeit des Motors.
  2. Puffern Sie dieses Signal.
  3. Treiben Sie einen analogen Optokoppler an.
  4. Führen Sie den analogen Ausgang in den analogen Eingang Ihres Mikrocontrollers ein.

Schritt 2 muss funktionieren, ohne den Filter zu stark zu belasten.

Wouter van Ooijen hat einige Vorschläge in seiner Antwort auf Benötigen Sie einen Optokoppler, um einen direkt proportionalen Ausgang zu erhalten, der vom DC-Eingang galvanisch getrennt ist . Besonders der lineare Trennverstärker HCPL-7510 sieht interessant aus.

Wenn Masse zwischen PWM-Controller und Arduino gemeinsam ist, können Sie einfach einen Widerstandsteiler verwenden.

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Bei diesen Werten nicht bei 2 MHz!