کوډ ولټوئ

د کارولو L298N موټور ډرایور د ۴-تار سټیپر موټور د کنټرول لپاره

د کارولو L298N موټور ډرایور د ۴-تار سټیپر موټور د کنټرول لپاره

په دې ټیوټوریل کې به موږ وپلټو چې څنګه د L298N موټور ډرایور په کارولو سره د آردوینو سره یو ۴-وایر سټیپر موټور کنټرول کړو. L298N یو څو اړخیز دوه ګونی H-برج ډرایور دی چې موږ ته اجازه راکوي د سټیپر موټورونو لوري او سرعت په مؤثره توګه کنټرول کړو. د دې لارښود په پای کې به تاسو یو فعال ترتیب ولرئ چې کولی شي سټیپر موټور په دواړو لوریو کې وګرځوي او د پوټینشیومیټر په کارولو سره یې سرعت کنټرول کړي.

L298N motor driver (yellow connector)

د دې پروسې په ښه پوهیدو لپاره، زه وړاندیز کوم چې اړونده ویډیو وګورئ، کوم چې د تارونو او کوډ کولو بصري بیلګه وړاندې کوي (په ویډیو کې په ۰۱:۳۰ کې).

هارډویر تشریح شوی

د L298N موټور ډرایور د موټورونو کنټرول لپاره ډیزاین شوی چې تاسو ته اجازه درکوي دوی په دواړو مخکینۍ او شاته لوریو کې پرمخ بوځي. دا د H-برج ترتیب کاروي، چې معنی یې دا ده چې دا کولی شي د موټور ته پلي شوي ولټاژ قطبي بدله کړي، په دې توګه د هغې لوري بدلوي. دا ډرایور کولی شي تر ۴۶V پورې د عرضې ولټاژ او د هر چینل ۲A دوامداره جریان اداره کړي، چې دا د ډیرو غوښتنلیکونو لپاره مناسب کوي.

زموږ په ترتیب کې، موږ به د سټیپر موټور اداره کولو لپاره څلور کنټرول پنونه وکاروو. کلیدي پنونه ENA او ENB دي، کوم چې باید د ډرایور فعالولو لپاره HIGH (5V) ته وټاکل شي. پنونه IN1، IN2، IN3، او IN4 به د موټور د سمیندلو حالتونه کنټرول کړي، چې دا ته اجازه ورکوي چې په مطلوب لوري کې ګام پورته کړي.

ډیټاشیټ تفصیلات

جوړونکیSTMicroelectronics
د برخې شمېرهL298N
منطق/IO ولټاژ5 V
د عرضې ولټاژ5–46 V (VS)
د تولید جریان (په هر چینل)2 A اعظمي/چینل (دوامداره)
د لوړ جریان (په هر چینل)3 A اعظمي
د PWM فریکونسي لارښود1 kHz تر 20 kHz
د داخلې منطق حدونه0.8 V (ټیټ)، 2.0 V (لوړ)
د ولټاژ کمښت / RDS(on) / سنتریشن1.5 V اعظمي
حرارتي حدونه150 °C اعظمي
بستهDIP-15
یادښتونه / ډولونهپه فلیټ نسخو کې هم شتون لري (L298P)

  • ډاډ ترلاسه کړئ چې ENA او ENB د سم عملیات لپاره 5V سره وصل دي.
  • د لوړ جریان غوښتنلیکونو لپاره د تودوخې د مخنیوي لپاره کافي تودوخې سنک وکاروئ.
  • د آردوینو او موټور ډرایور ترمنځ ګډه ځمکه وساتئ.
  • د موټور یا ډرایور د زیان رسولو څخه مخنیوي لپاره د تارونو قطبي ته پام وکړئ.
  • د شور فلټر کولو لپاره د بریښنا پنونو ته نږدې د ډیکپلینګ کاپاسیټرونه پلي کړئ.
  • د غوره فعالیت لپاره د موټور مشخصاتو پراساس د PWM فریکونسي تنظیم کړئ.

د تارونو لارښوونې

L298N motor driver (yellow connector)
L298N motor driver (yellow connector)

