Arduino Library สำหรับ 28BYJ-48 Stepper Motor และ ULN2003 ไดรเวอร์: 3 ขั้นตอน

Arduino Library สำหรับ 28BYJ-48 Stepper Motor และ ULN2003 ไดรเวอร์: 3 ขั้นตอน

สารบัญ:

Anonim

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

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

เราคิดว่าคุณมีความเข้าใจพื้นฐานของ C ++ และทฤษฎีสเต็ปเปอร์มอเตอร์

คุณสามารถรับรหัสและการใช้งานได้จากบล็อก EngyFun ที่:

http: //engyfun.blogspot.com.au/2015/02/here-is-sou …

วัสดุ:

ขั้นตอนที่ 1: StepperMotor.h

เริ่มต้นด้วยการเขียนคลาส StepperMotor

สร้างไฟล์ชื่อ StepperMotor.h และคัดลอกรหัสในภาพ

หากคุณมีความเข้าใจในภาษา C ++ คำจำกัดความของคลาสจะพูดเพื่อตัวเอง

ขั้นตอนที่ 2: StepperMotor.cpp

ตอนนี้เรามาเขียนอินเตอร์เฟสคลาส

สร้างไฟล์ชื่อ StepperMotor.cpp และคัดลอกรหัสในภาพ

ลองดูที่นวกรรมิกในบรรทัดที่ 4 เราเริ่มต้นด้วยการกำหนดพินที่ผู้ใช้เลือกให้กับอาเรย์พินอินพุตในบรรทัดที่ 6 ถึง 9 ซึ่งจะทำให้เข้าถึงหมายเลขพินได้ง่ายขึ้นในอัลกอริทึมการขับขี่

ในบรรทัดที่ 12 เราวนซ้ำแถวอาเรย์พินและตั้งค่าแต่ละพินเป็นโหมดเอาท์พุท

ในบรรทัดที่ 15 เราเริ่มต้นช่วงเวลาขั้นตอนเป็น 50 ms

บรรทัดที่ 18 เรามีตัวตั้งค่าช่วงเวลาแบบขั้นตอน นี่คือการอธิบายตนเอง

ตอนนี้เรามาดูวิธีการขั้นตอน วิธีนี้ช่วยให้สเต็ปเปอร์มอเตอร์ก้าวไปตามจำนวนครั้งที่ผ่านไปยังวิธีการ

ในบรรทัดที่ 28 เรากำหนดลำดับการหมุนโดยใช้อาร์เรย์ 2d แถวแสดงถึงขั้นตอนและคอลัมน์แสดงถึงขาออก

ในบรรทัดที่ 37 เราคำนวณตัวประกอบซึ่งจะเป็น +1 หรือ -1 ขึ้นอยู่กับเครื่องหมายของจำนวนก้าวที่ผ่านไป ค่านี้จำเป็นสำหรับอัลกอริทึมในการกำหนดทิศทางของการวนซ้ำผ่านอาเรย์ลำดับเช่นเปลี่ยนทิศทางการหมุน

ในบรรทัดที่ 38 เราสร้าง noOfSteps เป็นค่าบวกซึ่งจำเป็นสำหรับการออกแบบ

ในบรรทัดที่ 44 เราเริ่มต้นลูปที่จะทำงานสำหรับการเริ่มต้นลำดับการหมุนแต่ละครั้งเช่นเริ่มต้นทุก 8 ขั้นตอน

ในบรรทัด 45 เราเริ่มวนซ้ำอีกครั้งที่วนซ้ำแถวของแถวลำดับ

ในบรรทัด 46 เราหน่วงเวลาตามที่ระบุ

ที่บรรทัด 47 เราวนซ้ำหมายเลขพิน

ที่บรรทัดที่ 48 เราเขียนสัญญาณดิจิตอลไปยังหมายเลขพินปัจจุบัน

หากตัวประกอบเป็นลบแถวของอาร์เรย์ลำดับจะถูกเข้าถึงในทิศทางตรงกันข้ามกับบรรทัดที่ 48 เมื่อเราเขียนถึงหมุด 8 ถูกลบด้วยจำนวนแถว … ดังนั้นเราจึงเข้าถึงจากล่างขึ้นบน

ขั้นตอนที่ 3: การเข้าถึง Library จาก Arduino IDE

ตอนนี้เราเพียงแค่ต้องเพิ่มไฟล์เหล่านี้ไปยังไดเรกทอรีห้องสมุดของ arduino IDE สิ่งนี้จะทำให้เราสามารถนำเข้าไลบรารีนั้นใน IDE เพื่อใช้งานได้

ไปที่ไดเรกทอรีต่อไปนี้:

C: Program Files (x86) Arduino libraries

แล้วสร้างโฟลเดอร์ชื่อ StepperMotor

ตอนนี้ใส่ไฟล์. h และ. cpp ลงในโฟลเดอร์ที่สร้างขึ้น

ตอนนี้คุณสามารถนำเข้าไลบรารีจากภายใน IDE (ร่าง> นำเข้าห้องสมุด … > StepperMotor)

2 คนสร้างโปรเจคนี้!

  • johnnyfrx สร้างมันขึ้นมา!

  • brdavid ทำมัน!

คุณทำโครงการนี้หรือไม่? แบ่งปันกับเรา!

ข้อเสนอแนะ

  • SKY CAM โซลูชั่นกล้องทางอากาศ

  • Arduino Air Bonsai Levitation

  • อินเทอร์เน็ตของชั้นเรียน

  • การประกวดงานไม้

  • การประกวดแบบสุ่ม

  • การประกวด Arduino 2019

8 การสนทนา

0

jplaiss

3 ปีที่แล้ว

… Arduino ULNStepper ULNStepper.ino: 2: 26: ข้อผิดพลาดร้ายแรง: StepperMotor.h: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว

#include

ช่วยขึ้นมา

2 คำตอบ 0

DikaM2 jplaiss

ตอบ 3 เดือนที่ผ่านมา

ฉันคิดว่าห้องสมุดไม่มีอยู่ในไดเรกทอรี

0

JeremieL8 jplaiss

ตอบกลับ 2 ปีที่ผ่านมา

เหมือนกันที่นี่..

0

tahirulhaq

1 ปีที่ผ่านมา

การทำงานที่น่าตื่นตาตื่นใจ !!!

0

Drumpeter

2 ปีที่แล้ว

ใช้งานได้ดี! มีความเป็นไปได้ไหมที่จะให้มันหมุนเร็วขึ้นแล้ว 1 ขั้นต่อไมโครวินาที? หากฉันเข้าใจว่าการแก้ไขไลบรารีจะเข้าใจเฉพาะจำนวนเต็มเท่านั้น ฉันจะเปลี่ยนสิ่งนั้นได้อย่างไร

0

jplaiss

3 ปีที่แล้ว

ฉันพลาดอะไรบางอย่างที่นี่

ฉันควรใช้อะไรในการสร้างไฟล์. h และ. cpp

ฉันจะรวมสิ่งนี้เข้าด้วยกันเพื่อสร้างไลบรารีที่จะติดตั้งใน IDE ได้อย่างไร

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

กรุณาช่วย.

0

functionaldesign

3 ปีที่แล้ว

ข้อมูลดีมาก! ในที่สุดฉันก็ใช้สเต็ปเปอร์นี้เพื่อทำงาน ฉันต้องการใช้ปุ่มเพื่อควบคุมความเร็ว / รอบต่อนาที ต้องเปลี่ยนค่าอะไรเพื่อให้เร็วขึ้น? ฉันสามารถทำให้มันช้าลงโดยการเปลี่ยนค่าใน motor.setStepDuration (1) แต่จะเร็วขึ้นไหม

0

Billdwp

3 ปีที่ผ่านมาในขั้นตอนที่ 2

ยอดเยี่ยมยอดเยี่ยมมีประโยชน์; ขอบคุณ!