Search Code

บทเรียน 07: การรับไฟ 5V และ GND เพิ่มเติมจาก Arduino | คอร์สเรียน Arduino แบบขั้นตอน

บทเรียน 07: การรับไฟ 5V และ GND เพิ่มเติมจาก Arduino | คอร์สเรียน Arduino แบบขั้นตอน

ในบทเรียนนี้จากคอร์ส Robojax Arduino ขั้นตอนทีละขั้น เราได้สำรวจวิธีแก้ปัญหาที่ใช้งานได้จริงสำหรับปัญหาทั่วไป: การใช้พิน 5V และ GND บนบอร์ด Arduino หมด ไม่ว่าคุณกำลังสร้างโปรเจกต์ที่ต้องจ่ายไฟให้เซอร์โวมอเตอร์ จอ LCD เซนเซอร์อัลตราโซนิก หรืออุปกรณ์หลายชนิดรวมกัน จำนวนพินจ่ายไฟที่มีจำกัดบน Arduino Uno หรือ Nano อาจกลายเป็นอุปสรรคได้อย่างรวดเร็ว คู่มือนี้สาธิตวิธีใช้พิน I/O ดิจิทัลใดๆ อย่างสร้างสรรค์เป็นแหล่งจ่าย 5V เพิ่มเติมหรือเป็นจุดต่อกราวด์ ทำให้คุณมีความยืดหยุ่นในการจ่ายไฟให้กับหลายคอมโพเนนต์โดยไม่ต้องใช้แหล่งจ่ายไฟภายนอกสำหรับอุปกรณ์ที่ใช้กระแสต่ำ

เทคนิคนี้มีประโยชน์อย่างยิ่งสำหรับการใช้งานจริงหลายกรณี ได้แก่:

  • การจ่ายไฟให้จอ OLED หรือ LCD ขนาดเล็กควบคู่กับเซอร์โวมอเตอร์ในโปรเจกต์เดียว
  • การจ่ายไฟให้เซนเซอร์หลายตัวพร้อมกัน เช่น เซนเซอร์อัลตราโซนิกและเซนเซอร์ตรวจจับการเคลื่อนไหว PIR
  • การสร้างชุดทดสอบชั่วคราวบนเบรดบอร์ดเมื่อคุณต้องการแหล่งจ่ายไฟที่รวดเร็วและง่ายดายสำหรับโมดูลใหม่
  • การขับ LED กำลังต่ำหรือวงจรระดับลอจิกที่ต้องการแหล่งจ่าย 5V ที่สะอาด

ทำความเข้าใจข้อจำกัดด้านพลังงานของ Arduino

ก่อนที่เราจะลงลึกถึงวิธีแก้ปัญหา สิ่งสำคัญคือต้องเข้าใจสถาปัตยกรรมพลังงานของบอร์ด Arduino ของคุณ บน Arduino Uno มาตรฐาน โดยทั่วไปคุณจะมีพิน 5V เฉพาะเพียงพินเดียว บอร์ดจากผู้ผลิตบางราย ตามที่กล่าวในวิดีโอ อาจมีพิน 5V ที่สอง แต่ถึงอย่างนั้น คุณอาจต้องการมากกว่านั้น (ในวิดีโอที่ 00:26)

ปริมาณกระแสที่คุณสามารถดึงจากพินเหล่านี้ขึ้นอยู่กับแหล่งจ่ายไฟของคุณ หากคุณจ่ายไฟให้บอร์ดผ่าน USB กระแสจะถูกจำกัดโดยพอร์ต USB หรือเครื่องชาร์จที่คุณใช้ ตัวอย่างเช่น เครื่องชาร์จ 1A จะอนุญาตสูงสุด 1A ในขณะที่เครื่องชาร์จ 2.4A จะอนุญาตมากกว่า (ในวิดีโอที่ 01:55) หากคุณใช้แจ็คกระบอกสูบกับแหล่งจ่าย 7-12V กระแสจะถูกควบคุมโดยชิปควบคุมแรงดันไฟฟ้า AMS1117 บนบอร์ด ซึ่งมีขีดจำกัดกระแสโดยทั่วไปที่ 1.1A (ในวิดีโอที่ 02:20)

สิ่งสำคัญที่ควรทราบคือหัวเชื่อมต่อ ICSP บนบอร์ด ตามที่อธิบายในวิดีโอ หัวเชื่อมต่อนี้ให้การเข้าถึงพิน SPI (Serial Peripheral Interface) และพินทางด้านขวาคือ VCC (5V) จริงๆ ในขณะที่พินสุดท้ายคือ GND (ในวิดีโอที่ 00:54) ซึ่งทำให้คุณมีตำแหน่งทางกายภาพอีกจุดหนึ่งในการเชื่อมต่อกับราง 5V

อย่างไรก็ตาม ข้อจำกัดที่สำคัญที่สุดที่ต้องจำไว้คือสำหรับพิน I/O ดิจิทัล ตามเอกสารอย่างเป็นทางการของ Arduino พินดิจิทัลแต่ละพินสามารถจ่ายหรือรับกระแสได้สูงสุด 20 มิลลิแอมป์ (mA) (ในวิดีโอที่ 03:30) ซึ่งเพียงพอสำหรับ LED วงจรลอจิก และเซนเซอร์หลายตัว แต่ไม่เพียงพอสำหรับอุปกรณ์ที่ใช้กระแสสูง เช่น มอเตอร์หรือเซอร์โวกำลังสูง สำหรับอุปกรณ์เหล่านั้น คุณควรใช้พิน 5V หลักหรือแหล่งจ่ายไฟภายนอกเสมอ

ฮาร์ดแวร์และคอมโพเนนต์

สำหรับการสาธิตนี้ คุณจะต้องมีคอมโพเนนต์ต่อไปนี้:

  • บอร์ด Arduino 1 ตัว (Uno, Nano หรือที่คล้ายกัน)
  • LED 1 ดวง (สีใดก็ได้)
  • ตัวต้านทาน 1kΩ 1 ตัว
  • เบรดบอร์ด 1 ตัว
  • สายจัมเปอร์
  • (ไม่บังคับ) จอ LCD 1602 หรือโมดูลรีเลย์สำหรับการสาธิต

คู่มือการเดินสายไฟ

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

นี่คือวิธีการตั้งค่า:

  1. เชื่อมต่อ LED: เชื่อมต่อขั้วแอโนด (ขาที่ยาวกว่า) ของ LED เข้ากับพินดิจิทัล 5 บน Arduino ของคุณผ่านตัวต้านทานจำกัดกระแส 1kΩ
  2. เชื่อมต่อกราวด์: เชื่อมต่อขั้วแคโทด (ขาที่สั้นกว่า) ของ LED โดยตรงกับพินดิจิทัล 2 บน Arduino ของคุณ

วงจรง่ายๆ นี้ทำให้พิน 5 ทำหน้าที่เป็นแหล่งจ่าย 5V และพิน 2 ทำหน้าที่เป็นกราวด์ ทำให้วงจรสมบูรณ์ (ในวิดีโอที่ 06:05)

สำหรับวิธีการที่ปรับขนาดได้มากขึ้น คุณสามารถใช้เบรดบอร์ดเพื่อกระจายพลังงาน ตามที่แสดงในวิดีโอ โดยการเชื่อมต่อรางจ่ายไฟสีแดงของเบรดบอร์ดเข้ากับพิน 5 และรางกราวด์สีน้ำเงิน/ดำเข้ากับพิน 2 คุณสามารถจ่ายไฟให้หลายคอมโพเนนต์ได้อย่างง่ายดายโดยการเสียบเข้ากับรางที่เกี่ยวข้อง (ในวิดีโอที่ 06:59)

คำอธิบายโค้ด

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

นี่คือส่วนของโค้ดที่ผู้ใช้สามารถกำหนดค่าได้:

#define VCC2  5 // กำหนดพิน 5 หรือพินดิจิทัลอื่นๆ ที่นี่เป็น VCC2
#define GND2  2 // กำหนดพิน 2 หรือพินดิจิทัลอื่นๆ เป็นกราวด์ 2

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

โค้ดที่เหลือเป็นเพียงตรรกะการเริ่มต้นภายในฟังก์ชัน setup() โดยจะตั้งค่าพินที่กำหนดเป็น VCC2 ให้เป็น OUTPUT แล้วเขียนค่า HIGH ซึ่งจะจ่ายไฟ 5V ในทางกลับกัน จะตั้งค่าพินที่กำหนดเป็น GND2 ให้เป็น OUTPUT และเขียนค่า LOW ซึ่งทำให้พินนั้นทำหน้าที่เป็นจุดต่อกราวด์ เมื่อทำเสร็จใน setup() แล้ว พินเหล่านี้จะคงสถานะไว้ตลอดเวลาที่ Arduino ได้รับไฟ และคุณสามารถเพิ่มตรรกะโปรแกรมหลักของคุณลงในฟังก์ชัน loop() ได้

การสาธิตโปรเจกต์จริง

