Відповісти

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

Назад

Огляд теми (нові повідомленні вгорі)

г0cть
2024-10-21 19:01:47

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

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

Xao_Asakura
2024-10-21 15:50:21

Я прикладав демонтративне фото, переробив для своєї плати:
https://ibb.co/VNP10sc
Я змінив DIR_PIN на 5, але проблема все таже, навіть коли виймаю провод з DIR pin,кроковий двигун ніяк не реагує, все так же крутиться тільки в одну сторону

Xao_Asakura
2024-10-21 15:48:10

Я прикладав демонтративне фото, переробив для своєї плати:
https://ibb.co/VNP10sc
Я змінив DIR_PIN на 5, але проблема все таже, навіть коли виймаю провод з DIR pin,кроковий двигун ніяк не реагує, все так же крутиться тільки в одну сторону

dimich
2024-10-20 19:22:16

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

г0cть
2024-10-20 17:42:52

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

Xao_Asakura
2024-10-20 17:34:45

Привіт, вирішив написати код для управління кроковим двигуном 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);                // Пауза перед новим циклом
}

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