tmc для соре2

master
SmartUA 2021-08-02 20:42:31 +03:00
parent bcede682fa
commit 35be24ee4f
2 changed files with 96 additions and 0 deletions

View File

@ -12,6 +12,7 @@
* - Уменьшить скорость
*/
#include <SPI.h>
#include <TMCStepper.h>
#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 \

94
tmcfabric/tmcfabric.ino Normal file
View File

@ -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;
}
}