ข้ามไปที่เนื้อหาหลัก

วิธีการควบคุมมอเตอร์ไฟฟ้ากระแสตรงโดยใช้ ARDUINO NO.3




วิธีการควบคุมมอเตอร์ไฟฟ้ากระแสตรงโดยใช้ ARDUINO


การตีพิมพ์ 


บทนำ: วิธีการควบคุมมอเตอร์ไฟฟ้ากระแสตรงโดยใช้ 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
รูปภาพของโปรแกรม Arduino Nano
รูปภาพของโปรแกรม 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 () {
// เปิดชิปควบคุมมอเตอร์: L293D
digitalWrite (motor_en, HIGH);
}
โมฆะ disableMotor () {
// ปิดชิปควบคุมมอเตอร์: L293D
digitalWrite (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);
}

ความคิดเห็น

บทความที่ได้รับความนิยม