วิธีการควบคุมมอเตอร์ไฟฟ้ากระแสตรงโดยใช้ ARDUINO NO.3
วิธีการควบคุมมอเตอร์ไฟฟ้ากระแสตรงโดยใช้ ARDUINO
บทนำ: วิธีการควบคุมมอเตอร์ไฟฟ้ากระแสตรงโดยใช้ Arduino
เราเพิ่งเสร็จสิ้นการออกแบบของเรามีขนาดกะทัดรัดแบบ plug-and-play Arduino หุ่นยนต์และปล่อยให้มันบนKickstarter ขณะนี้เรากำลังมองหาผู้สนับสนุน
ด้วยชุดหุ่นยนต์ชุดนี้ง่ายต่อการเชื่อมต่อมอเตอร์เซนเซอร์และโมดูลการติดต่อสื่อสารโดยเพียงแค่เสียบเข้ากับเครื่องคุณไม่จำเป็นต้องจัดการกับสายไฟที่ยุ่งเหยิง คุณจะสามารถสร้างหุ่นยนต์ที่ทำงานได้ในเวลาไม่นาน
ใน Instructable นี้ฉันจะแสดงวิธีการควบคุมมอเตอร์กระแสตรงโดยใช้ชุดของเรา ในอนาคตอันใกล้จะมีคำแนะนำเพื่อแสดงวิธีใช้ WiFi, Bluetooth, RF, Gyroscope และแม้แต่ GPS
ขั้นที่ 1: ระบุตัวเชื่อมต่อบนผ้าโล่
โล่ผ้าไม่ใช่ PCB ธรรมดา นอกจากนี้ยังทำหน้าที่เป็นแชสซีหุ่นยนต์ มีรูที่สี่มุมที่ออกแบบมาเฉพาะเพื่อติดมอเตอร์โดยใช้สกรู
สี่หมุดดิจิทัล (D3, D6, D9 และ D10) บน Arduino Nano สามารถใช้เพื่อควบคุมมอเตอร์ เนื่องจากมอเตอร์ใช้กระแสไฟฟ้าเป็นจำนวนมากจึงต้องใช้ชิปควบคุมมอเตอร์ (L293D) ในโล่ผ้าเพื่อให้มีกำลังงานที่สูงขึ้นมาก มอเตอร์สามารถเชื่อมต่อกับหมุดหัว (เน้นเป็นสีม่วง) หรือขั้วต่อสกรู แรงดันไฟฟ้าขาเข้า (VIN) ควรตรงกับการจัดอันดับของมอเตอร์ แต่ก็ต้องเป็น 5V ขึ้นไป กล่าวอีกนัยหนึ่งถ้าคุณใช้มอเตอร์แบบ 6V DC VIN จำเป็นต้องเชื่อมต่อกับ 6V
ขั้นตอนที่ 2: เชื่อมต่อมอเตอร์กับโล่ผ้า
ใช้ตัวขับสกรูเพื่อติดมอเตอร์และล้อเลื่อนไปทางด้านหลังของผ้า มอเตอร์แต่ละตัวมีสองสาย เชื่อมต่อสายไฟกับจัมเปอร์ตามที่แสดงในแผนภาพ
ในระยะใกล้จะแสดงวิธีจัดเรียงหมุด มีหมุดส่วนหัวสองแบบสำหรับ D6, D9, 5V และ GND ทำให้ง่ายต่อการเชื่อมต่อมอเตอร์ DC สองชุดหรือเซอร์โวมอเตอร์สองตัวโดยใช้หมุด 8 ตัวนี้ ในทำนองเดียวกันมีอีกกลุ่ม 8 หมุดสำหรับ D3, D10, 5V และ GND เพื่อควบคุมมอเตอร์ DC / เซอร์โวอีกสองเครื่อง
ขั้นตอนที่ 3: โปรแกรม Arduino Nano
โปรแกรม Arduino Nano (หรือเข้ากันได้) โดยใช้ IDE มาตรฐานจากArduino.cc
แทรกตัวควบคุม Arduino Nano ของคุณกับส่วนหัวของผู้หญิงตามที่แสดงในภาพ สุดท้ายคุณอาจเสียบไฟผ่านปลั๊ก DC หรือขั้วสกรู
ขั้นตอนที่ 4: โค้ด
รหัสต่อไปนี้แสดงการควบคุมพื้นฐานของมอเตอร์กระแสตรง Motor1 ถูกควบคุมโดยหมุดดิจิตอล 3 และ 10 มอเตอร์ 2 จะถูกควบคุมโดยหมุดดิจิตอล 6 และ 9 นอกจากนี้ยังสามารถปิดการทำงานของมอเตอร์ได้โดยใช้ขาอะนาล็อก A2
ในฟังก์ชั่น setup () จะทำให้ไดรเวอร์มอเตอร์ทำงานได้โดยการเรียก setupMotor ()
ในลูปหลักจะเรียกใช้ฟังก์ชันเพื่อย้ายหุ่นยนต์ไปข้างหน้าซ้ายย้อนกลับและขวาตามลำดับ ในแต่ละขั้นตอนจะรอ 200 มิลลิวินาที
/ มอเตอร์ควบคุมหมุด#define motor1_pos 3#define motor1_neg 10#define motor2_pos 6#define motor2_neg 9#define motor_en A2การตั้งค่าเป็นโมฆะ (){Serial.begin (57600);setupMotor ();}void loop (){robotForward (200);robotLeft (200);robotBackward (200);robotRight (200);robotStop (500);}void setupMotor () {pinMode (motor1_pos, OUTPUT);pinMode (motor1_neg, OUTPUT);pinMode (motor2_pos, OUTPUT);pinMode (motor2_neg, OUTPUT);pinMode (motor_en, OUTPUT);enableMotor ();robotStop (50);}// ------------------------------------------------ -------------------------------------------------- ---// เครื่องยนต์// ------------------------------------------------ -------------------------------------------------- ---void enableMotor () {// เปิดชิปควบคุมมอเตอร์: L293DdigitalWrite (motor_en, HIGH);}โมฆะ disableMotor () {// ปิดชิปควบคุมมอเตอร์: L293DdigitalWrite (motor_en, LOW);}โมฆะ robotStop (int ms) {digitalWrite (motor1_pos, LOW);digitalWrite (motor1_neg, LOW);digitalWrite (motor2_pos, LOW);digitalWrite (motor2_neg, LOW);ล่าช้า (MS);}โมฆะ robotForward (int ms) {digitalWrite (motor1_pos, HIGH);digitalWrite (motor1_neg, LOW);digitalWrite (motor2_pos, HIGH);digitalWrite (motor2_neg, LOW);ล่าช้า (MS);}โมฆะ robotBackward (int ms) {digitalWrite (motor1_pos, LOW);digitalWrite (motor1_neg, HIGH);digitalWrite (motor2_pos, LOW);digitalWrite (motor2_neg, HIGH);ล่าช้า (MS);}โมฆะ robotRight (int ms) {digitalWrite (motor1_pos, LOW);digitalWrite (motor1_neg, HIGH);digitalWrite (motor2_pos, HIGH);digitalWrite (motor2_neg, LOW);ล่าช้า (MS);}โมฆะหุ่นยนต์ (int ms) {digitalWrite (motor1_pos, HIGH);digitalWrite (motor1_neg, LOW);digitalWrite (motor2_pos, LOW);digitalWrite (motor2_neg, HIGH);ล่าช้า (MS);}
ความคิดเห็น
แสดงความคิดเห็น