Stepper motor: ทำงานร่วมกับ Arduino

สเต็ปเปอร์มอเตอร์

มอเตอร์ไฟฟ้ากำลังเป็นที่ต้องการมากขึ้นในหมู่พวกเขาบางทีอาจเป็นมอเตอร์ที่ทำงานร่วมกับกระแสตรงที่โดดเด่นซึ่งเป็นที่นิยมมากที่สุดในโครงการของผู้ผลิตด้วย Arduino เนื่องจากมีความคล่องตัว ไฮไลต์ในหมู่พวกเขา มอเตอร์สเต็ป ซึ่งใช้สำหรับการใช้งานที่หลากหลายโดยเฉพาะอย่างยิ่งสำหรับหุ่นยนต์เช่นแอคชูเอเตอร์เป็นต้น

รถยนต์ไฟฟ้าหุ่นยนต์อิสระขนาดเล็กงานอุตสาหกรรมสำหรับระบบอัตโนมัติอุปกรณ์เคลื่อนไหวซ้ำ ๆ ฯลฯ เหตุผลที่เซอร์โวมอเตอร์และสเต็ปเปอร์มอเตอร์นั้นดีสำหรับการใช้งานเหล่านี้ก็คือพวกมันทำได้ เคลื่อนไหวช้าหรือเร็ว แต่เหนือการควบคุม. นอกจากนี้ไดรฟ์ยังทำงานต่อเนื่องสำหรับการใช้งานที่ต้องมีการหยุดและการสตาร์ทหลายครั้งด้วยความแม่นยำสูง

ประเภทของมอเตอร์ไฟฟ้า

ภายใน มอเตอร์ไฟฟ้า สามารถเน้นประเภทต่อไปนี้ได้:

  • มอเตอร์ DC หรือ DC: มอเตอร์กระแสตรงทำงานร่วมกับกระแสประเภทนี้ตามชื่อ สามารถใช้พลังงานได้ตั้งแต่ไม่กี่มิลลิวัตต์ไปจนถึงไม่กี่เมกะวัตต์ในรุ่นที่ทรงพลังที่สุดและมีขนาดใหญ่ซึ่งใช้สำหรับงานอุตสาหกรรมยานพาหนะลิฟต์สายพานลำเลียงพัดลม ฯลฯ ความเร็วในการหมุน (RPM) และแรงบิดที่ใช้สามารถควบคุมได้ตามอัตราป้อน
  • มอเตอร์ AC หรือ AC (โรเตอร์แบบอะซิงโครนัสและแบบมีแผล): พวกมันทำงานกับกระแสสลับโดยมีโรเตอร์ที่เฉพาะเจาะจงมากซึ่งทำงานได้เนื่องจากเฟสที่กระแสประเภทนี้ก่อให้เกิดการหมุนโดยใช้แรงผลักแม่เหล็กของแม่เหล็กไฟฟ้าในลักษณะเดียวกับที่ DC ทำ มีราคาถูกมากและสูงถึงหลายกิโลวัตต์ สามารถควบคุมความเร็วในการหมุนได้ แต่องค์ประกอบการควบคุมมีราคาแพงกว่าของ DC สิ่งเหล่านี้มักใช้สำหรับเครื่องใช้ในครัวเรือน
  • สเต็ปเปอร์มอเตอร์- หรือที่เรียกว่าสเต็ปเปอร์มีความคล้ายคลึงกับ DC ในหลาย ๆ ด้าน แต่มีความเร็วและพลังในการหมุนต่ำ สิ่งที่โดดเด่นคือการวางตำแหน่งของแกนนั่นคือความแม่นยำในการวางให้อยู่ในตำแหน่งเฉพาะ มุมการหมุนและความเร็วของพวกเขาสามารถควบคุมได้มากซึ่งเป็นเหตุผลว่าทำไมจึงใช้ในฟล็อปปี้ดิสก์ฮาร์ดไดรฟ์ (HDD) หุ่นยนต์กระบวนการอัตโนมัติ ฯลฯ
  • เสอร์ว็อโมเทอร์: อาจกล่าวได้ว่าเป็นวิวัฒนาการของสเต็ปเปอร์มอเตอร์ซึ่งทำงานด้วยกำลังและความเร็วขนาดเล็กที่สูงถึง 7000 รอบต่อนาทีในบางกรณี มอเตอร์นี้ประกอบด้วยกล่องลดเกียร์และวงจรควบคุม มีความแม่นยำในการระบุตำแหน่งเช่นเดียวกับสเต็ปเปอร์และมีความเสถียรมากในแง่ของแรงบิดที่ใช้ทำให้เหมาะสำหรับหุ่นยนต์และงานอุตสาหกรรมบางประเภท

สเต็ปเปอร์มอเตอร์และเซอร์โวมอเตอร์

โรเตอร์และสเตเตอร์

