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

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

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

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

28BYJ-48 คุณสมบัติ

28BYJ-48

มอเตอร์ 28BYJ-498 เป็นสเต็ปมอเตอร์ที่มีลักษณะดังต่อไปนี้:

  • tipo: stepper motor หรือ unipolar stepper
  • ขั้นตอน: 4 (เต็มขั้นตอน) เนื่องจากมีขดลวด 4 ขดอยู่ภายใน
  • ความต้านทาน: 50 Ω.
  • แรงบิดของเครื่องยนต์: 34 N / m นั่นคือถ้าส่งต่อนิวตันต่อเมตรไปยัง Kg มันจะเป็นแรงที่เทียบเท่ากับการวางประมาณ 0.34 Kg ต่อ cm บนแกนของมัน เพียงพอที่จะยกด้วยรอกเพียงหนึ่งในสี่ของกิโล
  • การบริโภค: 55mA
  • ขั้นตอนต่อรอบ: 8 ชนิดครึ่งก้าว (ละ45º)
  • กระปุกเกียร์แบบบูรณาการ: ใช่ 1/64 ดังนั้นจึงแบ่งแต่ละขั้นตอนออกเป็น 64 ขั้นตอนที่เล็กลงเพื่อความแม่นยำที่มากขึ้นดังนั้นจึงถึง 512 ขั้นละ0.7º หรือจะมองว่าเป็น 256 ก้าวต่อรอบ (เต็มสเต็ป)

ขั้นตอนเต็มหรือครึ่งขั้นหรือเต็มและครึ่งขั้นเป็นโหมดที่คุณสามารถทำงานได้ ถ้าคุณจำได้ในบทความเกี่ยวกับสเต็ปเปอร์มอเตอร์ฉันบอกว่าตัวอย่างโค้ดสำหรับ Arduino IDE ทำงานที่แรงบิดเต็มที่

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

ไดรเวอร์โมดูล ULN2003

สำหรับตัวควบคุมมอเตอร์หรือไดรเวอร์ที่รวมอยู่ในมอเตอร์ 28BYJ-48 นี้คุณมี ULN2003Aหนึ่งในความนิยมมากที่สุดและคุณสามารถใช้กับ Arduino ได้อย่างง่ายดาย มีอาร์เรย์ของทรานซิสเตอร์ดาร์ลิงตันที่รองรับได้ถึง 500mA และมีพินเชื่อมต่อเพื่อเชื่อมโยง 4 คอยส์กับพินของบอร์ด Arduino ที่มีหมายเลขจาก IN1 ถึง IN4 ดังที่คุณเห็นในบทความสเต็ปเปอร์มอเตอร์ที่ฉันกล่าวถึงข้างต้น จาก Arduino คุณสามารถมีสายไฟจากพิน 5v และ GND ไปยังหมุดสองตัวบนบอร์ดโมดูลไดรเวอร์ที่มีเครื่องหมาย - + (5-12v) เพื่อจ่ายไฟให้กับบอร์ดและสเต็ปมอเตอร์

ULN2003A ชิปพินและวงจร

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

El คู่ดาร์ลิงตันเนื่องจาก "ทรานซิสเตอร์" ตัวเดียวที่เกิดจากการรวมกันของทรานซิสเตอร์สองขั้วจึงเป็นที่รู้จักกัน มีต้นกำเนิดที่ Bell Labs ในปีพ. ศ. 1952 โดย Sidney Darlington จึงเป็นที่มาของชื่อ ทรานซิสเตอร์เหล่านี้เชื่อมต่อในลักษณะที่ NPN ตัวหนึ่งมีตัวสะสมเชื่อมต่อกับตัวสะสมของทรานซิสเตอร์ NPN ตัวที่สอง ในขณะที่ผู้ออกครั้งแรกไปที่ฐานของที่สอง นั่นคือทรานซิสเตอร์หรือคู่ที่เป็นผลลัพธ์มีสามการเชื่อมต่อเป็นทรานซิสเตอร์ตัวเดียว ฐานของทรานซิสเตอร์ตัวแรกและตัวสะสม / ตัวปล่อยของทรานซิสเตอร์ตัวที่สอง ...

ซื้อที่ไหนมอเตอร์

แพ็คเกจเครื่องยนต์ 28BYJ-48

ลอส คุณสามารถหาได้จากร้านค้ามากมาย เชี่ยวชาญด้านอิเล็กทรอนิกส์และออนไลน์เช่น Amazon ตัวอย่างเช่นคุณสามารถซื้อได้ที่:

  • ประมาณ€ 6 คุณสามารถมี เครื่องยนต์ 28BYJ-48 พร้อมโมดูลไดรเวอร์.
  • ผลิตภัณฑ์ที่ไม่พบ และสายเคเบิลสำหรับการเชื่อมต่อในกรณีที่คุณต้องการมอเตอร์มากกว่าหนึ่งตัวสำหรับหุ่นยนต์หรือโครงการที่คุณกำลังทำ ...

การเขียนโปรแกรม 28BYJ-48 ด้วย Arduino

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

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

ผู้ผลิตแนะนำให้ขับครั้งละ 2 คอยล์

  • เพื่อให้มันใช้งานได้ ที่แรงบิดสูงสุดด้วยความเร็วที่เร็วที่สุดและการบริโภคสูงสุดคุณสามารถใช้ตารางนี้:
โซ ขดลวดก คอยล์ B ขดลวดค ขดลวด D
1 สูง สูง LOW LOW
2 LOW สูง สูง LOW
3 LOW LOW สูง สูง
4 สูง LOW LOW สูง
  • เพื่อกระตุ้นขดลวดเพียงตัวเดียวในแต่ละครั้งและทำให้มันทำงานได้ ในโหมด wave drive (แม้เพียงครึ่งเดียว แต่ใช้พลังงานต่ำ) คุณสามารถใช้ตารางต่อไปนี้:
โซ ขดลวดก คอยล์ B ขดลวดค ขดลวด D
1 สูง LOW LOW LOW
2 LOW สูง LOW LOW
3 LOW LOW สูง LOW
4 LOW LOW LOW สูง
  • หรือเพื่อความก้าวหน้า ครึ่งก้าวคุณสามารถใช้สิ่งนี้เพื่อให้ได้ความแม่นยำในการกลึงมากขึ้นในขั้นตอนสั้น ๆ :
โซ ขดลวดก คอยล์ B ขดลวดค ขดลวด D
1 สูง LOW LOW LOW
2 สูง สูง LOW LOW
3 LOW สูง LOW LOW
4 LOW สูง สูง LOW
5 LOW LOW สูง LOW
6 LOW LOW สูง สูง
7 LOW LOW LOW สูง
8 LOW LOW LOW สูง

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

int Paso [ 8 ][ 4 ] = 
     {  {1, 0, 0, 0}, 
        {1, 1, 0, 0}, 
        {0, 1, 0, 0}, 
        {0, 1, 1, 0}, 
        {0, 0, 1, 0}, 
        {0, 0, 1, 1}, 
        {0, 0, 0, 1}, 
        {1, 0, 0, 1} };

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

// 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. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา