Я просто хочу управлять шаговым двигателем с помощью Arduino, и мне нужен TMC2130 , чтобы он работал очень тихо. Я много искал и почему-то не могу найти, как на самом деле подключить его к Arduino и источнику питания.
Однако я могу найти библиотеки Arduino и примеры кода в изобилии. Я видел электрические схемы, но они используют только комплект TMC eval, который я не хочу покупать.
TMC2130 и Arduino — это все, что мне нужно в плане интегральных схем или плат? У кого-нибудь есть опыт в этом?
Эта схема напоминает мне те схемы DRV8825. Довольно просто следовать:
Источник: TC2130 Arduino Wiring (последняя проверка: 13.07.2018)
Для меня это выглядит довольно прямолинейно, в техническом описании есть диаграмма на странице 5. Я настоятельно рекомендую вам прочитать и понять техническое описание , если вы, скорее всего, не запускаете его в первый раз и не имеете функциональности. . Затем вы будете читать техническое описание, пока не поймете его и не найдете проблему.
Первое, что нужно проверить в техническом описании, это абсолютные максимальные значения, не превышайте эти условия.
Шина SPI подключена к Arduino (убедитесь, что логические уровни совпадают)
Похоже, что порты STEP и DIR могут управляться микропроцессором, а двигатель управляется таким образом (и также может управляться через шину spi)
Пример схемы можно найти здесь для eval board .
Большинство из нас, ленивых людей, просто используют плату RAMPS для наших драйверов шаговых двигателей с Arduino. Схемы доступны, но купить плату RAMPS очень просто.
Плата RAMPS обычно используется для управления 4 шаговыми двигателями, которые есть в большинстве 3D-принтеров, но она универсальна и может управлять многими приложениями позиционирования.
Просто потому, что я все еще не знал, что я делаю после ответов, хотя они и полезны, немного понимания знаний для начинающих, поскольку плата драйвера отличается от платы драйвера L298n
.
Короче говоря, плата драйвера, как и TMC 2130
единственная потребность +5V
и GND
, цифровой контакт для DIR
и STEP
. EN
может быть подключен к GND
булавке для работы с AccelStepper
библиотекой arduino, но будет упущено много замечательных функций. Чтобы воспользоваться ими, воспользуйтесь моим 6-шаговым руководством, которое, я надеюсь, сэкономит вам день или два, работая с веб-сайтом Trinamic для быстрой работы.
В общем, все, что нужно сделать, это:
Imax
ток. В моем случае: 17хс4401 мотор имеет 1.7A "Rated Current"
. Это означает, что он TMC 2130
будет работать, но не сможет работать в скрытом режиме, но будет работать, поскольку...«Максимальный устанавливаемый ток двигателя составляет 1,77 А (среднеквадратичное значение) (чувствительные резисторы 0,11 Ом), но SilentStepSticks можно использовать только до 1,2 А (среднеквадратичное значение)». ( https://wiki.fysetc.com/TMC2130/#motor-current-setting )
Максимальный ток фазы двигателя: 2 А (среднеквадратичное значение), 2,8 А (пиковое значение)
( https://wiki.fysetc.com/Silent2209/#технические-спецификации )
Поэтому я выбрал более поздний TMC 2209
(на мой взгляд, лучший выбор во всех аспектах, и TMC 2130
даже несмотря на то, что появляется тот же намек на 1,2 А, но среднеквадратичное значение составляет 2 А, так что это работает).
РЕДАКТИРОВАТЬ: Teemalut, создатель библиотеки, разъяснил несколько моментов, которые я неправильно истолковал в документации:
Текущий рейтинг не ограничивает ваш выбор пошагового режима. Ограничение 1,2 А является практическим тепловым пределом. Я бы не стал называть 2209 лучше во всех отношениях, чем 2130. В нем отсутствуют некоторые опции, а некоторые добавлены, и в конечном итоге выбор драйвера остается за пользователем. Я предпочитаю SPI, потому что с ними легче работать.
Если у вас нет программного управления драйвером, вам придется настроить резистор вручную. В противном случае вы можете пропустить пункты 2 и 3.
Vref
отверстию/контакту и снова проверьте таблицу данных, где Vref
должно быть измерено, поскольку оно меняется даже от версия к версии макета платы. Может быть правый контакт или левый из 3 контактов или где-то еще. (И да, в этот момент вы должны получить мультиметр, дешевый дисконтный за 5 баксов сделает это, чтобы не поджарить плату драйвера)(Мультиметр на напряжении постоянного тока ⎓, НЕ на переменном токе ~; переключите выбор мультиметра так, чтобы он был как можно ближе к измеряемому напряжению, но больше, например, диапазон 20 В для измерения 2,4 В)The higher the range difference, the less accurate the measuring will get
На самом деле для этого на главной странице есть калькулятор только для обучения формуле:
Vref = (Irms * 2,5 В) / 1,77 A = Irms * 1,41 = Imax
поэтому Vref = (1,7А * 2,5В) / 1,77А = 1,4В
VIO
и GND
напряжение двигателя 12 В VM
и GND
рядом с ним. Не соединяйте двигатель и не обязательно GND
штифты друг с другом, их можно разъединить. Теперь возьмите очень маленькую отвертку и регулируйте винт на потенциометре, пока не появится рассчитанное напряжение постоянного тока.Возможно, вам придется немного подождать, пока напряжение перестанет прыгать, потому что TMC 2209 or TMC 2130
драйвер настраивается при первом подключении к напряжению , пока вы не сможете приспособиться - в моем случае 2,4 В для биполярного шагового двигателя 1,7 А.
Это была самая трудная часть.
TMCStepper
библиотеке Arduino IDE
. На самом деле есть пример эскиза, TMC2209
и библиотека также работает с TMC 2130
и использует многие функции драйверов TMC ( https://github.com/teemuatlut/TMCStepper )Я использую клон Arduino Mini
Штыри Enable и Direction должны быть цифровыми штырьками, а штыри Step SW_RX
и SW_TX
PWM
штыри. И работают с 3,3 В и 5 В TMC 2209
, TMC 2130
так что здесь не о чем беспокоиться.
Все выводы могут быть обычными выводами digitalIO. https://github.com/teemuatlut/TMCStepper/pull/146#issuecomment-684010156
DigitalIO
вашей доской и раскомментируйте материал в соответствии со следующим примером кода. #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
//...
Вот оно.
Итак, у меня получилась следующая конфигурация:
Цифровой контакт 7 Arduino --> Включить дляEN
Цифровой контакт Arduino 8 --> Направление наDIR
Arduino Digital Pin 9 --> Шаг кSTEP
Цифровой PIN-код Arduino 5 --> SW_RX дляRX
Цифровой PIN-код 6 Arduino --> SW_TX дляTX
Arduino +5В или +3,3В --> кVIO
Arduino GND --> GND
рядом сVIO
+12В >2А Источник питания --> кVM
GND >2A Источник питания --> GND
рядом сVM
Мотор А+ -->A2
Мотор А- -->A1
Мотор В+ -->B1
Мотор В- -->B2
(Это также сработает, если просто подключить Step и Direction к arduino с библиотекой AccelStepper и подтянуть EN к Arduino GND, а остальные оставить открытыми, чтобы двигатель работал, но многие функции TMC не будут используется, и двигатель, вероятно, будет громче и «съест» больше энергии.Но это решение, если у вас на Arduino остался только один цифровой и один ШИМ-вывод.)
Я надеюсь, что кто-то потратит день на чтение документации, чтобы понять, как эта плата драйверов работает с этим постом.
Джек Кризи