د L298N موټور ډرایور د آردوینو او سټیپر موټور سره د تار کولو لپاره، د بریښنا رسولو سره وصل کولو سره پیل وکړئ. د L298N په VIN پن کې خپل 12V بریښنا سرچینې سره وصل کړئ. بیا، د L298N په GND پن کې د خپل بریښنا رسولو ځمکې او همدارنګه د آردوینو ځمکې سره وصل کړئ.

اوس، د کنټرول پنونو لپاره، ENA د آردوینو په پن 2 او ENB په پن 3 سره وصل کړئ. بیا، IN1 په پن 8، IN2 په پن 9، IN3 په پن 10، او IN4 په پن 11 سره وصل کړئ. په پای کې، د سټیپر موټور تارونه د L298N د تولید ترمینلونو سره وصل کړئ. ډاډ ترلاسه کړئ چې د موټور دوه جوړه تارونه په سمه توګه د تولیداتو سره وصل دي.

د کوډ بیلګې او واک ترو

په کوډ کې، موږ لومړی د Stepper.h کتابتون شامل کوو ترڅو د سټیپر موټور کنټرول ساده کړو. موږ د هر انقلاب د ګامونو ټول شمېر تعریف کوو، کوم چې د دقیق حرکت لپاره خورا مهم دی. په کوډ کې کلیدي پیژندونکي شامل دي stepsPerRevolution، کوم چې د بشپړ څرخ لپاره د اړتیا وړ ګامونو شمېر ټاکي، او myStepper، کوم چې د مشخصو پنونو سره د سټیپر اعتراض پیل کوي.

const int stepsPerRevolution = 200;  // دا د هر انقلاب د ګامونو شمېر سره سم بدل کړئ
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); // د سټیپر کتابتون پیل کړئ

دا اقتباس د سټیپر موټور د مناسب پنونو سره پیل کوي. په setup() فنکشن کې، موږ د موټور سرعت ټاکو او د پنونو 2 او 3 په HIGH ټاکلو سره ډرایور فعال کوو.

void setup() {
  myStepper.setSpeed(300); // سرعت په 60 rpm کې وټاکئ
  pinMode(2,OUTPUT); // د EN1 لپاره
  digitalWrite(2,HIGH); // EN1 فعال کړئ
  pinMode(3,OUTPUT); // د EN2 لپاره
  digitalWrite(3,HIGH); // EN2 فعال کړئ
}

په loop() فنکشن کې، موټور په دواړو ساعت لوري او د ساعت مخالف لوري کې یو انقلاب ګام وهي او په منځ کې ځنډ لري. دا تاسو ته اجازه درکوي د موټور عملیات وګورئ.

void loop() {
  myStepper.step(stepsPerRevolution); // په یو لوري کې یو انقلاب ګام ووهئ
  delay(500); // نیم ثانیه انتظار وکړئ
  myStepper.step(-stepsPerRevolution); // په بل لوري کې یو انقلاب ګام ووهئ
  delay(500); // نیم ثانیه انتظار وکړئ
}

دا اقتباس ښیې چې څنګه موټور په دواړو لوریو کې د څرخولو لپاره کنټرول کړو. بشپړ کوډ د مقالې لاندې ستاسو د حوالې لپاره بار کیږي.

ښودنه / څه تمه وکړو

یوځل چې هر څه په سمه توګه وصل شي او کوډ اپلوډ شي، تاسو باید وګورئ چې سټیپر موټور په یوه لوري کې یو بشپړ ګرځېدل کوي، او بیا په مخالف لوري کې یو بشپړ ګرځېدل کوي. سربېره پردې، که تاسو د سرعت کنټرول لپاره پوټینشیومیټر شامل کړئ، د هغه تنظیمول به د موټور د ګرځېدو سرعت بدل کړي. د موټور د جریان په اړه محتاط اوسئ؛ لکه څنګه چې تاسو سرعت زیاتوئ، موټور ممکن ډیر جریان واخلي، کوم چې که په سمه توګه اداره نشي نو د ډیر تودوخې لامل کېدای شي (په ویډیو کې په 09:45 کې).

که موټور د تمې سره سم ونه ګرځي، تارونه وګورئ ترڅو ډاډ ترلاسه کړئ چې ټول اړیکې خوندي او په سمه توګه لارښوونه شوې دي. همدارنګه، ډاډ ترلاسه کړئ چې د بریښنا رسولو ولټاژ ستاسو د سټیپر موټور لپاره مناسب دی.

د ویډیو وخت نښې

  • 00:00 - پېژندنه
  • 01:30 - د تارونو تشریح
  • 05:00 - د کوډ کتنه
  • 09:45 - د موټور کنټرول ننداره

انځورونه

L298N motor driver (yellow connector)
L298N motor driver (yellow connector)
L298N motor driver (yellow connector)
L298N motor driver (yellow connector)
L298N motor driver (yellow connector)
L298N motor driver (yellow connector)
Nema17_stpper_motor-1
Nema17_stpper_motor-1
Nema17_stpper_motor-2
Nema17_stpper_motor-2
94-Code for One Revolution
ژبه: C++
/*
 Stepper Motor Control - one revolution

 This program drives a unipolar or bipolar stepper motor.
 The motor is attached to digital pins 8 - 11 of the Arduino.

 The motor should revolve one revolution in one direction, then
 one revolution in the other direction.


 Created 11 Mar. 2007
 Modified 30 Nov. 2009
 by Tom Igoe

 Modified by Ahmad S. for Robojax.com
 on May 19, 2018 at 19:31, in Ajax, Ontario, Canada

 */

#include <Stepper.h>

const int stepsPerRevolution = 200;  // change this to fit the number of steps per revolution
// for your motor

// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

void setup() {
  // set the speed at 60 rpm:
  myStepper.setSpeed(300);
  // initialize the serial port:
  Serial.begin(9600);
  // L298N for Robojax.com 
  pinMode(2,OUTPUT);// for EN1
  digitalWrite(2,HIGH);// enable EN1
  pinMode(3,OUTPUT);// for EN1
  digitalWrite(3,HIGH); // enable EN2
}

void loop() {
  // step one revolution  in one direction:
  Serial.println("clockwise");
  myStepper.step(stepsPerRevolution);
  delay(500);

// L298N for Robojax.com 
  // step one revolution in the other direction:
  Serial.println("counterclockwise");
  myStepper.step(-stepsPerRevolution);
  delay(500);
}
95-Code for rotating a stepper motor one step at a time
ژبه: C++
/*
 Stepper Motor Control - one step at a time

 This program drives a unipolar or bipolar stepper motor.
 The motor is attached to digital pins 8 - 11 of the Arduino.

 The motor will step one step at a time, very slowly. You can use this to
 test that you've got the four wires of your stepper wired to the correct
 pins. If wired correctly, all steps should be in the same direction.

 Use this also to count the number of steps per revolution of your motor,
 if you don't know it. Then plug that number into the oneRevolution
 example to see if you got it right.

 Created 30 Nov. 2009
 by Tom Igoe

 Modified by Ahmad S. for Robojax.com
 on May 19, 2018 at 19:31, in Ajax, Ontario, Canada
 */

#include <Stepper.h>

const int stepsPerRevolution = 200;  // change this to fit the number of steps per revolution
// for your motor

// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

int stepCount = 0;         // number of steps the motor has taken

void setup() {
  // initialize the serial port:
  Serial.begin(9600);

  // L298N for Robojax.com 
  pinMode(2,OUTPUT);// for EN1
  digitalWrite(2,HIGH);// enable EN1
  pinMode(3,OUTPUT);// for EN1
  digitalWrite(3,HIGH); // enable EN2
}  


void loop() {
  // step one step:
    // L298N for Robojax.com 
  myStepper.step(-1);
  Serial.print("steps:");
  Serial.println(stepCount);
  stepCount++;
  delay(200);
}

هغه شیان چې تاسو ورته اړتیا لرئ

سرچینې او حوالې

تر اوسه هیڅ سرچینې نشته.

فایلونه📁

ډیټاشیټ (pdf)