Хичээл 31 Stepper motor (Алхамт мотор)

Энэхүү хичээлээр бид stepper motor гэж юу болох түүнийг хэрхэн программчилах талаар судална.

Хэрэглэгдэхүүн:

  1. Ардиуно 1ш
  2. Туршилтын хавтан 1ш
  3. ULN2003 stepper motor driver 1ш
  4. Stepper motor 1ш
  5. 9V 1A adapter 1ш
  6. Тэжээлийн блок модуль 1ш
  7. F-М утас 6ш
  8. М-М утас 1ш

Stepper motor гэж юу вэ?

Stepper мотор буюу алхамт мотор гэж нэрлэгддэг шаталсан мотор нь бүрэн эргэлтийг хэд хэдэн тэнцүү алхамд хуваадаг сойзгүй тогтмол гүйдлийн цахилгаан мотор юм. Үүнийг илүү ойлгомжтой тайлбарлавал нэг бүтэн эргэх хөдөлгөөнийг хэд хэдэн тэнцүү алхамуудад хуваан алхам алхамаар эргэх боломжийг олгодог мотор гэж хэлж болох юм. Амьдал дээр маш нарын хөдөлгөөнүүдийг хийх шаардлагтай төхөөрөмжүүд олон байдаг бөгөөд үүнийг алхамт мотор ашиглан хийх нь түгээмэл байдаг.

Stepper motor

Алхамт моторын хамгийн том давуу тал бол маш нарын хөдөлгөөнүүдийг ямарч асуудгүйгээр хийж чаддагт байдаг. Үүнийг робот гар болон 3D хэвлэгч машин дээр өргөнөөр ашигладаг.

Robotic Automation For Industrial Processes GIF | Gfycat
Робот гар
Creality's 3DPrintMill CR-30 Printer has arrived on Kickstarter | OC3D News
3D printer

ULN2003 алхамт моторын драйвер

ULN2003 нь алхамт моторыг удирдахад зориулагдсан драйвер юм. Алхамт мотор нь бусад моторуудтай адил цахилгаан гүйдэл их зарцуулдаг бөгөөд үүнийг шууд микроконтроллероор удирдахад олон асуудал гарах ба драйвер нь моторын нэмэлт тэжээлийг холбох боломжийг олгодогоос гадна өөр олон давуу талуудыг бий болгодог.

Stepper motor driver module

Зарчмын схем

Схем зураг
Зарчмын схем
Зарчмын схем

Программ

Программын гол зорилго нь алхамт моторын чиглэл болон алхамыг тоог тохируулан түүнийг зөв эргүүлэхэд оршино. Бидэнд <Stepper>сан үүнийг хийхэд тусална. Санг хэрхэн суулгах талаар бид хамгийн эхний хичээл дээр үзсэн. Жишээ болгон цагийн зүүний эсрэг болон цагийн зүүний дагуу тус тус 200 алхам эргэдэг кодыг орууллаа.


#include <Stepper.h>

const int stepsPerRevolution = 200;  
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

void setup() {
  myStepper.setSpeed(60);
  Serial.begin(9600);
}

void loop() {
  Serial.println("clockwise");
  myStepper.step(stepsPerRevolution);
  delay(500);

  Serial.println("counterclockwise");
  myStepper.step(-stepsPerRevolution);
  delay(500);
}
Бодит зураг