L298N: โมดูลควบคุมมอเตอร์สำหรับ Arduino

l298n

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

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

ข้อมูลเบื้องต้นเกี่ยวกับ L298N และเอกสารข้อมูล:

l298n พินเอาต์

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

แต่พูดอย่างกว้าง ๆ L298N เป็นไดรเวอร์ประเภท H-bridge ที่ช่วยให้สามารถควบคุมความเร็วและทิศทางการหมุนของมอเตอร์กระแสตรงได้ นอกจากนี้ยังสามารถใช้กับสเต็ปเปอร์มอเตอร์ได้อย่างง่ายดายด้วย 2 H-สะพาน ที่ดำเนินการ กล่าวคือสะพานใน H ซึ่งหมายความว่ามันถูกสร้างขึ้นโดยทรานซิสเตอร์ 4 ตัวซึ่งจะช่วยให้สามารถย้อนกลับทิศทางของกระแสไฟฟ้าเพื่อให้โรเตอร์ของมอเตอร์หมุนไปในทิศทางเดียวหรืออีกทิศทางหนึ่งตามที่เราต้องการ นี่เป็นข้อได้เปรียบเหนือคอนโทรลเลอร์ที่อนุญาตให้คุณควบคุมความเร็วในการหมุน (RPM) โดยควบคุมเฉพาะค่าแรงดันไฟฟ้าเท่านั้น

L298N สามารถทำงานร่วมกับ แรงดันไฟฟ้าจาก 3v ถึง 35v และที่ความเข้ม 2A นี่คือสิ่งที่จะกำหนดประสิทธิภาพหรือความเร็วในการหมุนของมอเตอร์อย่างแท้จริง ต้องคำนึงว่าอุปกรณ์อิเล็กทรอนิกส์ที่โมดูลใช้มักจะกินไฟประมาณ 3v ดังนั้นมอเตอร์จะได้รับ 3v น้อยกว่าจากกำลังที่เราป้อน เป็นการสิ้นเปลืองที่ค่อนข้างสูงในความเป็นจริงมันมีองค์ประกอบพลังงานสูงที่ต้องการฮีทซิงค์ดังที่คุณเห็นในภาพ

ในการควบคุมความเร็วคุณสามารถทำสิ่งที่ตรงกันข้ามกับสิ่งที่เราทำกับ LM35 ในกรณีนี้แทนที่จะได้รับแรงดันไฟฟ้าที่เอาต์พุตและต้องแปลงเป็นองศาตรงนี้จะตรงกันข้าม เราป้อนไดรเวอร์ด้วยแรงดันไฟฟ้าที่ต่ำกว่าหรือสูงกว่าเพื่อให้ได้มา เลี้ยวเร็วขึ้นหรือช้าลง. นอกจากนี้โมดูล L298N ยังช่วยให้บอร์ด Arduino สามารถใช้พลังงานได้ที่ 5v ตราบเท่าที่เราป้อนไดรเวอร์ด้วยแรงดันไฟฟ้าอย่างน้อย 12v

บูรณาการกับ Arduino

แผนภาพวงจรของ l298n พร้อม Arduino

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

ก่อนที่จะทำงานกับ L298N เราต้องพิจารณาว่าอินพุตของโมดูลหรือ Vin รองรับแรงดันไฟฟ้าระหว่าง 3v ถึง 35v และเราต้องเชื่อมต่อกับกราวด์หรือ GND ดังที่เห็นในภาพด้วยสายเคเบิลสีแดงและสีดำตามลำดับ เมื่อเชื่อมต่อกับแหล่งจ่ายไฟแล้วสิ่งต่อไปคือการเชื่อมต่อมอเตอร์หรือมอเตอร์สองตัวที่ยอมรับในการควบคุมพร้อมกัน ทำได้ง่ายเพียงแค่เชื่อมต่อขั้วมอเตอร์ทั้งสองเข้ากับแท็บการเชื่อมต่อที่มีโมดูลอยู่แต่ละด้าน

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

คุณสามารถชื่นชมสิ่งนั้นได้ มี 3 การเชื่อมต่อสำหรับมอเตอร์แต่ละตัว. สิ่งที่ทำเครื่องหมายเป็น IN1 ถึง IN4 คือตัวควบคุมมอเตอร์ A และ B หากคุณไม่มีมอเตอร์ตัวใดตัวหนึ่งเชื่อมต่อเพราะคุณต้องการเพียงตัวเดียวคุณก็ไม่ต้องใส่ทั้งหมด จัมเปอร์ในแต่ละด้านของการเชื่อมต่อเหล่านี้สำหรับมอเตอร์แต่ละตัวคือ ENA และ ENB นั่นคือเพื่อเปิดใช้งานมอเตอร์ A และ B ซึ่งจะต้องมีอยู่หากเราต้องการให้มอเตอร์ทั้งสองทำงาน

ไปยัง มอเตอร์ (มันจะเหมือนกันสำหรับ B) เราต้องมีการเชื่อมต่อ IN1 และ IN2 เพื่อควบคุมทิศทางการหมุน ถ้า IN1 อยู่ใน HIGH และ IN2 ใน LOW มอเตอร์จะหมุนไปในทิศทางเดียวและถ้าอยู่ใน LOW และ HIGH ก็จะเปลี่ยนไปอีกทางหนึ่ง ในการควบคุมความเร็วของการหมุนคุณต้องถอดจัมเปอร์ INA หรือ INB และใช้พินที่ปรากฏเพื่อเชื่อมต่อกับ Arduino PWM ดังนั้นถ้าเราให้ค่าจาก 0 ถึง 255 เราจะได้ความเร็วต่ำหรือสูงกว่าตามลำดับ

เกี่ยวกับ การเขียนโปรแกรมทำได้ง่ายใน Arduino IDE ตัวอย่างเช่นรหัสจะเป็น:

<pre>// Motor A
int ENA = 10;
int IN1 = 9;
int IN2 = 8;

// Motor B
int ENB = 5;
int IN3 = 7;
int IN4 = 6;

void setup ()
{
 // Declaramos todos los pines como salidas
 pinMode (ENA, OUTPUT);
 pinMode (ENB, OUTPUT);
 pinMode (IN1, OUTPUT);
 pinMode (IN2, OUTPUT);
 pinMode (IN3, OUTPUT);
 pinMode (IN4, OUTPUT);
}
//Mover los motores a pleno rendimiento (255), si quieres bajar la velocidad puedes reducir el valor hasta la mínima que son 0 (parados)</pre>
<pre>//Para mover los motores en sentido de giro contrario, cambia IN1 a LOW e IN2 a HIGH

void Adelante ()
{
 //Direccion motor A
 digitalWrite (IN1, HIGH);
 digitalWrite (IN2, LOW);
 analogWrite (ENA, 255); //Velocidad motor A
 //Direccion motor B
 digitalWrite (IN3, HIGH);
 digitalWrite (IN4, LOW);
 analogWrite (ENB, 255); //Velocidad motor B
}</pre>

เป็นคนแรกที่จะแสดงความคิดเห็น

แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา