สารบัญ:
- วัสดุ:
- ขั้นตอนที่ 1: StepperMotor.h
- ขั้นตอนที่ 2: StepperMotor.cpp
- ขั้นตอนที่ 3: การเข้าถึง Library จาก Arduino IDE
- 2 คนสร้างโปรเจคนี้!
- johnnyfrx สร้างมันขึ้นมา!
- brdavid ทำมัน!
- ข้อเสนอแนะ
- SKY CAM โซลูชั่นกล้องทางอากาศ
- Arduino Air Bonsai Levitation
- อินเทอร์เน็ตของชั้นเรียน
- การประกวดงานไม้
- การประกวดแบบสุ่ม
- การประกวด Arduino 2019
- 8 การสนทนา
สเต็ปเปอร์มอเตอร์ 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 คนสร้างโปรเจคนี้!
คุณทำโครงการนี้หรือไม่? แบ่งปันกับเรา!
ข้อเสนอแนะ
-
SKY CAM โซลูชั่นกล้องทางอากาศ
-
Arduino Air Bonsai Levitation
-
อินเทอร์เน็ตของชั้นเรียน
-
การประกวดงานไม้
-
การประกวดแบบสุ่ม
-
การประกวด Arduino 2019
8 การสนทนา
0 jplaiss3 ปีที่แล้ว
… Arduino ULNStepper ULNStepper.ino: 2: 26: ข้อผิดพลาดร้ายแรง: StepperMotor.h: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
#include ช่วยขึ้นมา ตอบ 3 เดือนที่ผ่านมา ฉันคิดว่าห้องสมุดไม่มีอยู่ในไดเรกทอรี ตอบกลับ 2 ปีที่ผ่านมา เหมือนกันที่นี่.. 1 ปีที่ผ่านมา การทำงานที่น่าตื่นตาตื่นใจ !!! 2 ปีที่แล้ว ใช้งานได้ดี! มีความเป็นไปได้ไหมที่จะให้มันหมุนเร็วขึ้นแล้ว 1 ขั้นต่อไมโครวินาที? หากฉันเข้าใจว่าการแก้ไขไลบรารีจะเข้าใจเฉพาะจำนวนเต็มเท่านั้น ฉันจะเปลี่ยนสิ่งนั้นได้อย่างไร 3 ปีที่แล้ว ฉันพลาดอะไรบางอย่างที่นี่ ฉันควรใช้อะไรในการสร้างไฟล์. h และ. cpp ฉันจะรวมสิ่งนี้เข้าด้วยกันเพื่อสร้างไลบรารีที่จะติดตั้งใน IDE ได้อย่างไร ฉันเคยทำเอกสารบันทึกสองแผ่นที่เมื่อติดป้ายกำกับด้วยคำต่อท้ายจะปรากฏเช่นเดียวกับห้องสมุดอื่น ๆ ที่ฉันมี ฉันได้พยายามที่จะแทรกเอกสารเหล่านี้ลงในไฟล์หลักแล้ววางลงในไฟล์อื่นภายในไฟล์หลักให้พวกเขาอยู่ในระดับเดียวกับรหัสทดสอบและใช้บิตของสิ่งนี้ในการทำซ้ำสองสามครั้ง กรุณาช่วย. 3 ปีที่แล้ว ข้อมูลดีมาก! ในที่สุดฉันก็ใช้สเต็ปเปอร์นี้เพื่อทำงาน ฉันต้องการใช้ปุ่มเพื่อควบคุมความเร็ว / รอบต่อนาที ต้องเปลี่ยนค่าอะไรเพื่อให้เร็วขึ้น? ฉันสามารถทำให้มันช้าลงโดยการเปลี่ยนค่าใน motor.setStepDuration (1) แต่จะเร็วขึ้นไหม 3 ปีที่ผ่านมาในขั้นตอนที่ 2 ยอดเยี่ยมยอดเยี่ยมมีประโยชน์; ขอบคุณ!