Hur man använder 28byj-48 stegmotor med ULN2003-förare och Arduino

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

28BYJ-48 Stepper Motor är en populär, prisvärd stegmotor som ofta används i DIY-elektronikprojekt. I kombination med ULN2003 -drivrutinen är det ett utmärkt val för applikationer som kräver exakt rörelse, såsom robotik, kameravisslingar och hemmautomation. Denna handledning kommer att vägleda dig genom att ställa in och kontrollera 28byj-48 stegmotor med Arduino.

Vad du behöver

  1. 28byj-48 stegmotor
  2. ULN2003 drivrutin
  3. Arduino Board (t.ex. Uno, Mega, Nano)
  4. Bulttrådar
  5. Breadboard (valfritt)
  6. En dator med Arduino Ide installerad

Steg 1: Förstå komponenterna

28byj-48 stegmotor

  • 28byj-48 är en 4-fas, 5-tråds stegmotor med ett växelreduktionsförhållande på cirka 1:64, vilket gör det exakt och pålitligt.

ULN2003 drivrutin

  • ULN2003 är en drivrutinskort designad specifikt för 28BYJ-48-motorn. Den inkluderar lysdioder för att indikera motorns aktiva fas och förenklar anslutningarna till Arduino.

Steg 2: Kopplar ULN2003 till Arduino

  1. Anslut 28BYJ-48-motorn till ULN2003-drivrutinskortet. Motorns kontakt passar direkt in i rubriken märkt "i" på brädet.

  2. Använd jumpertrådar för att ansluta ULN2003 -drivrutinskortet till Arduino enligt följande:

Uln2003 -stift Arduinosnål
In1 Stift 8
In2 Stift 9
I3 Stift 10
In4 Stift 11
Vcc 5V
Gard Gard

Steg 3: Installera stegbiblioteket

Arduino IDE innehåller ett inbyggt bibliotek för stegmotorstyrning.

  1. Öppna Arduino IDE.
  2. Gå till Skiss > Inkludera bibliotek > Stege.

Steg 4: Ladda upp koden

Här är en grundläggande exempelkod för att styra stegmotorn:

#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);
}

Steg 5: Testa installationen

  1. Anslut Arduino till din dator via USB.
  2. Öppna Arduino IDE och välj rätt Styrelse och Hamn under Verktyg meny.
  3. Ladda upp koden till Arduino genom att klicka Ladda upp.
  4. När koden har laddats upp bör stegmotorn rotera en full revolution framåt och sedan bakåt upprepade gånger.

Avancerad kontroll med acceleration

För mjukare och mer exakt kontroll kan du använda Accelstepper Bibliotek istället för det inbyggda stegbiblioteket. Här är ett exempel:

#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
}

Felsökning

  • Motor rör sig inte: Kontrollera alla anslutningar och se till att rätt stift definieras i koden.
  • Eratisk rörelse: Kontrollera att motorns strömförsörjning är tillräcklig och koden matchar din installation.
  • Lågt vridmoment: 28byj-48 är inte en hög vridmoment. Se till att det inte är överbelastat.

Applikationer av 28byj-48 stegmotor

  1. Kamerasreglage
  2. Robotarmar
  3. Automatiserad persienner
  4. 3D -skrivarmekanismer

Slutsats

Du har framgångsrikt konfigurerat och kontrollerat 28BYJ-48 stegmotorn med ULN2003-drivrutinen och Arduino. Denna prisvärda och pålitliga motor är perfekt för olika DIY -projekt. Experimentera med olika hastigheter, steg och kontrollmetoder för att göra dina projekt mer dynamiska!

Lämna en kommentar

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.