ในวิดีโอ ผู้สอนสาธิตแนวคิดนี้โดยการโหลดโค้ดลงบน Arduino เมื่ออัปโหลดเสร็จ LED ที่เชื่อมต่อระหว่างพิน 5 และพิน 2 จะติดขึ้นทันที ซึ่งพิสูจน์ว่าพิน 5 จ่ายแรงดันไฟฟ้า และพิน 2 รับกระแสเป็นกราวด์ เพื่อให้เห็นภาพชัดเจนยิ่งขึ้น เขาแสดงให้เห็นว่าการย้ายขาต่อไฟของ LED ไปยังพินดิจิทัลอื่นที่ไม่ได้ตั้งค่าไว้ LED จะไม่ติด เนื่องจากพินนั้นไม่ได้ถูกตั้งค่าให้จ่ายไฟ 5V (ในวิดีโอที่เวลา 06:37)

การสาธิตยังรวมถึงตัวอย่างเชิงปฏิบัติโดยใช้เบรดบอร์ด โดยการเชื่อมต่อพิน 5V เข้ากับรางไฟของเบรดบอร์ด และพินกราวด์เข้ากับรางกราวด์ เขาสามารถจ่ายไฟให้กับจอแสดงผล LCD 1602 และโมดูลรีเลย์พร้อมกันได้ ซึ่งแสดงให้เห็นว่าคุณสามารถใช้เทคนิคนี้เพื่อสร้างบัสจ่ายไฟเฉพาะขนาดเล็กสำหรับชิ้นส่วนที่ใช้กระแสต่ำของคุณ ทำให้การเดินสายไฟสะอาดและเป็นระเบียบ (ในวิดีโอที่เวลา 06:59)

บทสรุป

บทเรียนนี้ให้เคล็ดลับที่เรียบง่ายแต่ทรงพลังในการขยายความสามารถของบอร์ด Arduino ของคุณ โดยการกำหนดพินดิจิทัลใหม่เป็นแหล่งจ่ายไฟ คุณสามารถแก้ปัญหาทั่วไปเกี่ยวกับการมีพิน 5V และ GND ที่จำกัดได้ อย่าลืมข้อจำกัดสำคัญที่ 20mA ต่อพิน และคุณสามารถจ่ายไฟให้กับเซนเซอร์และโมดูลขนาดเล็กต่างๆ ในโปรเจกต์ในอนาคตของคุณได้อย่างปลอดภัย

บทต่างๆ

  • [00:00] บทนำและภาพรวมของพิน 5V
  • [00:54] ทำความเข้าใจหัว ICSP และพิน SPI
  • [01:55] ข้อจำกัดกระแสตามแหล่งจ่ายไฟ
  • [03:30] ข้อจำกัดกระแสของพินดิจิทัลและกรณีการใช้งาน
  • [04:51] คำอธิบายโค้ดสำหรับสร้าง 5V และ GND เพิ่มเติม
  • [06:05] การสาธิตการเดินสายไฟด้วย LED
  • [06:59] การขยายขนาดด้วยการกระจายไฟบนเบรดบอร์ด

ภาพ

Arduino UNO R3 compatible development board
Arduino UNO R3 compatible development board
538-Lesson 7: Getting Additional 5V and GND from Arduino
ภาษา: C++
/*
 * S01-07 Additional 5V or GND pin.
If your Arduino board voltage is 3.3V, then we will get 3.3V and GND pin

 * Arduino Sketch to give you extra 5V pin from Arduino
  Please watch video instruction here https://youtu.be/pQKrl5Kpi50
 This code is available at http://robojax.com/course1/?vid=lecture07

with over 100 lectures Free On YouTube. Watch it here http://robojax.com/L/?id=338
Get the code for the course: http://robojax.com/L/?id=339 
 * Written by Ahmad Shamshiri for Robojax, robojax.com http://youtube.com/robojaxTV
 * on Jan 01, 2019 at 08:54 in Ajax, Ontario, Canada
 * 
 */
#define VCC2  5 // define pin 5 or any other digital pin here as VCC2
#define GND2  2 // define pin 2 or any other digital pin as Ground 2

void setup() {
    
  pinMode(VCC2,OUTPUT);//define a digital pin as output
  digitalWrite(VCC2, HIGH);// set the above pin as HIGH so it acts as 5V

  pinMode(GND2,OUTPUT);//define a digital pin as output
  digitalWrite(GND2, LOW);// set the above pin as LOW so it acts as Ground  

}

void loop() {
	//Robojax Step By Step Arduino Course http://robojax.com/L/?id=338


}

แหล่งข้อมูลและเอกสารอ้างอิง

ไฟล์📁

ไม่มีไฟล์ที่พร้อมใช้งาน