Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
TMCStepper/examples/Simple/Simple.ino
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
74 lines (63 sloc)
3.04 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Author Teemu Mäntykallio | |
* Initializes the library and runs the stepper | |
* motor in alternating directions. | |
*/ | |
#include <TMCStepper.h> | |
#define EN_PIN 38 // Enable | |
#define DIR_PIN 55 // Direction | |
#define STEP_PIN 54 // Step | |
#define CS_PIN 42 // Chip select | |
#define SW_MOSI 66 // Software Master Out Slave In (MOSI) | |
#define SW_MISO 44 // Software Master In Slave Out (MISO) | |
#define SW_SCK 64 // Software Slave Clock (SCK) | |
#define SW_RX 63 // TMC2208/TMC2224 SoftwareSerial receive pin | |
#define SW_TX 40 // TMC2208/TMC2224 SoftwareSerial transmit pin | |
#define SERIAL_PORT Serial1 // TMC2208/TMC2224 HardwareSerial port | |
#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 | |
//TMC2130Stepper driver(CS_PIN, R_SENSE); // Hardware SPI | |
//TMC2130Stepper driver(CS_PIN, R_SENSE, SW_MOSI, SW_MISO, SW_SCK); // Software SPI | |
//TMC2660Stepper driver(CS_PIN, R_SENSE); // Hardware SPI | |
//TMC2660Stepper driver(CS_PIN, R_SENSE, SW_MOSI, SW_MISO, SW_SCK); | |
//TMC5160Stepper driver(CS_PIN, R_SENSE); | |
//TMC5160Stepper driver(CS_PIN, R_SENSE, SW_MOSI, SW_MISO, SW_SCK); | |
TMC2208Stepper driver(&SERIAL_PORT, R_SENSE); // Hardware Serial | |
//TMC2208Stepper driver(SW_RX, SW_TX, R_SENSE); // Software serial | |
//TMC2209Stepper driver(&SERIAL_PORT, R_SENSE, DRIVER_ADDRESS); | |
//TMC2209Stepper driver(SW_RX, SW_TX, R_SENSE, DRIVER_ADDRESS); | |
void setup() { | |
pinMode(EN_PIN, OUTPUT); | |
pinMode(STEP_PIN, OUTPUT); | |
pinMode(DIR_PIN, OUTPUT); | |
digitalWrite(EN_PIN, LOW); // Enable driver in hardware | |
// Enable one according to your setup | |
//SPI.begin(); // SPI drivers | |
//SERIAL_PORT.begin(115200); // HW UART drivers | |
//driver.beginSerial(115200); // SW UART drivers | |
driver.begin(); // SPI: Init CS pins and possible SW SPI pins | |
// UART: Init SW UART (if selected) with default 115200 baudrate | |
driver.toff(5); // Enables driver in software | |
driver.rms_current(600); // Set motor RMS current | |
driver.microsteps(16); // Set microsteps to 1/16th | |
//driver.en_pwm_mode(true); // Toggle stealthChop on TMC2130/2160/5130/5160 | |
//driver.en_spreadCycle(false); // Toggle spreadCycle on TMC2208/2209/2224 | |
driver.pwm_autoscale(true); // Needed for stealthChop | |
} | |
bool shaft = false; | |
void loop() { | |
// Run 5000 steps and switch direction in software | |
for (uint16_t i = 5000; i>0; i--) { | |
digitalWrite(STEP_PIN, HIGH); | |
delayMicroseconds(160); | |
digitalWrite(STEP_PIN, LOW); | |
delayMicroseconds(160); | |
} | |
shaft = !shaft; | |
driver.shaft(shaft); | |
} |