บทเรียน 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
นี่คือวิธีการตั้งค่า:
- เชื่อมต่อ LED: เชื่อมต่อขั้วแอโนด (ขาที่ยาวกว่า) ของ LED เข้ากับพินดิจิทัล 5 บน Arduino ของคุณผ่านตัวต้านทานจำกัดกระแส 1kΩ
- เชื่อมต่อกราวด์: เชื่อมต่อขั้วแคโทด (ขาที่สั้นกว่า) ของ 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] การขยายขนาดด้วยการกระจายไฟบนเบรดบอร์ด
/*
* 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
}
แหล่งข้อมูลและเอกสารอ้างอิง
-
ภายนอก
-
ภายนอก
-
ภายนอก
-
ภายใน
ไฟล์📁
ไม่มีไฟล์ที่พร้อมใช้งาน