Arduino: prosty program do testowania napędu.

Oto prosty kod do sterowania silnikiem krokowym przy użyciu pinów PUL i DIR na Arduino Uno:

// Definicja pinów
const int PUL_PIN_1 = 8; // Pin PUL 1
const int DIR_PIN_1 = 9; // Pin DIR 1
const int PUL_PIN_2 = 10; // Pin PUL 2
const int DIR_PIN_2 = 11; // Pin DIR 2

// Parametry
int SZYBKOSC = 1000; // Częstotliwość impulsów (w Hz)
int TIME = 500; // Długość impulsu w mikrosekundach
int DROGA = 1000; // Liczba impulsów, po których następuje zmiana kierunku

void setup() {
  // Ustawienie pinów jako wyjścia
  pinMode(PUL_PIN_1, OUTPUT);
  pinMode(DIR_PIN_1, OUTPUT);
  pinMode(PUL_PIN_2, OUTPUT);
  pinMode(DIR_PIN_2, OUTPUT);

  // Ustalenie początkowego kierunku
  digitalWrite(DIR_PIN_1, HIGH);
  digitalWrite(DIR_PIN_2, HIGH);
}

void loop() {
  // Liczba impulsów wykonanych w tej iteracji
  static int licznik = 0;

  // Generowanie impulsów na pinach PUL
  digitalWrite(PUL_PIN_1, HIGH);
  digitalWrite(PUL_PIN_2, HIGH);
  delayMicroseconds(TIME);
  digitalWrite(PUL_PIN_1, LOW);
  digitalWrite(PUL_PIN_2, LOW);
  delayMicroseconds(TIME);

  // Zwiększ licznik
  licznik++;

  // Po osiągnięciu zadanej liczby impulsów zmień kierunek
  if (licznik >= DROGA) {
    licznik = 0; // Reset licznika impulsów
    // Zmiana kierunku na przeciwny
    digitalWrite(DIR_PIN_1, !digitalRead(DIR_PIN_1));
    digitalWrite(DIR_PIN_2, !digitalRead(DIR_PIN_2));
  }

  // Częstotliwość impulsów (SZYBKOSC)
  delayMicroseconds(1000000 / SZYBKOSC);
}

Opis:

  • Piny PUL_PIN_1 (8) i PUL_PIN_2 (10) generują impulsy.

  • Piny DIR_PIN_1 (9) i DIR_PIN_2 (11) kontrolują kierunek ruchu.

  • Parametry SZYBKOSC i TIME możesz dostosować do swoich potrzeb (częstotliwość impulsów i długość impulsów).

  • Po osiągnięciu zadanej liczby impulsów (DROGA), kierunek (DIR) jest zmieniany na przeciwny, a licznik impulsów jest resetowany.