Ich möchte einfach einen Schrittmotor mit einem Arduino steuern und brauche den TMC2130 , damit er sehr leise läuft. Ich habe viel gesucht und kann irgendwie nicht finden, wie man es tatsächlich mit einem Arduino und einer Stromquelle verdrahtet.
Ich kann Arduino-Bibliotheken und Beispielcode jedoch in Hülle und Fülle finden. Ich habe Schaltpläne gesehen, aber sie verwenden nur das TMC-Evaluierungskit, das ich nicht kaufen möchte.
Ist ein TMC2130 und Arduino alles, was ich an ICs oder Platinen benötige? Hat jemand Erfahrung damit?
Dieser Schaltplan erinnert mich an diese DRV8825-Schaltpläne. Ziemlich einfach zu folgen:
Quelle: TC2130 Arduino Wiring (Zuletzt geprüft: 13.07.2018)
Sieht für mich ziemlich einfach aus, es gibt ein Diagramm im Datenblatt auf Seite 5. Ich würde Ihnen dringend empfehlen , das Datenblatt zu lesen und zu verstehen, wenn Sie es nicht höchstwahrscheinlich zum ersten Mal starten und keine Funktionalität haben . Sie werden dann das Datenblatt lesen, bis Sie es verstehen und das Problem finden.
Das erste, was Sie in einem Datenblatt überprüfen sollten, sind die absoluten Höchstwerte. Überschreiten Sie diese Bedingungen nicht.
Der SPI-Bus ist mit dem Arduino verbunden (stellen Sie sicher, dass die Logikpegel gleich sind)
Es scheint, dass die STEP- und DIR-Ports vom Mikroprozessor angesteuert und der Motor auf diese Weise gesteuert werden können (und möglicherweise auch über den Spi-Bus gesteuert werden können).
Ein Beispielschema für das Evaluierungsboard finden Sie hier .
Die meisten von uns faulen Leuten verwenden einfach ein RAMPS-Board für unsere Schritttreiber mit dem Arduino. Die Schaltpläne sind verfügbar, aber es ist so einfach, ein RAMPS-Board zu kaufen.
Ein RAMPS-Board wird üblicherweise verwendet, um die 4 Schrittmotoren anzutreiben, die in den meisten 3D-Druckern zu finden sind, aber es ist universell und kann viele Positionierungsanwendungen antreiben.
Nur weil ich nach den Antworten immer noch nicht wusste, was ich tat, obwohl sie hilfreich sind, etwas Verständnis für Anfänger, da sich das Treiberboard z. B. von einem Treiberboard unterscheidet L298n
.
Kurz gesagt, eine Treiberplatine wie die TMC 2130
einzige Notwendigkeit +5V
und GND
, ein Digital-Pin für DIR
und STEP
. EN
kann an einen GND
Stift gezogen werden, um zB mit der AccelStepper
Arduino-Bibliothek zu arbeiten, würde aber viele großartige Funktionen verpassen. Um sie zu nutzen, meine 6-Schritte-Anleitung, die Ihnen hoffentlich ein oder zwei Tage beim Durcharbeiten der Trinamic-Website für einen schnellen und schnellen Lauf erspart.
Im Allgemeinen ist nur Folgendes zu tun:
Imax
Strom. In meinem Fall: 17hs4401 der Motor hat 1.7A "Rated Current"
. Das heißt, das TMC 2130
würde funktionieren, könnte aber nicht im Stealth-Modus laufen, würde aber funktionieren, da ..."Der maximal einstellbare Motorstrom beträgt 1,77 A RMS (0,11 Ohm Messwiderstände), aber die SilentStepSticks können nur bis zu 1,2 A RMS verwendet werden." ( https://wiki.fysetc.com/TMC2130/#motor-current-setting )
Motorphasenstrom max. 2 A RMS, 2,8 A Spitze
( https://wiki.fysetc.com/Silent2209/#technical-specifications )
Also habe ich mich für Letzteres entschieden TMC 2209
(Meiner Meinung nach eine bessere Wahl in jeder Hinsicht als die TMC 2130
und obwohl der gleiche Hinweis auf 1,2 A erscheint, aber der RMS bei 2 A liegt, funktioniert es also.)
BEARBEITEN: Teemalut, der Ersteller der Bibliothek, hat einige Punkte klargestellt, die ich in der Dokumentation falsch interpretiert habe:
Die Stromstärke schränkt Ihre Wahl des Schrittmodus nicht ein. Die Grenze von 1,2 A ist eine praktische thermische Grenze. Ich würde 2209 lieber nicht nennen, um in jeder Hinsicht besser zu sein als der 2130. Ihm fehlen einige Optionen und es werden einige hinzugefügt, und letztendlich ist es Sache des Benutzers, den Treiber auszuwählen. Ich neige dazu, die SPI zu bevorzugen, weil sie einfacher zu handhaben sind.
Wenn Sie keine Softwaresteuerung über den Treiber haben, müssen Sie den Widerstand manuell einstellen. Andernfalls können Sie Punkt 2 und 3 überspringen.
Vref
Loch/Pin und überprüfen Sie noch einmal im Datenblatt, wo Vref
gemessen werden muss, da ändert sich das sogar ab Version zu Version des Platinenlayouts. Könnte der rechte Stift oder der linke der 3 Stifte oder woanders sein. (Und ja, an dieser Stelle müssen Sie sich ein Multimeter besorgen, ein billiger Discounter für 5 Dollar tut es, um die Treiberplatine nicht zu braten)(Das Multimeter auf Gleichspannung ⎓, NICHT Wechselstrom ~; Schalten Sie die Multimeter-Auswahl auf so nah wie, aber größer als die zu messende Spannung, z. B. 20-V-Bereich für die 2,4-V-Messung)The higher the range difference, the less accurate the measuring will get
Dafür gibt es auf der Homepage tatsächlich einen Rechner nur zum Trainieren der Formel:
Vref = (Ieff * 2,5 V) / 1,77 A = Ieff * 1,41 = Imax
also Vref = (1,7A * 2,5V) / 1,77A = 1,4V
VIO
& GND
und die 12V Motorspannung VM
& GND
daneben an. Verbinden Sie nicht den Motor und nicht unbedingt die GND
Pins miteinander, sie können getrennt werden. Nehmen Sie nun einen ganz kleinen Schraubendreher und verstellen Sie die Schraube am Potentiometer, bis die errechnete Gleichspannung erscheint.Möglicherweise müssen Sie etwas warten, bis die Spannung nicht mehr springt, da sich der TMC 2209 or TMC 2130
Treiber beim ersten Anschluss an die Spannung anpasst, bis Sie sich auf - in meinem Fall 2,4 V für einen 1,7 A-Bipolar-Schrittmotor - einstellen können.
Das war der schwierigste Teil.
TMCStepper
Bibliothek der Arduino IDE
. Es gibt tatsächlich eine Beispielskizze des TMC2209
und die Bibliothek funktioniert auch mit dem TMC 2130
und nutzt viele Funktionen der TMC-Treiber ( https://github.com/teemuatlut/TMCStepper )Ich verwende den Arduino Mini-Klon
Der Enable- und Direction-Pin sollte digitale Pins sein und der Step-Pin SW_RX
und SW_TX
PWM
Pins. Die TMC 2209
und TMC 2130
arbeiten mit 3,3 V und 5 V, also kein Grund zur Sorge.
Alle Pins können nur normale DigitalIO-Pins sein. https://github.com/teemuatlut/TMCStepper/pull/146#issuecomment-684010156
DigitalIO
Ihrem Board und kommentieren Sie das Zeug gemäß dem folgenden Codebeispiel aus #define EN_PIN 7 // Enable
#define DIR_PIN 8 // Direction
#define STEP_PIN 9 // Step
#define SW_RX 5 //
#define SW_TX 6 //
#define SERIAL_PORT Serial // [Serial1 to Serial]
#define DRIVER_ADDRESS 0b00 // TMC2209 Driver address according to MS1 and MS2
#define R_SENSE 0.11f // Match to your driver
// SilentStepStick series use 0.11
// UltiMachine Einsy and Archim2 boards use 0.2
// Panucatt BSD2660 uses 0.1
// Watterott TMC5160 uses 0.075
// Select your stepper driver type
//TMC2209Stepper driver(&SERIAL_PORT, R_SENSE, DRIVER_ADDRESS);
TMC2209Stepper driver(SW_RX, SW_TX, R_SENSE, DRIVER_ADDRESS); //Uncomment this if you connected SW_RX and SW_TX
//...
Das war es.
Also ich habe folgende Konfiguration:
Arduino Digital Pin 7 -> Aktivieren zuEN
Arduino Digital Pin 8 -> Richtung zuDIR
Arduino Digital Pin 9 -> Schritt zuSTEP
Arduino Digital PIN 5 -> SW_RX zuRX
Arduino Digital PIN 6 -> SW_TX zuTX
Arduino +5V oder +3,3V -> bisVIO
Arduino GND -> bis GND
nebenVIO
+12V >2A Stromquelle --> toVM
GND >2A Stromquelle --> bis GND
nebenVM
Motor A+ -->A2
Motor A- -->A1
Motor B+ -->B1
Motor B- -->B2
(Es würde auch funktionieren, einfach Step und Direction mit dem Arduino mit der AccelStepper Library zu verbinden und EN auf Arduino GND zu ziehen und die anderen offen zu lassen, damit der Motor funktioniert, aber viele Funktionen des TMC wären es nicht verwendet und der Motor wäre wahrscheinlich lauter und "frisst" mehr Strom. Aber das ist eine Lösung, wenn Sie nur noch einen digitalen und einen PWM-Pin auf Ihrem Arduino haben.)
Ich hoffe, jemand wird einen Tag sparen, indem er die Dokumentation durchliest, um zu verstehen, wie diese Treiberplatine mit diesem Beitrag funktioniert.
Jack Creasey