สเต็ปเปอร์มอเตอร์ 28BYJ-48: ทุกสิ่งที่คุณจำเป็นต้องรู้

สเต็ปเปอร์มอเตอร์ 28byj-48

El 28BYJ-48 เป็นสเต็ปเปอร์มอเตอร์แบบขั้วเดียว ต้นทุนต่ำและมีความแม่นยำสูง เหมาะสำหรับโครงการอิเล็กทรอนิกส์ สำหรับเครื่องพิมพ์ 3D เครื่องจักร CNC และหุ่นยนต์ ขนาดกะทัดรัด ใช้พลังงานต่ำ และใช้งานง่าย ทำให้เป็นตัวเลือกยอดนิยมสำหรับมือสมัครเล่นและมืออาชีพด้านอิเล็กทรอนิกส์

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

สเต็ปเปอร์มอเตอร์ 28BYJ-48 คืออะไร?

มอเตอร์ไฟฟ้าในร่ม: สเตเตอร์โรเตอร์

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

ภายในสเต็ปเปอร์มอเตอร์เรามีสองประเภท:

  • Unipolar- มีคอยล์ชุดเดียวและต้องใช้ตัวควบคุมพิเศษเพื่อย้อนกระแสและทำให้มอเตอร์หมุนได้ทั้งสองทิศทาง
  • ไบโพลาร์- มีคอยล์อิสระสองชุด ทำให้หมุนได้ทั้งสองทิศทางโดยไม่ต้องใช้ตัวควบคุมพิเศษ

ในกรณีของ 28BYJ-28 เป็นแบบขั้วเดียว ดังที่ได้กล่าวไปแล้ว และภายในกลุ่มนี้มีลักษณะเด่นดังนี้ especificaciones:

  • สเต็ปเปอร์แบบขั้วเดียว: ควบคุมง่ายด้วยสายเคเบิลเพียง 4 เส้น
  • ตัวลดแบบรวม: ให้ความแม่นยำสูง (0.088° ต่อขั้น) และแรงบิด (3 N·cm)
  • การบริโภคต่ำ: 83 mA (รุ่น 5V) หรือ 32 mA (รุ่น 12V)
  • การให้อาหาร: 5V หรือ 12V (ขึ้นอยู่กับรุ่น)
  • ราคาประหยัด: เริ่มต้นที่ 1.2 ยูโรต่อหน่วย หรือมากกว่านั้นเล็กน้อยหากมีโมดูล ULN2003

เป็น แอพพลิเคชั่นที่เป็นไปได้ฉันได้กล่าวถึงบางส่วนไปแล้วก่อนหน้านี้ แต่ที่นี่ฉันให้แนวคิดสำหรับโครงการของคุณอีกครั้ง:

  • การควบคุมวาล์วไฮดรอลิกและนิวแมติก
  • หุ่นยนต์แบบประกบและแขนหุ่นยนต์
  • การวางตำแหน่งเซ็นเซอร์
  • โต๊ะหมุนสำหรับสแกนเนอร์
  • เครื่องพิมพ์ 3 มิติ
  • เครื่องซีเอ็นซี

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

ประเภทของลำดับและเฟสการควบคุม

ที่นั่น ลำดับการควบคุมต่างๆ สำหรับ 28BYJ-48ที่พบบ่อยที่สุดคือ:

  • ลำดับคลื่นเต็ม: เปิดใช้งานคอยล์ทั้งหมดพร้อมกัน
  • ลำดับครึ่งขั้นตอน: เปิดใช้งานคอยล์ 2 คอยล์ที่อยู่ติดกันพร้อมกัน
  • ลำดับขั้นตอนด้วยกล้องจุลทรรศน์: เปิดใช้งานครั้งละหนึ่งคอยล์

มาดูกัน ขั้นตอน ในรายละเอียด:

  • ลำดับ 1 เฟส: ในลำดับ 1 เฟส เราจะเปิดคอยล์ทีละตัว เมื่อนำลำดับการจุดระเบิดนี้มาวางบนโต๊ะ จะต้องสร้างสิ่งต่อไปนี้ใน pinout ของเครื่องยนต์:
โซ A B อา' บี'
1 ON ปิด ปิด ปิด
2 ปิด ON ปิด ปิด
3 ปิด ปิด ON ปิด
4 ปิด ปิด ปิด ON
  • ลำดับ 2 เฟส: เราเปิดคอยล์สหสัมพันธ์สองตัวในแต่ละเฟส ดังนั้นสนามแม่เหล็กที่สร้างขึ้นจึงมีมากขึ้น (มากกว่า 41%) ดังนั้นมอเตอร์จึงมีแรงบิดมากขึ้น นั่นคือเราได้รับกำลังมากขึ้น ในแง่ลบ เราใช้พลังงานเป็นสองเท่า ในส่วนของตารางจะเป็นดังนี้:
โซ A B อา' บี'
1 ON ON ปิด ปิด
2 ปิด ON ON ปิด
3 ปิด ปิด ON ON
4 ON ปิด ปิด ON
  • ลำดับครึ่งขั้นตอน: นี่เป็นอีกขั้นตอนหนึ่งที่เรากำลังจะไปดูคุณจะได้สัมผัสกับสิ่งที่คุณสนใจมากที่สุด ที่นี่เราสลับกันหนึ่งและสองคอยล์เพื่อให้ได้ความแม่นยำเพียงครึ่งก้าว ใช้ในการใช้งานที่ต้องการความแม่นยำสูงสุด แม้ว่าอาจเกิดปัญหาเมื่อการใช้งานอยู่ที่ขีดจำกัดแรงบิดก็ตาม การแสดงลำดับในรูปแบบตารางส่งผลให้:
ครึ่งก้าว A B อา' บี'
1 ON ปิด ปิด ปิด
2 ON ON ปิด ปิด
3 ปิด ON ปิด ปิด
4 ปิด ON ON ปิด
5 ปิด ปิด ON ปิด
6 ปิด ปิด ON ON
7 ปิด ปิด ปิด ON
8 ON ปิด ปิด ON

28BYJ-28 พร้อม Arduino

28byj-48 พร้อม Arduino

สิ่งแรกคือการเชื่อมต่ออย่างถูกต้อง โมดูลและมอเตอร์ 28byj-48 ไปยังบอร์ด Arduino ของเรา ในการดำเนินการนี้ คุณเพียงแค่ต้องทำการเชื่อมต่อต่อไปนี้:

  • พิน - จาก ULN2003 ถึง GND ของ Arduino
  • Pin + ของ ULN2003 เป็น Vcc (5v หรือในกรณีอื่น ๆ หากเป็นมอเตอร์ 12v จะต้องใช้แหล่งจ่ายไฟที่มีแรงดันไฟฟ้านั้น) จาก Arduino
  • IN1, IN2, IN3 และ IN4 ของ ULN2003 ไปยังอินพุตดิจิตอล D8, D9, D10 และ D11 ของ Arduino
  • มอเตอร์ 28byj-48 เพียงเชื่อมต่อเข้ากับพอร์ตบนโมดูล ULN2003

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

//Definir los pines
const int motorPin1 = 8;    // 28BYJ48 In1
const int motorPin2 = 9;    // 28BYJ48 In2
const int motorPin3 = 10;   // 28BYJ48 In3
const int motorPin4 = 11;   // 28BYJ48 In4
                   
//Definición de variables
int motorSpeed = 1200;   //Velocidad del motor
int stepCounter = 0;     //Contador de pasos
int stepsPerRev = 4076;  //Pasos para un giro completo

//Tablas de secuencia (descomentar la que necesites)
//Secuencia 1-fase
//const int numSteps = 4;
//const int stepsLookup[4] = { B1000, B0100, B0010, B0001 };

//Secuencia 2-fases
//const int numSteps = 4;
//const int stepsLookup[4] = { B1100, B0110, B0011, B1001 };

//Secuencia media fase
//const int numSteps = 8;
//const int stepsLookup[8] = { B1000, B1100, B0100, B0110, B0010, B0011, B0001, B1001 };

void setup()
{
  //Declarar los pines usados como salida
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
}

void loop()
{
  for (int i = 0; i < stepsPerRev * 2; i++)
  {
    clockwise();
    delayMicroseconds(motorSpeed);
  }
  for (int i = 0; i < stepsPerRev * 2; i++)
  {
    anticlockwise();
    delayMicroseconds(motorSpeed);
  }
  delay(1000);
}

void clockwise()
{
  stepCounter++;
  if (stepCounter >= numSteps) stepCounter = 0;
  setOutput(stepCounter);
}

void anticlockwise()
{
  stepCounter--;
  if (stepCounter < 0) stepCounter = numSteps - 1;
  setOutput(stepCounter);
}

void setOutput(int step)
{
  digitalWrite(motorPin1, bitRead(stepsLookup[step], 0));
  digitalWrite(motorPin2, bitRead(stepsLookup[step], 1));
  digitalWrite(motorPin3, bitRead(stepsLookup[step], 2));
  digitalWrite(motorPin4, bitRead(stepsLookup[step], 3));
}


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

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

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

*

*

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