สารบัญ:

ขับเคลื่อนมอเตอร์ขนาดเล็กด้วย TB6612FNG: 8 ขั้นตอน
ขับเคลื่อนมอเตอร์ขนาดเล็กด้วย TB6612FNG: 8 ขั้นตอน

วีดีโอ: ขับเคลื่อนมอเตอร์ขนาดเล็กด้วย TB6612FNG: 8 ขั้นตอน

วีดีโอ: ขับเคลื่อนมอเตอร์ขนาดเล็กด้วย TB6612FNG: 8 ขั้นตอน
วีดีโอ: IOX on LIVE #8 : TB6612FNG โมดูลขับมอเตอร์ 1.2A 2 ช่อง 2024, ธันวาคม
Anonim
ขับเคลื่อนมอเตอร์ขนาดเล็กด้วย TB6612FNG
ขับเคลื่อนมอเตอร์ขนาดเล็กด้วย TB6612FNG

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

มีแหล่งข้อมูลออนไลน์มากมายในการเริ่มต้นกับ TB6612FNG แต่ฉันตัดสินใจที่จะเขียนสิ่งนี้ต่อไปเพื่อรวบรวมสิ่งที่ฉันพบให้ดีขึ้น

ฉันจะมุ่งเน้นไปที่ตรรกะการควบคุมและอธิบายรายละเอียดเกี่ยวกับไลบรารีไดรเวอร์มอเตอร์ Sparkfun TB6612FNG โดยละเอียดในคำแนะนำนี้

ขั้นตอนที่ 1: อะไหล่ที่จำเป็น

นี่คือสิ่งที่เราจะใช้ในวันนี้:

1) มอเตอร์ไมโครเมทัล

2) ไดรเวอร์มอเตอร์ TB6612FNG

3) สายเคเบิล Arduino และ USB

4) แหล่งพลังงานสำหรับมอเตอร์

5) เขียงหั่นขนม

6) สายจัมเปอร์

ขั้นตอนที่ 2: บอร์ดฝ่าวงล้อม TB6612FNG

คณะกรรมการฝ่าวงล้อม TB6612FNG
คณะกรรมการฝ่าวงล้อม TB6612FNG

ดังที่ฉันได้กล่าวไว้ก่อนหน้านี้ มีบอร์ดฝ่าวงล้อมมากมายจากผู้ผลิตหลายรายสำหรับ TB6612FNG ทั้งหมดมีส่วนประกอบเหมือนกันไม่มากก็น้อยและพินเอาต์ที่คล้ายกัน

ตัวเก็บประจุถูกบัดกรีบนบอร์ดเพื่อป้องกันเสียงรบกวนจากมอเตอร์ ดังนั้นคุณจึงไม่ต้องบัดกรีตัวเก็บประจุเซรามิกเหล่านั้นกับมอเตอร์

IC ยังมาพร้อมกับไดโอดภายในเพื่อป้องกัน EMF ด้านหลังจากมอเตอร์ แต่การมีมาตรการด้านความปลอดภัยเพิ่มเติมไม่ได้ทำร้ายใคร ฉันไม่ได้เพิ่มมันเพราะมอเตอร์ของฉันไม่ใหญ่มากและฉันขาดไดโอด:|

ขั้นตอนที่ 3: ปักหมุด

ปักหมุด
ปักหมุด

บอร์ดฝ่าวงล้อม TB6612FNG มีพินเอาต์ที่สะดวกมาก เอาต์พุตของมอเตอร์ อินพุต และการเชื่อมต่อกำลังถูกจัดกลุ่มไว้อย่างดีเพื่อให้ใช้งานง่ายที่สุด

ฉันทำภาพประกอบของพินและวิธีเชื่อมต่อ ฉันหวังว่ามันจะสะดวกเมื่อเชื่อมต่อสายเหล่านั้นทั้งหมด:)

ขั้นตอนที่ 4: แผนผัง

แผนผัง
แผนผัง
แผนผัง
แผนผัง

ฉันค่อนข้างใหม่กับการใช้ Fritzing ฉันพบว่าแผนผังวงจรจาก Fritzing ค่อนข้างเข้าใจยาก แต่มุมมองแบบเขียงหั่นขนมนั้นสะดวกสำหรับ Instructables อย่าลังเลที่จะถามคำถามใด ๆ หากการต่อสายดูสับสน

ขั้นตอนที่ 5: การเดินสายไฟ

การเดินสายไฟ
การเดินสายไฟ

วางสายทุกอย่างตามแผนผัง มีสายไฟจำนวนมาก โปรดตรวจสอบอีกครั้งหลังจากเชื่อมต่อทุกครั้ง

ฉันใช้ Arduino Pins ต่อไปนี้สำหรับอินพุตไดรเวอร์มอเตอร์:

ไดรเวอร์มอเตอร์ -> หมายเลขพิน Arduino

1) PWMA -> 5

2) INA1 -> 2

3) INA2 -> 4

4) PWMB -> 6

5) INB1 -> 7

6) INB2 -> 8

