L298N DC Motor Driver Module อธิบาย

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา





ในโพสต์นี้เราจะเรียนรู้เกี่ยวกับโมดูลตัวขับมอเตอร์กระแสตรงแบบ H-bridge แบบคู่ L298N ซึ่งสามารถใช้ในการขับเคลื่อนมอเตอร์กระแสตรงแบบแปรงและสเต็ปเปอร์มอเตอร์ด้วยไมโครคอนโทรลเลอร์และไอซี

ภาพรวม

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



นั่นเป็นเหตุผลที่เราสามารถพบวงจรโมดูลาร์ที่แตกต่างกันจำนวนตันและตันที่สร้างขึ้นสำหรับบอร์ด Arduino เท่านั้นมันง่ายต่อการเชื่อมต่อและมีข้อได้เปรียบจากข้อผิดพลาดของฮาร์ดแวร์น้อยที่สุดในขณะที่ออกแบบต้นแบบของเรา

ภาพประกอบของโมดูล L298N:

ภาพประกอบของโมดูล L298N:



โมดูลนี้สร้างขึ้นโดยใช้ IC L298N ซึ่งมีอยู่ทั่วไปในเว็บไซต์ E-commerce

เราใช้ ไดรเวอร์มอเตอร์กระแสตรง เนื่องจากไอซีและไมโครคอนโทรลเลอร์ไม่สามารถส่งกระแสไฟฟ้าได้โดยทั่วไปไม่เกิน 100 มิลลิแอมป์ ไมโครคอนโทรลเลอร์ฉลาด แต่ไม่แข็งแรงโมดูลนี้จะเพิ่มกล้ามเนื้อบางส่วนให้กับ Arduino, ICs และไมโครคอนโทรลเลอร์อื่น ๆ เพื่อขับเคลื่อนมอเตอร์กระแสตรงกำลังสูง

สามารถควบคุมมอเตอร์กระแสตรง 2 ตัวพร้อมกันได้สูงสุด 2 แอมป์ต่อตัวหรือหนึ่งมอเตอร์สเต็ปเปอร์ เราทำได้ ควบคุมความเร็ว ใช้ PWM และทิศทางการหมุนของมอเตอร์

โมดูลนี้เหมาะอย่างยิ่งสำหรับ การสร้างหุ่นยนต์ และโครงการขนย้ายที่ดินเช่นรถของเล่น

มาดูรายละเอียดทางเทคนิคของโมดูล L298N

รายละเอียดทางเทคนิคของโมดูล L298N

คำอธิบายพิน:

·ทางด้านซ้ายมือมีพอร์ต OUT1 และ OUT2 ซึ่งใช้สำหรับเชื่อมต่อมอเตอร์กระแสตรง ในทำนองเดียวกัน OUT3 และ OUT4 สำหรับมอเตอร์ DC อื่น

· ENA และ ENB เปิดใช้งานพินโดยการเชื่อมต่อ ENA ไปที่สูงหรือ + 5V จะเปิดใช้งานพอร์ต OUT1 และ OUT2 หากคุณเชื่อมต่อพิน ENA ให้ต่ำหรือกราวด์จะปิดการใช้งาน OUT1 และ OUT2 ในทำนองเดียวกันสำหรับ ENB และ OUT3 และ OUT4

· IN1 ถึง IN4 เป็นพินอินพุตที่จะเชื่อมต่อกับ Arduino หากคุณป้อน IN1 + Ve และ IN2 –Ve จากไมโครคอนโทรลเลอร์หรือด้วยตนเอง OUT1 จะสูงและ OUT2 จะต่ำเราจึงสามารถขับเคลื่อนมอเตอร์ได้

·หากคุณป้อน IN3 สูง OUT4 จะสูงและหากคุณป้อน IN4 ต่ำ OUT3 จะเปลี่ยนเป็นต่ำตอนนี้เราสามารถขับมอเตอร์อีกตัวได้

·หากคุณต้องการย้อนกลับทิศทางการหมุนของมอเตอร์ให้ย้อนกลับขั้ว IN1 และ IN2 ในทำนองเดียวกันสำหรับ IN3 และ IN4

·ด้วยการใช้สัญญาณ PWM กับ ENA และ ENB คุณสามารถควบคุมความเร็วของมอเตอร์บนพอร์ตเอาต์พุตที่แตกต่างกันสองพอร์ต

·บอร์ดสามารถรับได้ตั้งแต่ 7 ถึง 12V ในนาม คุณสามารถป้อนพลังงานที่ขั้ว + 12V และกราวด์ถึง 0V

·ขั้ว + 5V คือ OUTPUT ซึ่งสามารถใช้เพื่อจ่ายไฟให้กับ Arduino หรือโมดูลอื่น ๆ ได้หากจำเป็น

จัมเปอร์:

มีหมุดจัมเปอร์สามตัวที่คุณสามารถเลื่อนขึ้นดูภาพที่แสดง

จัมเปอร์ทั้งหมดจะเชื่อมต่อในตอนแรกถอดหรือเก็บจัมเปอร์ขึ้นอยู่กับความต้องการของคุณ

จัมเปอร์ 1 (ดูภาพประกอบ):

·หากคุณต้องการมอเตอร์มากกว่า 12V คุณต้องถอดจัมเปอร์ 1 และใช้แรงดันไฟฟ้าที่ต้องการ (สูงสุด 35V) ที่ขั้ว 12v นำอีก แหล่งจ่าย 5V และอินพุตที่ขั้ว + 5V ใช่คุณต้องป้อน 5V หากคุณต้องการใช้มากกว่า 12V (เมื่อนำจัมเปอร์ 1 ออก)