คุณรู้อยู่แล้วว่ามอเตอร์อิเล็กทรอนิกส์ทั้งสองประเภทนี้คืออะไร แต่ฉันอยากจะบอกอะไรบางอย่าง เพิ่มเติมเกี่ยวกับสเต็ปเปอร์. เทิร์นที่พวกเขาทำไม่ได้ทำอย่างต่อเนื่อง แต่ในขั้นตอนเล็ก ๆ ด้วยเหตุนี้ชื่อของพวกเขา โรเตอร์ (ส่วนที่หมุน) มีรูปร่างของล้อที่มีฟันในขณะที่สเตเตอร์ (ส่วนที่ไม่หมุน) ประกอบด้วยแม่เหล็กไฟฟ้าโพลาไรซ์แบบสอดแทรก ด้วยวิธีนี้เมื่อมีการ "เปิดใช้งาน" สิ่งที่อยู่ด้านข้างจะไม่ถูกเปิดใช้งานซึ่งจะดึงดูดฟันของโรเตอร์เข้าหามันทำให้สามารถเคลื่อนที่ได้อย่างแม่นยำ

drv8825
บทความที่เกี่ยวข้อง:
DRV8825: ไดรเวอร์สำหรับสเต็ปเปอร์มอเตอร์

ขึ้นอยู่กับ ฟันโรเตอร์มันจะเป็นไปได้ที่จะเลื่อนไปมากหรือน้อยในเทิร์น หากคุณมีฟันมากขึ้นจำเป็นต้องมีขั้นตอนมากขึ้นในการเลี้ยว แต่ขั้นตอนจะสั้นลงดังนั้นจึงเป็นมอเตอร์ที่แม่นยำกว่า หากคุณมีฟันไม่กี่ซี่ขั้นตอนต่างๆก็จะกระโดดได้ทันทีโดยไม่ต้องใช้ความแม่นยำมากนัก ดังนั้นขั้นตอนที่สเต็ปเปอร์มอเตอร์จะต้องดำเนินการเพื่อเลี้ยวจะขึ้นอยู่กับขั้นตอนเชิงมุม

ขั้นตอนเหล่านั้น เชิงมุมเป็นมาตรฐานแม้ว่าคุณจะพบมอเตอร์บางตัวที่มีระยะห่างที่ไม่ได้มาตรฐาน โดยปกติมุมจะเป็น1.8º, 5.625º, 7.5º, 11.25º, 18º, 45ºและ90º ในการคำนวณจำนวนขั้นตอนที่สเต็ปเปอร์มอเตอร์ต้องหมุนครบรอบ (360 turn) คุณต้องหาร ตัวอย่างเช่นหากคุณมีมอเตอร์สเต็ป45ºคุณจะมี 8 ขั้นตอน (360/45 = 8)

หมุนด้วยอคติ (เฟส)

ภายในมอเตอร์เหล่านี้คุณมี unipolar (ที่นิยมมากที่สุด) พร้อมด้วยสายเคเบิล 5 หรือ 6 สายหรือสองขั้วพร้อมสายเคเบิล 4 สาย ตามนี้จะดำเนินการอย่างใดอย่างหนึ่ง ลำดับโพลาไรซ์ ผ่านกระแสไฟฟ้าผ่านขดลวด:

  • โพลาไรซ์สำหรับ ไบโพลาร์:
โซ เทอร์มิ อาคารผู้โดยสาร B เทอร์มินอล C เทอร์มินอล D
1 +V -V +V -V
2 +V -V -V +V
3 -V +V -V +V
4 -V +V +V -V
  • สำหรับ unipolar:
โซ ขดลวดก คอยล์ B ขดลวดค ขดลวด D
1 +V +V 0 0
2 0 +V +V 0
3 0 0 +V +V
4 +V 0 0 +V

การดำเนินการในทั้งสองกรณีจะเหมือนกันโดยวางขั้วของขดลวดเพื่อดึงดูดโรเตอร์ไปยังตำแหน่งที่คุณต้องการให้แกนอยู่ในตำแหน่ง ถ้าคุณต้องการ เก็บไว้ในตำแหน่งเดียวคุณต้องรักษาโพลาไรซ์ สำหรับตำแหน่งนั้นและ voila และถ้าคุณต้องการให้มันก้าวไปข้างหน้าคุณก็แบ่งขั้วของแม่เหล็กตัวต่อไปและมันจะก้าวไปอีกขั้นและอื่น ๆ ...

หากคุณใช้ เซอร์โวมอเตอร์คุณรู้อยู่แล้วว่ามันเป็นสเต็ปเปอร์มอเตอร์ดังนั้นทุกสิ่งที่กล่าวมาก็ใช้ได้ผลเช่นกัน สิ่งเดียวที่รวมถึงเกียร์ทดรอบเพื่อให้ได้จำนวนก้าวที่มากขึ้นต่อเทิร์นและทำให้มีความแม่นยำสูงขึ้นมาก ตัวอย่างเช่นคุณสามารถค้นหามอเตอร์ที่มี 8 สเต็ปต่อเทิร์นหากมีกระปุกเกียร์ 1:64 เนื่องจากหมายความว่าแต่ละขั้นตอนของทั้งแปดนั้นจะแบ่งย่อยออกเป็น 64 ขั้นตอนที่เล็กกว่าซึ่งจะให้ได้สูงสุด 512 ก้าวต่อเทิร์น นั่นคือแต่ละขั้นตอนจะมีค่าประมาณ0.7º

l298n
บทความที่เกี่ยวข้อง:
L298N: โมดูลควบคุมมอเตอร์สำหรับ Arduino

นอกจากนี้คุณควรใช้บางส่วน ตัวควบคุม ซึ่งใช้ควบคุมโพลาไรซ์ความเร็ว ฯลฯ ด้วยตัวอย่างเช่น H-Bridge บางรุ่น ได้แก่ L293, ULN2003, ULQ2003 เป็นต้น

Dónde comprar

คุณ ซื้อได้จากเว็บไซต์ออนไลน์ต่างๆ หรือในร้านขายเครื่องใช้ไฟฟ้าเฉพาะทาง นอกจากนี้หากคุณเป็นมือใหม่คุณสามารถใช้ชุดอุปกรณ์ที่มีทุกสิ่งที่คุณต้องการและแม้แต่จาน Arduino UNO และคู่มือเพื่อเริ่มทดลองและสร้างโครงการของคุณ ในชุดอุปกรณ์เหล่านี้มีทุกสิ่งที่คุณต้องการไม่ว่าจะเป็นตัวมอเตอร์ตัวควบคุมบอร์ดเขียงหั่นขนม ฯลฯ

ตัวอย่าง Stepper Motor กับ Arduino

Arduino พร้อมมอเตอร์สเต็ปเปอร์และคอนโทรลเลอร์

สุดท้ายให้แสดงไฟล์ ตัวอย่างที่ใช้ได้จริงกับ Arduinoโดยใช้คอนโทรลเลอร์ ULN2003 และมอเตอร์สตาร์ท 28BYJ-48 มันง่ายมาก แต่จะเพียงพอสำหรับคุณที่จะเริ่มทำความคุ้นเคยกับการดำเนินการเพื่อที่คุณจะได้เริ่มทำการทดสอบและดูว่ามันทำงานอย่างไร ...

ตามที่เห็นใน แผนผังสายไฟขดลวดมอเตอร์ A (IN1), B (IN2), C (IN3) และ D (IN4) ถูกกำหนดให้กับการเชื่อมต่อ 8, 9, 10 และ 11 ตามลำดับบนบอร์ด Arduino ในทางกลับกันต้องป้อนไดรเวอร์หรือบอร์ดคอนโทรลเลอร์บนพิน 5-12V (ถึง GND และ 5V ของ Arduino) ด้วยแรงดันไฟฟ้าที่เหมาะสมเพื่อให้มอเตอร์ป้อนเชื่อมต่อกับขั้วต่อพลาสติกสีขาวที่มีไดรเวอร์นี้หรือ ตัวควบคุม

นี้ เครื่องยนต์ 28BYJ-48 เป็นสเต็ปเปอร์มอเตอร์ชนิด unipolar ที่มีขดลวดสี่ขด ดังนั้นเพื่อให้คุณทราบถึงวิธีการทำงานคุณสามารถส่งค่า HIGH (1) หรือ LOW (0) ไปยังขดลวดจากบอร์ด Arduino ได้ดังต่อไปนี้สำหรับขั้นตอน:

โซ ขดลวดก คอยล์ B ขดลวดค ขดลวด D
1 สูง สูง LOW LOW
2 LOW สูง สูง LOW
3 LOW LOW สูง สูง
4 สูง LOW LOW สูง

ว่า ร่างหรือรหัสที่จำเป็นในการเขียนโปรแกรมการเคลื่อนไหวของคุณตามที่จะใช้ดังต่อไปนี้ Arduino IDE (แก้ไขและทดลองเพื่อทดสอบว่าการเคลื่อนไหวเปลี่ยนแปลงอย่างไร):

// Definir pines conectados a las bobinas del driver
#define IN1  8
#define IN2  9
#define IN3  10
#define IN4  11

// Secuencia de pasos a par máximo del motor. Realmente es una matriz que representa la tabla del unipolar que he mostrado antes
int paso [4][4] =
{
  {1, 1, 0, 0},
  {0, 1, 1, 0},
  {0, 0, 1, 1},
  {1, 0, 0, 1}
};

void setup()
{
  // Todos los pines se configuran como salida, ya que el motor no enviará señal a Arduino
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
}

// Bucle para hacerlo girar
void loop()
{ 
    for (int i = 0; i < 4; i++)
    {
      digitalWrite(IN1, paso[i][0]);
      digitalWrite(IN2, paso[i][1]);
      digitalWrite(IN3, paso[i][2]);
      digitalWrite(IN4, paso[i][3]);
      delay(10);
    }
}


เป็นคนแรกที่จะแสดงความคิดเห็น

แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา