Jak używać silnika krokowego 28ByJ-48 z Driver

How to Use the 28BYJ-48 Stepper Motor with ULN2003 Driver and Arduino

Silnik Stepper 28ByJ-48 to popularny, niedrogi silnik krokowy często stosowany w projektach elektroniki DIY. W połączeniu z płytą sterownika ULN2003, jest to doskonały wybór dla aplikacji wymagających precyzyjnego ruchu, takich jak robotyka, suwaki z kamer i automatyzacja domu. Ten samouczek poprowadzi Cię przez konfigurowanie i kontrolowanie silnika krokowego 28ByJ-48 z Arduino.

Czego będziesz potrzebować

  1. 28Byj-48 Silnik stepowy
  2. Płyta sterownika ULN2003
  3. Arduino Board (np. UNO, Mega, Nano)
  4. Przewody zworki
  5. Breadboard (opcjonalnie)
  6. Komputer z zainstalowanym Arduino IDE

Krok 1: Zrozumienie komponentów

28Byj-48 Silnik stepowy

  • 28ByJ-48 to 4-fazowy silnik stepowy o 5-przewodowym, ze współczynnikiem redukcji przekładni wynoszącą około 1:64, co czyni go precyzyjnym i niezawodnym.

Płyta sterownika ULN2003

  • ULN2003 to tablica sterowników zaprojektowana specjalnie dla silnika 28BYJ-48. Zawiera diody LED wskazujące na aktywną fazę silnika i upraszcza połączenia z Arduino.

Krok 2: Okablowanie ULN2003 do Arduino

  1. Podłącz silnik 28ByJ-48 do płyty sterownika ULN2003. Złącze silnika mieści się bezpośrednio w nagłówku oznaczonym „w” na planszy.

  2. Użyj przewodów Jumper, aby podłączyć płytę sterownika ULN2003 do Arduino w następujący sposób:

PIN ULN2003 PIN Arduino
In1 Pin 8
In2 Pin 9
In3 Pin 10
IN4 Pin 11
VCC 5v
GND GND

Krok 3: Zainstaluj bibliotekę Stepper

Arduino IDE zawiera wbudowaną bibliotekę do sterowania silnikiem krokowym.

  1. Otwórz Arduino IDE.
  2. Idź do Naszkicować > Uwzględnij bibliotekę > Krok.

Krok 4: Prześlij kod

Oto podstawowy przykładowy kod do sterowania silnikiem krokowym:

#include <Stepper.h>

// Define the number of steps per revolution for the 28BYJ-48 motor
#define STEPS_PER_REV 2048

// Initialize the Stepper library on pins 8, 9, 10, and 11
Stepper stepper(STEPS_PER_REV, 8, 10, 9, 11);

void setup() {
  stepper.setSpeed(15); // Set motor speed (in RPM)
  Serial.begin(9600);
  Serial.println("28BYJ-48 Stepper Motor Test");
}

void loop() {
  Serial.println("Moving Forward");
  stepper.step(STEPS_PER_REV); // Move one full revolution forward
  delay(1000);

  Serial.println("Moving Backward");
  stepper.step(-STEPS_PER_REV); // Move one full revolution backward
  delay(1000);
}

Krok 5: Przetestuj konfigurację

  1. Podłącz Arduino do komputera za pomocą USB.
  2. Otwórz Arduino IDE i wybierz poprawne Tablica I Port pod Narzędzia menu.
  3. Prześlij kod do Arduino, klikając Wgrywać.
  4. Po przesłaniu kodu silnik krokowy powinien obracać jedną pełną rewolucję do przodu, a następnie wielokrotnie do tyłu.

Zaawansowana kontrola z przyspieszeniem

Aby uzyskać gładszą i dokładniejszą kontrolę, możesz użyć Accelstepper Biblioteka zamiast wbudowanej biblioteki Stepper. Oto przykład:

#include <AccelStepper.h>

// Define the motor interface type
#define HALFSTEP 8

// Initialize the AccelStepper library
AccelStepper stepper(HALFSTEP, 8, 10, 9, 11);

void setup() {
  stepper.setMaxSpeed(1000); // Set maximum speed
  stepper.setAcceleration(500); // Set acceleration
  stepper.setSpeed(200); // Set initial speed
}

void loop() {
  stepper.runSpeed(); // Continuous rotation
}

Rozwiązywanie problemów

  • Motor nie porusza się: Sprawdź wszystkie połączenia i upewnij się, że prawidłowe piny są zdefiniowane w kodzie.
  • Nieregularny ruch: Sprawdź, czy zasilanie silnika jest wystarczające, a kod pasuje do konfiguracji.
  • Niski moment obrotowy: 28BYJ-48 nie jest silnikiem wysokotorowym. Upewnij się, że nie jest przeciążony.

Zastosowania silnika krokowego 28Byj-48

  1. Suwaki aparatu
  2. Robotyczne ramiona
  3. Zautomatyzowane rolety
  4. Mechanizmy drukarki 3D

Wniosek

Z powodzeniem skonfigurowałeś i kontrolowałeś silnik krokowy 28ByJ-48 z sterownikiem ULN2003 i Arduino. Ten niedrogi i niezawodny silnik jest idealny do różnych projektów DIY. Eksperymentuj z różnymi prędkościami, krokami i metodami kontroli, aby Twoje projekty były bardziej dynamiczne!

Zostaw komentarz

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.