·อินพุต 5V ใช้สำหรับการทำงานที่เหมาะสมของ IC เนื่องจากการถอดจัมเปอร์จะปิดใช้งานตัวควบคุม 5v ในตัวและป้องกันแรงดันไฟฟ้าอินพุตที่สูงขึ้นจากขั้ว 12v

·ขั้ว + 5V ทำหน้าที่เป็นเอาต์พุตหากแหล่งจ่ายไฟของคุณอยู่ระหว่าง 7 ถึง 12V และทำหน้าที่เป็นอินพุตหากคุณใช้มากกว่า 12V และจัมเปอร์จะถูกถอดออก

·โครงการส่วนใหญ่ต้องการแรงดันมอเตอร์ต่ำกว่า 12V ดังนั้นให้จัมเปอร์ตามที่เป็นอยู่และใช้ขั้ว + 5V เป็นเอาต์พุต

Jumper 2 และ Jumper 3 (ดูภาพประกอบ):

·หากคุณถอดจัมเปอร์สองตัวนี้ออกคุณต้องป้อนสัญญาณเปิดใช้งานและปิดใช้งานจากไมโครคอนโทรลเลอร์ผู้ใช้ส่วนใหญ่ชอบถอดจัมเปอร์สองตัวและใช้สัญญาณจากไมโครคอนโทรลเลอร์

·หากคุณเก็บจัมเปอร์สองตัวไว้ OUT1 ถึง OUT4 จะเปิดใช้งานเสมอ จำจัมเปอร์ ENA สำหรับ OUT1 และ OUT2 ENB จัมเปอร์สำหรับ OUT3 และ OUT4

ตอนนี้เรามาดูวงจรที่ใช้งานได้จริงเราจะทำอย่างไร มอเตอร์อินเทอร์เฟซ Arduino และจ่ายให้กับโมดูลไดรเวอร์

แผนผัง:

แผนผังของโมดูล L298N

วงจรข้างต้นสามารถใช้กับรถของเล่นได้หากคุณเปลี่ยนรหัสให้เหมาะสมและเพิ่มจอยสติ๊ก

คุณเพียงแค่ต้องจ่ายไฟให้กับโมดูล L289N จากนั้นโมดูลจะจ่ายไฟให้ Arduino ผ่านทาง Vin terminal

วงจรด้านบนจะหมุนมอเตอร์ทั้งสองแบบตามเข็มนาฬิกาเป็นเวลา 3 วินาทีและหยุดเป็นเวลา 3 วินาที หลังจากนั้นมอเตอร์จะหมุนทวนเข็มนาฬิกาเป็นเวลา 3 วินาทีและหยุดเป็นเวลา 3 วินาที นี่แสดงให้เห็นถึงการทำงานของสะพาน H

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

โปรแกรม:

//----------------Program developed by R.GIRISH--------------//
const int Enable_A = 9
const int Enable_B = 10
const int inputA1 = 2
const int inputA2 = 3
const int inputB1 = 4
const int inputB2 = 5
void setup()
{
pinMode(Enable_A, OUTPUT)
pinMode(Enable_B, OUTPUT)
pinMode(inputA1, OUTPUT)
pinMode(inputA2, OUTPUT)
pinMode(inputB1, OUTPUT)
pinMode(inputB2, OUTPUT)
}
void loop()
{
//----Enable output A and B------//
digitalWrite(Enable_A, HIGH)
digitalWrite(Enable_B, HIGH)
//----------Run motors-----------//
digitalWrite(inputA1, HIGH)
digitalWrite(inputA2, LOW)
digitalWrite(inputB1 , HIGH)
digitalWrite(inputB2, LOW)
delay(3000)
//-------Disable Motors----------//
digitalWrite(Enable_A, LOW)
digitalWrite(Enable_B, LOW)
delay(3000)
//-------Reverse Motors----------//
digitalWrite(Enable_A, HIGH)
digitalWrite(Enable_B, HIGH)
digitalWrite(inputA1, LOW)
digitalWrite(inputA2, HIGH)
digitalWrite(inputB1 , LOW)
digitalWrite(inputB2, HIGH)
delay(3000)
//-------Disable Motors----------//
digitalWrite(Enable_A, LOW)
digitalWrite(Enable_B, LOW)
delay(3000)
//----------Speed rise----------//
for(int i = 0 i < 256 i++)
{
analogWrite(Enable_A, i)
analogWrite(Enable_B, i)
delay(40)
}
//----------Speed fall----------//
for(int j = 256 j > 0 j--)
{
analogWrite(Enable_A, j)
analogWrite(Enable_B, j)
delay(40)
}
//-------Disable Motors----------//
digitalWrite(Enable_A, LOW)
digitalWrite(Enable_B, LOW)
delay(3000)
}
//----------------Program developed by R.GIRISH--------------//

ต้นแบบของผู้แต่ง:

Arduino ต้นแบบของวงจรขับมอเตอร์โดยใช้โมดูล L298N

หากคุณมีคำถามใด ๆ เกี่ยวกับโครงการไดรเวอร์มอเตอร์ DC L298N นี้อย่าลังเลที่จะแสดงความคิดเห็นในส่วนความคิดเห็นคุณอาจได้รับคำตอบอย่างรวดเร็ว




คู่ของ: วงจรเครื่องชาร์จแบตเตอรี่หลายตัวโดยใช้ตัวเก็บประจุการถ่ายโอนข้อมูล ถัดไป: จอยสติ๊กควบคุม 2.4 GHz RC Car โดยใช้ Arduino