diff --git a/M5_TMC2130.ino b/M5_TMC2130.ino index bc8e100..627bc64 100644 --- a/M5_TMC2130.ino +++ b/M5_TMC2130.ino @@ -12,6 +12,7 @@ * - Уменьшить скорость */ +#include #include #define MAX_SPEED 40 // Значение таймера в Millis для скорости @@ -37,6 +38,7 @@ #define SW_MISO 28 // Software Master In Slave Out (MISO) #define SW_SCK 32 // Software Slave Clock (SCK) + #define R_SENSE 0.11f // Резистор с которого будет делаться замер на драйвере - уточнить. \ // SilentStepStick series use 0.11 - выбрать данный параметр \ // UltiMachine Einsy and Archim2 boards use 0.2 \ diff --git a/tmcfabric/tmcfabric.ino b/tmcfabric/tmcfabric.ino new file mode 100644 index 0000000..d45e009 --- /dev/null +++ b/tmcfabric/tmcfabric.ino @@ -0,0 +1,94 @@ +/* Отрисовка графика значений в плоттере + +* Вы можете точно настроить показания, изменив STALL_VALUE. + * Это позволит вам контролировать, при какой нагрузке значение будет равно 0 + * и сработает флаг остановки. Это также установит высокий уровень на выводе DIAG1. + * Более высокое значение STALL_VALUE сделает чтение менее чувствительным и + * меньшее значение STALL_VALUE сделает его более чувствительным. + * + * Если отправить 0 в консоль - остановка + * 1 - движение + * + увеличить скорость / При слишком большой скорости шаги будут проскакивать. + * - Уменьшить скорость + */ +#include "Arduino.h" +#include +#include + +#define MAX_SPEED 40 // Значение таймера в Millis для скорости +#define MIN_SPEED 1000 + +#define STALL_VALUE 15 // [-64..63] + +/* +Меньшее значение дает более высокую чувствительность. Нуль +начальное значение, которое работает с большинством двигателей. +От -64 до +63: чем выше значение, тем меньше stallGuard2. +чувствителен и требует большего крутящего момента для +определения остановки (залипания). +*/ + +//Настройка пинов для Software SPI. На Arduino Mega все пины кроме Аналоговых + +#define EN_PIN 32 // Enable +#define DIR_PIN 25 // Direction +#define STEP_PIN 21 // Step + +#define CS_PIN 23 // Chip select +#define SW_MOSI 19 // Software Master Out Slave In (MOSI) +#define SW_MISO 33 // Software Master In Slave Out (MISO) +#define SW_SCK 22 // Software Slave Clock (SCK) + + + + +#define R_SENSE 0.11f // Резистор с которого будет делаться замер на драйвере - уточнить. \ + // SilentStepStick series use 0.11 - выбрать данный параметр \ + // UltiMachine Einsy and Archim2 boards use 0.2 \ + // Panucatt BSD2660 uses 0.1 \ + // Watterott TMC5160 uses 0.075 + +//Silent-Step-Stick 0.11 - это плата драйвера шагового двигателя для двухфазных двигателей, +//основанная на драйверах Trinamic: TMC 2100 / TMC 2130 / TMC 2208 / TMC 2209 / TMC 5160 / TMC 5161. + +// Тип подключения +//TMC2130Stepper driver(CS_PIN, R_SENSE); // Hardware SPI будут использоваться стандратные пины +TMC2130Stepper driver(CS_PIN, R_SENSE, SW_MOSI, SW_MISO, SW_SCK); // Software SPI + +bool dir = true; + +void setup() { + Serial.begin(9600); + while(!Serial); + Serial.println("Start..."); + driver.begin(); // Initiate pins and registeries + driver.rms_current(1000); // Set stepper current to 600mA. The command is the same as command TMC2130.setCurrent(600, 0.11, 0.5); + driver.en_pwm_mode(1); // Enable extremely quiet stepping + + pinMode(EN_PIN, OUTPUT); + pinMode(STEP_PIN, OUTPUT); + digitalWrite(EN_PIN, LOW); // Enable driver in hardware + + Serial.print("DRV_STATUS=0b"); + Serial.println(driver.DRV_STATUS(), BIN); +} + +void loop() { + digitalWrite(STEP_PIN, HIGH); + delayMicroseconds(10); + digitalWrite(STEP_PIN, LOW); + delayMicroseconds(10); + uint32_t ms = millis(); + static uint32_t last_time = 0; + if ((ms - last_time) > 2000) { + if (dir) { + Serial.println("Dir -> 0"); + driver.shaft(0); + } else { + Serial.println("Dir -> 1"); + driver.shaft(1); + } + dir = !dir; + last_time = ms; + } +} \ No newline at end of file