Bài 07: Lấy thêm nguồn 5V và GND từ Arduino | Khóa học Arduino Từng Bước
Trong bài học này từ Khóa học Arduino Từng Bước của Robojax, chúng ta khám phá một giải pháp thực tế cho một vấn đề phổ biến: hết các chân kết nối 5V và GND trên bo mạch Arduino của bạn. Cho dù bạn đang xây dựng một dự án yêu cầu cấp nguồn cho động cơ servo, màn hình LCD, cảm biến siêu âm hay sự kết hợp của nhiều thiết bị, số lượng chân nguồn hạn chế trên Arduino Uno hoặc Nano có thể nhanh chóng trở thành điểm nghẽn. Hướng dẫn này trình bày cách sử dụng sáng tạo bất kỳ chân I/O kỹ thuật số nào như một nguồn 5V bổ sung hoặc như một kết nối mass, cung cấp cho bạn sự linh hoạt để cấp nguồn cho nhiều linh kiện mà không cần nguồn điện bên ngoài cho các thiết bị dòng điện thấp.
Kỹ thuật này đặc biệt hữu ích cho một số ứng dụng thực tế, bao gồm:
- Cấp nguồn cho màn hình OLED hoặc LCD nhỏ cùng với động cơ servo trong một dự án duy nhất.
- Cấp nguồn đồng thời cho nhiều cảm biến, chẳng hạn như cảm biến siêu âm và cảm biến chuyển động PIR.
- Tạo các thiết lập thử nghiệm tạm thời trên breadboard khi bạn cần nguồn điện nhanh chóng và dễ dàng cho một mô-đun mới.
- Điều khiển các đèn LED công suất thấp hoặc các mạch mức logic yêu cầu tham chiếu 5V sạch.
Hiểu về Giới hạn Nguồn của Arduino
Trước khi đi sâu vào giải pháp, điều quan trọng là phải hiểu kiến trúc nguồn của bo mạch Arduino của bạn. Trên một Arduino Uno tiêu chuẩn, bạn thường chỉ có một chân 5V chuyên dụng duy nhất. Một số bo mạch của bên thứ ba, như đã lưu ý trong video, có thể có chân 5V thứ hai, nhưng ngay cả khi đó, bạn có thể cần nhiều hơn (trong video ở phút 00:26).
Lượng dòng điện bạn có thể lấy từ các chân này phụ thuộc vào nguồn điện của bạn. Nếu bạn cấp nguồn cho bo mạch qua USB, dòng điện bị giới hạn bởi cổng USB hoặc bộ sạc bạn đang sử dụng—ví dụ: bộ sạc 1A sẽ cho phép tối đa 1A, trong khi bộ sạc 2.4A sẽ cho phép nhiều hơn (trong video ở phút 01:55). Nếu bạn sử dụng jack cắm trụ với nguồn 7-12V, dòng điện được điều chỉnh bởi chip điều chỉnh điện áp AMS1117 trên bo mạch, có giới hạn dòng điện điển hình là 1.1A (trong video ở phút 02:20).
Cũng cần lưu ý đến đầu nối ICSP trên bo mạch. Như được giải thích trong video, đầu nối này cung cấp quyền truy cập vào các chân SPI (Giao diện ngoại vi nối tiếp), và chân ở phía bên phải thực sự là VCC (5V), trong khi chân cuối cùng là GND (trong video ở phút 00:54). Điều này cung cấp cho bạn một vị trí vật lý khác để kết nối vào thanh nguồn 5V.
Tuy nhiên, giới hạn quan trọng nhất cần nhớ là đối với các chân I/O kỹ thuật số. Theo tài liệu chính thức của Arduino, mỗi chân kỹ thuật số có thể cung cấp hoặc tiêu thụ tối đa 20 milliamp (mA) (trong video ở phút 03:30). Điều này là quá đủ cho đèn LED, mạch logic và nhiều cảm biến, nhưng không đủ cho các thiết bị dòng điện cao như động cơ hoặc servo công suất lớn. Đối với những thiết bị đó, bạn nên luôn sử dụng chân 5V chính hoặc nguồn điện bên ngoài.
Phần cứng và Linh kiện
Đối với phần trình diễn này, bạn sẽ cần các linh kiện sau:
- 1x Bo mạch Arduino (Uno, Nano hoặc tương tự)
- 1x Đèn LED (bất kỳ màu nào)
- 1x Điện trở 1kΩ
- 1x Breadboard
- Dây nối
- (Tùy chọn) Màn hình LCD 1602 hoặc mô-đun rơ-le để trình diễn
Hướng dẫn Đấu dây
Việc đấu dây cho dự án này rất đơn giản, vì nó chủ yếu liên quan đến việc kết nối một chân kỹ thuật số với thanh nguồn của linh kiện và một chân kỹ thuật số khác với mass của nó. Trong video, giảng viên trình diễn điều này bằng cách cấp nguồn cho một đèn LED.
Dưới đây là cách thiết lập:
- Kết nối đèn LED: Kết nối cực dương (chân dài hơn) của đèn LED với chân kỹ thuật số 5 trên Arduino của bạn thông qua điện trở giới hạn dòng 1kΩ.
- Kết nối Mass: Kết nối cực âm (chân ngắn hơn) của đèn LED trực tiếp với chân kỹ thuật số 2 trên Arduino của bạn.
Mạch đơn giản này cho phép chân 5 hoạt động như nguồn 5V và chân 2 hoạt động như mass, hoàn thành mạch điện (trong video ở phút 06:05).
Đối với cách tiếp cận có thể mở rộng hơn, bạn có thể sử dụng breadboard để phân phối nguồn, như được hiển thị trong video. Bằng cách kết nối thanh nguồn màu đỏ của breadboard với chân 5 và thanh mass màu xanh/đen với chân 2, bạn có thể dễ dàng cấp nguồn cho nhiều linh kiện bằng cách cắm chúng vào các thanh tương ứng (trong video ở phút 06:59).
Giải thích Mã
Mã được cung cấp cho bài học này cực kỳ đơn giản, vì mục đích duy nhất của nó là cấu hình hai chân kỹ thuật số để hoạt động như các chân cấp nguồn. Chìa khóa cho chức năng này nằm ở hai hằng số cấu hình được định nghĩa ở đầu sketch.
Dưới đây là phần có thể tùy chỉnh của mã:
#define VCC2 5 // định nghĩa chân 5 hoặc bất kỳ chân kỹ thuật số nào khác ở đây là VCC2
#define GND2 2 // định nghĩa chân 2 hoặc bất kỳ chân kỹ thuật số nào khác là Ground 2
Hai dòng này là cốt lõi của việc tùy chỉnh. Chỉ thị #define là một lệnh tiền xử lý yêu cầu trình biên dịch Arduino thay thế mọi trường hợp của VCC2 bằng số 5 và mọi trường hợp của GND2 bằng số 2 trước khi mã được biên dịch. Điều này giúp việc thay đổi chân bạn đang sử dụng cho nguồn trở nên cực kỳ dễ dàng. Nếu bạn muốn sử dụng chân 8 làm nguồn 5V, bạn chỉ cần thay đổi 5 thành 8 trong dòng đầu tiên. Tương tự, bạn có thể thay đổi chân mass bằng cách chỉnh sửa dòng thứ hai.
Phần còn lại của mã chỉ là logic khởi tạo trong hàm setup(). Nó đặt chân được định nghĩa là VCC2 thành OUTPUT và sau đó ghi nó ở mức HIGH, tức là xuất ra 5V. Ngược lại, nó đặt chân được định nghĩa là GND2 thành OUTPUT và ghi nó ở mức LOW, khiến nó hoạt động như một kết nối mass. Sau khi hoàn tất việc này trong setup(), các chân sẽ duy trì trạng thái của chúng trong suốt thời gian Arduino được cấp nguồn, và bạn có thể thêm logic chương trình chính của mình vào hàm loop().
Trình Diễn Dự Án Trực Tiếp
Trong video, giảng viên trình bày khái niệm bằng cách nạp mã lên Arduino. Sau khi tải lên, đèn LED kết nối giữa chân 5 và chân 2 ngay lập tức sáng, chứng minh rằng chân 5 đang cấp điện áp và chân 2 đang hút dòng như một mass. Để minh họa rõ hơn, ông cho thấy rằng việc chuyển kết nối nguồn của đèn LED sang một chân kỹ thuật số khác chưa được cấu hình sẽ khiến đèn LED không sáng, vì chân đó không được đặt để xuất ra 5V (trong video tại 06:37).
Phần trình diễn cũng bao gồm một ví dụ thực tế sử dụng breadboard. Bằng cách kết nối chân 5V với thanh nguồn của breadboard và chân mass với thanh mass, ông cấp nguồn đồng thời cho màn hình LCD 1602 và một mô-đun rơ-le. Điều này cho thấy cách bạn có thể sử dụng kỹ thuật này để tạo ra một bus phân phối nguồn nhỏ chuyên dụng cho các linh kiện dòng điện thấp của mình, giữ cho dây nối gọn gàng và có tổ chức (trong video tại 06:59).
Kết Luận
Bài học này cung cấp một mẹo đơn giản nhưng mạnh mẽ để mở rộng khả năng của bo mạch Arduino. Bằng cách định nghĩa lại các chân kỹ thuật số làm nguồn điện, bạn có thể giải quyết vấn đề phổ biến về số lượng kết nối 5V và GND hạn chế. Hãy nhớ giới hạn quan trọng là 20mA cho mỗi chân, và bạn có thể an toàn cấp nguồn cho nhiều loại cảm biến và mô-đun nhỏ trong các dự án tương lai của mình.
Các Chương
- [00:00] Giới thiệu và Tổng quan về Chân 5V
- [00:54] Hiểu về Đầu nối ICSP và Chân SPI
- [01:55] Giới hạn Dòng điện Dựa trên Nguồn Cấp
- [03:30] Giới hạn Dòng điện của Chân Kỹ thuật số và Các Trường hợp Sử dụng
- [04:51] Giải thích Mã để Tạo Thêm 5V và GND
- [06:05] Trình Diễn Đấu Dây với Đèn LED
- [06:59] Mở Rộng với Phân Phối Nguồn trên Breadboard
/*
* 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
}
Tài nguyên & tài liệu tham khảo
-
Bên ngoài
-
Bên ngoài
-
Bên ngoài
-
Nội bộ
Tập tin📁
Không có tệp nào khả dụng.