สิ่งที่อาจผิดพลาดได้ในขั้นตอนนี้:1) อย่ากลับขั้วขณะเชื่อมต่อ Vm และ GND จากแหล่งพลังงาน คุณอาจทอดตัวขับมอเตอร์ของคุณ

2) ตรวจสอบให้แน่ใจว่าได้เชื่อมต่อ PWMA และ PWMB กับพิน PWM บน Arduino

3) อย่าลืมเชื่อมต่อ Arduino GND และ GND จากไดรเวอร์มอเตอร์ หากคุณใช้แหล่งพลังงานที่แตกต่างกันสำหรับแต่ละรายการ

ขั้นตอนที่ 6: การดาวน์โหลดและติดตั้งไลบรารี

ดาวน์โหลดไลบรารีจากหน้า GitHub ของ Sparkfun

เมื่อคุณดาวน์โหลดไฟล์ zip แล้ว ให้เปิด Arduino IDE ของคุณ

จาก Sketch > รวมไลบรารี > เพิ่ม. Zip Library ให้เพิ่มไลบรารีที่คุณดาวน์โหลด

เมื่อติดตั้งสำเร็จแล้ว ควรปรากฏในไฟล์ > ตัวอย่าง เป็น 'SparkFun TB6612FNG Motor Library'

หากคุณประสบปัญหาในการดาวน์โหลดและติดตั้ง Arduino Library ให้ตรวจสอบขั้นตอนที่ 5 ของคำแนะนำนี้

ขั้นตอนที่ 7: เรียกใช้โค้ดตัวอย่าง

เมื่อไลบรารีของเราพร้อมแล้ว เราสามารถอัปโหลดโค้ดตัวอย่างเพื่อทดสอบได้

1) เปิดตัวอย่าง 'MotorTestRun' จาก 'Sparkfun TB6612FNG Motor Driver Library' ที่แสดงอยู่ในไลบรารีของคุณ

หมายเหตุ: หากคุณไม่ได้ใช้หมายเลขพินเดียวกันกับที่กล่าวไว้ในขั้นตอนที่ 5 อย่าลืมเปลี่ยนคำจำกัดความของพินตามการตั้งค่าของคุณ

2) เลือกบอร์ดของคุณจากผู้จัดการบอร์ด

3) อัปโหลดรหัสของคุณและมอเตอร์ควรเริ่มเคลื่อนไหว

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

ขั้นตอนที่ 8: ห้องสมุดอธิบาย

ตอนนี้จะอธิบายวิธีใช้ไลบรารีสำหรับโค้ดของคุณเอง

เริ่มต้นด้วยการนำเข้าไลบรารีและเริ่มต้นพินบน arduino

#รวม

#define AIN1 2 #define AIN2 4 #define PWMA 5 #define BIN1 7 #define BIN2 8 #define PWMB 6# กำหนด STBY 9

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

จากนั้นคุณต้องเริ่มต้นมอเตอร์แต่ละตัวด้วยพารามิเตอร์ต่อไปนี้

มอเตอร์ = มอเตอร์ (พิน 1, พิน 2, พิน PWM, ออฟเซ็ต, พินสแตนด์บาย)

const int offsetA = 1;

const int offsetB = 1; มอเตอร์ motor1 = มอเตอร์ (AIN1, AIN2, PWMA, offsetA, STBY);

และด้วยสิ่งนี้ คุณได้เริ่มต้นไลบรารี่เรียบร้อยแล้ว ไม่มีขั้นตอนในฟังก์ชัน setup() อีกต่อไป เราเพียงแค่เรียกใช้โค้ดในฟังก์ชัน loop()

วิธีมอเตอร์มีหน้าที่ดังต่อไปนี้ ทิงเกอร์ไปรอบ ๆ เพื่อตรวจสอบพวกเขาทั้งหมด

1).drive(ค่า เวลา)

Motor_name = ชื่อของมอเตอร์ objectvalue ของคุณ = 255 ถึง -255; ค่าลบจะทำให้มอเตอร์เคลื่อนที่ย้อนเวลา = เวลาเป็นมิลลิวินาที

2).เบรก()

ฟังก์ชันเบรกไม่มีข้อโต้แย้งใดๆ เบรกมอเตอร์

3) เบรค (, <motor_name2)

ฟังก์ชั่นเบรกใช้ชื่อวัตถุของมอเตอร์เป็นอาร์กิวเมนต์ เบรกมอเตอร์ที่ผ่านเข้าไปในฟังก์ชัน

4) ไปข้างหน้า (,, เวลา) ไปข้างหน้า (,, ความเร็ว, เวลา)

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

5) ย้อนกลับ (,, เวลา) ย้อนกลับ (,, ความเร็ว, เวลา)

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

6) ซ้าย (,, ความเร็ว) ขวา (,, ความเร็ว)

ฟังก์ชันยอมรับชื่อและความเร็วของวัตถุมอเตอร์สองแบบ ลำดับของวัตถุยนต์ที่ส่งผ่านเป็นพารามิเตอร์มีความสำคัญ ในการขับเคลื่อนมอเตอร์เดี่ยว ให้ใช้.drive() แทน

แนะนำ: