tmc для соре2
parent
bcede682fa
commit
35be24ee4f
|
@ -12,6 +12,7 @@
|
||||||
* - Уменьшить скорость
|
* - Уменьшить скорость
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <SPI.h>
|
||||||
#include <TMCStepper.h>
|
#include <TMCStepper.h>
|
||||||
|
|
||||||
#define MAX_SPEED 40 // Значение таймера в Millis для скорости
|
#define MAX_SPEED 40 // Значение таймера в Millis для скорости
|
||||||
|
@ -37,6 +38,7 @@
|
||||||
#define SW_MISO 28 // Software Master In Slave Out (MISO)
|
#define SW_MISO 28 // Software Master In Slave Out (MISO)
|
||||||
#define SW_SCK 32 // Software Slave Clock (SCK)
|
#define SW_SCK 32 // Software Slave Clock (SCK)
|
||||||
|
|
||||||
|
|
||||||
#define R_SENSE 0.11f // Резистор с которого будет делаться замер на драйвере - уточнить. \
|
#define R_SENSE 0.11f // Резистор с которого будет делаться замер на драйвере - уточнить. \
|
||||||
// SilentStepStick series use 0.11 - выбрать данный параметр \
|
// SilentStepStick series use 0.11 - выбрать данный параметр \
|
||||||
// UltiMachine Einsy and Archim2 boards use 0.2 \
|
// UltiMachine Einsy and Archim2 boards use 0.2 \
|
||||||
|
|
|
@ -0,0 +1,94 @@
|
||||||
|
/* Отрисовка графика значений в плоттере
|
||||||
|
|
||||||
|
* Вы можете точно настроить показания, изменив STALL_VALUE.
|
||||||
|
* Это позволит вам контролировать, при какой нагрузке значение будет равно 0
|
||||||
|
* и сработает флаг остановки. Это также установит высокий уровень на выводе DIAG1.
|
||||||
|
* Более высокое значение STALL_VALUE сделает чтение менее чувствительным и
|
||||||
|
* меньшее значение STALL_VALUE сделает его более чувствительным.
|
||||||
|
*
|
||||||
|
* Если отправить 0 в консоль - остановка
|
||||||
|
* 1 - движение
|
||||||
|
* + увеличить скорость / При слишком большой скорости шаги будут проскакивать.
|
||||||
|
* - Уменьшить скорость
|
||||||
|
*/
|
||||||
|
#include "Arduino.h"
|
||||||
|
#include <SPI.h>
|
||||||
|
#include <TMCStepper.h>
|
||||||
|
|
||||||
|
#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;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue