1 / 1
3D Scan spin table — zdjęcie 1

3D Scan spin table

Zamów wydruk tego modelu

Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.

Zapisane na tym urządzeniu.

30cm table for scan. Used with Nema 17 (17HS4023) motor, DRV8825 driver and esp32-c3.

Ocena
0 / 5
Polubienia
1
Pobrania
6
Wydruki
0
Wyświetlenia
39
Oceny
0

Aktualizacja u źródła:

Informacje o modelu

Źródło
Printables
Kategoria
Accessories
Licencja
Creative Commons — Attribution — Noncommercial

Table splitted to third parts.

Need to build parts:

  1. M4 Nuts x6

  2. M4 8mm x6 to connect table to motor

  3. M3 12mm x6 to connect side table part

  4. M3 16mm x7 to close case

  5. Nema 17 (17HS4023)

  6. DRV8825

  7. ESP32-C3 (choice any, but case designed for this board sizes)

  8. DC-DC 12v->v5 or 12v->3.3v

  9. DC female connector

  10. 10K (type a) variable resistor

Firmware gen by ai. But u gen manually. Connect schema.

  • DRV8825 -> ESP32-C3

  • STP -> GPIO4

  • DIR -> GPIO 5

  • variable resistor C -> GPIO 0 (L to 3.3v, R to GND)

  • SLP/RST -> 3.3v

/*

Управление шаговым мотором NEMA17 через DRV8825

Скорость задаётся потенциометром (10 кОм).

Используется библиотека AccelStepper.

*/

#include <AccelStepper.h>

// -------------------- Настройка пинов --------------------

#define STEP_PIN 4 // Шаговый импульс (STEP)

#define DIR_PIN 5 // Направление (DIR)

#define ENABLE_PIN 6 // Включение драйвера (ENABLE) – опционально

#define POT_PIN 0 // Аналоговый вход для потенциометра (ADC)

// -------------------- Параметры скорости --------------------

#define MAX_SPEED 2000.0 // Максимальная скорость, шагов/сек

#define MIN_SPEED 0.0 // Минимальная скорость

// Создаём объект для управления драйвером

AccelStepper stepper(AccelStepper::DRIVER, STEP_PIN, DIR_PIN);

void setup() {

Serial.begin(115200);

// Настройка пина ENABLE (активный LOW – LOW включает драйвер)

pinMode(ENABLE_PIN, OUTPUT);

digitalWrite(ENABLE_PIN, LOW); // Включаем драйвер по умолчанию

// Разрешение АЦП – 12 бит (0…4095)

analogReadResolution(12);

// Устанавливаем максимальную скорость (для runSpeed())

stepper.setMaxSpeed(MAX_SPEED);

stepper.setSpeed(0); // Начинаем с нулевой скорости

}

void loop() {

// Читаем значение с потенциометра

int potValue = analogRead(POT_PIN);

// Преобразуем 0…4095 в скорость 0…MAX_SPEED

float speed = map(potValue, 0, 4095, 0, (int)MAX_SPEED);

// Если скорость очень мала, отключаем драйвер (экономия энергии)

if (speed < 10.0) {

stepper.setSpeed(0);

digitalWrite(ENABLE_PIN, HIGH); // HIGH отключает драйвер

} else {

digitalWrite(ENABLE_PIN, LOW); // LOW включает драйвер

stepper.setSpeed(speed);

}

// Выполняем шаг, если пришло время

stepper.runSpeed();

// (Опционально) вывод текущей скорости в монитор порта

// static unsigned long lastPrint = 0;

// if (millis() - lastPrint > 500) {

// Serial.print("Скорость: ");

// Serial.println(speed);

// lastPrint = millis();

// }

}

Tagi