#1 2024-10-20 17:34:45

Xao_Asakura
Учасник
Зареєстрований: 2024-09-28
Повідомлень: 5

Проблеми з платою esp8266

Привіт, вирішив написати код для управління кроковим двигуном nema23 на драйвері TB6600 для плати esp8266 Wemos D1 R1.
При написанні кода зіткнувся з проблемою в підключені пінів, чомусь двигун рухаєтся тільки в одному напряму, хотя код написаний для обох напрямів, здається проблема в підключені DIR піна.
Підключення пінів на фото
https://ibb.co/9qkj8fB

// Піни керування кроковим двигуном
#define STEP_PIN         4   // GPIO4
#define DIR_PIN          10  // GPIO5

// Налаштування часу
#define move_forward_time 3000    // час руху вперед у мс
#define move_back_time 3000       // час руху назад у мс
#define pause_time 4000           // час паузи у мс
#define frequency 2250            // час між імпульсами у мкс

// Таймер для millis()
uint32_t timer = 0;

void setup() {
  pinMode(STEP_PIN, OUTPUT);       // Налаштовуємо піни керування
  pinMode(DIR_PIN, OUTPUT);
  Serial.begin(115200);            // Для налагодження через Serial Monitor
}

void loop() {
  // Напрямок вперед
  Serial.println("Напрямок: Вперед");
  digitalWrite(DIR_PIN, HIGH);      // Встановлюємо напрямок обертання вперед
  delay(100);                       // Невелика затримка для стабілізації

  timer = millis();                 // Запускаємо таймер
  // Обертаємо двигун move_forward_time мс
  do {
    digitalWrite(STEP_PIN, HIGH);
    delayMicroseconds(frequency);
    digitalWrite(STEP_PIN, LOW);
    delayMicroseconds(frequency);
  } while (millis() - timer < move_forward_time);

  delay(pause_time);                // Пауза pause_time мс

  // Напрямок назад
  Serial.println("Напрямок: Назад");
  digitalWrite(DIR_PIN, LOW);       // Змінюємо напрямок обертання
  delay(100);                       // Невелика затримка для стабілізації

  timer = millis();                 // Знову запускаємо таймер
  // Обертаємо двигун move_back_time мс
  do {
    digitalWrite(STEP_PIN, HIGH);
    delayMicroseconds(frequency);
    digitalWrite(STEP_PIN, LOW);
    delayMicroseconds(frequency);
  } while (millis() - timer < move_back_time);

  delay(pause_time);                // Пауза перед новим циклом
}

Остання редакція Xao_Asakura (2024-10-20 17:36:16)

Неактивний

#2 2024-10-20 17:42:52

г0cть
Гість

Re: Проблеми з платою esp8266

1)на малюнку Uno а не esp8266
2)gpio10 у esp8266 не доступний для використання

#3 2024-10-20 19:22:16

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 197

Re: Проблеми з платою esp8266

Як уже вказали вище, у вас щось наплутано з пінами. Або маркування пінів не відповідає дійсності, або скетч компілюється не для тієї плати.
Найперше, що потрібно перевіряти - чи є потрібний сигнал на тому піні, на якому його очікуєте. Якщо нема осцилографа чи хоча б тестера, то можна перевірити за допомогою світлодіода з резистором.

Неактивний

#4 2024-10-21 19:01:47

г0cть
Гість

Re: Проблеми з платою esp8266

Я змінив DIR_PIN на 5, але проблема все таже

на 5 чи на D5? Як кажуть у нас - це дві великі різниці.

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму