Ви не увійшли.
Сторінки 1
Всім привіт. Тестую чат GPT на предмет можливоті написання коду з його допомогою. Різні штуки з світлодіодами працюють, вирішив задати йому завдання поскладніше:
Є плата Arduino Mega 2560 до неї підключена плата розширення Arduino Mega RAMPS1.4 з драйвером двигуна A4988 кроковим двигуном 1.8 градуси, напиши найпростіший код для перевірки роботи крокового двигуна.
На що він видав наступний код:
#include <AccelStepper.h>
// Визначаємо піни, на які підключені кроковий двигун
#define STEP_PIN 54
#define DIR_PIN 55
// Створюємо об'єкт крокового двигуна
AccelStepper stepper(1, STEP_PIN, DIR_PIN);
void setup() {
// Налаштовуємо швидкість руху крокового двигуна
stepper.setMaxSpeed(1000);
}
void loop() {
// Рухаємо кроковий двигун на 200 кроків в один напрямок
stepper.move(200);
stepper.runToPosition();
// Затримка на 1 секунду
delay(1000);
// Рухаємо кроковий двигун на 200 кроків в інший напрямок
stepper.move(-200);
stepper.runToPosition();
// Затримка на 1 секунду
delay(1000);
}
Ну і нічого не працює, при тому, що з обладнанням все ок, заливаю прошивку Marlin при цьому двигун працює як треба.
Питання - наскільки все погано з кодом, що не вірно?
PS
Проект не комерційний, викликаний інтересом звичайним, що не дає заснути
Неактивний
Запитай у Аліси
Цеж російська (яндекс) приблуда і тут вона під забороною ...
Упс... не подумав
Все зробив, знайшов інший код, що працював, попросив проаналізувати відмінності та внести корективи в попередній код
#include <AccelStepper.h>
// Оголошуємо піни для керування кроковим двигуном
#define X_STEP_PIN 54
#define X_DIR_PIN 55
#define X_ENABLE_PIN 38
// Створюємо об'єкт класу AccelStepper
AccelStepper stepper(1, X_STEP_PIN, X_DIR_PIN);
void setup() {
// Встановлюємо режим керування двигуном
stepper.setSpeed(1000); // Half-step mode
stepper.setMaxSpeed(1000); // Встановлюємо максимальну швидкість обертання вісі X
stepper.setAcceleration(500); // Встановлюємо прискорення
// Налаштовуємо піни керування двигуном
pinMode(X_STEP_PIN, OUTPUT);
pinMode(X_DIR_PIN, OUTPUT);
pinMode(X_ENABLE_PIN, OUTPUT);
digitalWrite(X_ENABLE_PIN, LOW); // Ввімкнути драйвер двигуна
}
void loop() {
// Рухаємо двигун вперед
digitalWrite(X_DIR_PIN, HIGH);
stepper.move(2000); // Рухаємо на 2000 кроків
stepper.runToPosition();
delay(1000); // Затримка 1 секунду
// Рухаємо двигун назад
digitalWrite(X_DIR_PIN, LOW);
stepper.move(-2000); // Рухаємо на 2000 кроків в зворотньому напрямку
stepper.runToPosition();
delay(1000); // Затримка 1 секунду
}
Неактивний
Сторінки 1