diff --git a/TMC2209_Examples/Arduino_TMC2209/Arduino_TMC2209.ino b/TMC2209_Examples/Arduino_TMC2209/Arduino_TMC2209.ino new file mode 100644 index 000000000..946bbc06d --- /dev/null +++ b/TMC2209_Examples/Arduino_TMC2209/Arduino_TMC2209.ino @@ -0,0 +1,31 @@ +// SPDX-FileCopyrightText: 2025 Liz Clark for Adafruit Industries +// +// SPDX-License-Identifier: MIT + +const int DIR = 5; +const int STEP = 6; +const int microMode = 8; // microstep mode, default is 1/8 so 8; ex: 1/16 would be 16 +// full rotation * microstep divider +const int steps = 200 * microMode; + +void setup() +{ + // setup step and dir pins as outputs + pinMode(STEP, OUTPUT); + pinMode(DIR, OUTPUT); +} + +void loop() +{ + // change direction every loop + digitalWrite(DIR, !digitalRead(DIR)); + // toggle STEP to move + for(int x = 0; x < steps; x++) + { + digitalWrite(STEP, HIGH); + delay(2); + digitalWrite(STEP, LOW); + delay(2); + } + delay(1000); // 1 second delay +} diff --git a/TMC2209_Examples/CircuitPython_TMC2209/code.py b/TMC2209_Examples/CircuitPython_TMC2209/code.py new file mode 100644 index 000000000..30c78246c --- /dev/null +++ b/TMC2209_Examples/CircuitPython_TMC2209/code.py @@ -0,0 +1,32 @@ +# SPDX-FileCopyrightText: 2025 Liz Clark for Adafruit Industries +# +# SPDX-License-Identifier: MIT + +import time +import board +from digitalio import DigitalInOut, Direction + +# direction and step pins as outputs +DIR = DigitalInOut(board.D5) +DIR.direction = Direction.OUTPUT +STEP = DigitalInOut(board.D6) +STEP.direction = Direction.OUTPUT + +# microstep mode, default is 1/8 so 8 +# another ex: 1/16 microstep would be 16 +microMode = 8 +# full rotation multiplied by the microstep divider +steps = 200 * microMode + +while True: + # change direction every loop + DIR.value = not DIR.value + # toggle STEP pin to move the motor + for i in range(steps): + STEP.value = True + time.sleep(0.001) + STEP.value = False + time.sleep(0.001) + print("rotated! now reverse") + # 1 second delay before starting again + time.sleep(1)