шаговый драйвер tmc2209 через режим UART
Я использую Arduino Mega Pro 2560 и TMC2209 V2.0 от Makerbase. Этот: https://aliexpress.com/i/33043140087.html Я загрузил приведенный ниже скетч, и мой последовательный монитор постоянно выводит эту ошибку: "Драйвер шагового двигателя не настроен и не обменивается данными!"
#include <Arduino.h>
#include <TMC2209.h>
HardwareSerial & serial_stream = Serial3;
const long SERIAL_BAUD_RATE = 115200;
const int DELAY = 200;
const uint8_t RUN_CURRENT_PERCENT = 40;
const int32_t VELOCITY = 20000;
const uint8_t STALL_GUARD_THRESHOLD = 50;
// Создание экземпляра TMC2209
TMC2209 stepper_driver;
void setup()
{
Serial.begin(SERIAL_BAUD_RATE);
stepper_driver.setup(serial_stream);
if (stepper_driver.isSetupAndCommunicating())
{
Serial.println("Stepper driver setup and communicating!");
Serial.println("");
}
else
{
Serial.println("Stepper driver not setup and communicating!");
return;
}
stepper_driver.setRunCurrent(RUN_CURRENT_PERCENT);
stepper_driver.setStallGuardThreshold(STALL_GUARD_THRESHOLD);
stepper_driver.enable();
stepper_driver.moveAtVelocity(VELOCITY);
}
void loop()
{
if (not stepper_driver.isSetupAndCommunicating())
{
Serial.println("Stepper driver not setup and communicating!");
return;
}
Serial.print("run_current_percent = ");
Serial.println(RUN_CURRENT_PERCENT);
Serial.print("stall_guard_threshold = ");
Serial.println(STALL_GUARD_THRESHOLD);
uint16_t stall_guard_result = stepper_driver.getStallGuardResult();
Serial.print("stall_guard_result = ");
Serial.println(stall_guard_result);
Serial.println("");
delay(DELAY);
}
Библиотека: https://github.com/janelia-arduino/TMC2209
Вот моя проводка: Мега питается от 5 В от USB-порта моего ПК. Я делаю шину 5V/GND из выхода 5V Mega. Эта шина 5 В питает TMC2209 через контакт VDD. Контакт EN TMC подключен к GND 1B/1A/2A/2B на TMC подключены к NEMA17 GND и VMOT на TMC подключены к 12 В от моего настольного блока питания. Пин с надписью "UART" на TMC подключен к контакту D15 Mega (который является Serial3, поэтому я соответствующим образом модифицирую скетч) Вывод D16 подключен через резистор 1 кОм к D15. (судя по даташиту, это "один провод" UART видимо...)
Что я упускаю? Я пробовал с другими аппаратными серийными номерами (Serial1 и Serial2) без каких-либо успехов. Я пробовал переключать контакты RX/TX, может быть, для каждого аппаратного серийного номера, но безуспешно. Я пробовал с другим чипом TMC, но безуспешно (у меня их 5). Я попытался подключить MS1 и MS2 к GND. Пробовал один до 5 В, один GND (и наоборот), чтобы возиться с серийным адресом (по умолчанию 0b00), но безуспешно.
Теперь я не в курсе. Спасибо.
@Musa, 👍0
Обсуждение0
- В чем разница между библиотеками Software Serial? Какая из них совместима с Arduino Nano?
- Как использовать Serial.setTimeout()
- Аппаратная последовательная библиотека Arduino с поддержкой управления потоком rts/cts
- Accelstepper запустить степпер назад
- Отправить структуру через Serial
- Передавать данные структуры во внешнюю структуру через serial?
- Мост I2C-UART в виде прорыва или в корпусе DIP
- Может ли Arduino Leonardo одновременно использовать USB-порт и последовательные контакты RX TX?
возможно, TMC2209 работает не так, как вы ожидаете ... это не вопрос Arduino, пока вы не проверите функциональность TMC2209, включая правильность соединений, @jsotola