레슨 07: 아두이노에서 추가 5V 및 GND 얻기 | 아두이노 단계별 과정
이 Robojax Arduino 단계별 강좌의 이번 레슨에서는 Arduino 보드에서 5V 및 GND 연결이 부족해지는 일반적인 문제에 대한 실용적인 해결책을 살펴봅니다. 서보 모터, LCD 디스플레이, 초음파 센서 또는 여러 장치의 조합에 전원을 공급해야 하는 프로젝트를 구축하는 경우, Arduino Uno 또는 Nano의 제한된 전원 핀 수는 빠르게 병목 현상이 될 수 있습니다. 이 가이드는 모든 디지털 I/O 핀을 추가 5V 소스 또는 접지 연결로 창의적으로 사용하는 방법을 보여주며, 저전류 장치에 외부 전원 공급 장치 없이 여러 구성 요소에 전원을 공급할 수 있는 유연성을 제공합니다.
이 기술은 다음과 같은 여러 실제 응용 분야에서 특히 유용합니다:
- 단일 프로젝트에서 서보 모터와 함께 소형 OLED 또는 LCD 디스플레이에 전원 공급.
- 초음파 센서와 PIR 모션 감지기와 같은 여러 센서에 동시에 전원 공급.
- 새 모듈을 위한 빠르고 쉬운 전원 소스가 필요한 브레드보드에서 임시 테스트 설정 생성.
- 깨끗한 5V 기준 전압이 필요한 저전력 LED 또는 로직 레벨 회로 구동.
Arduino 전원 제한 이해
해결책을 살펴보기 전에 Arduino 보드의 전원 아키텍처를 이해하는 것이 중요합니다. 표준 Arduino Uno에는 일반적으로 전용 5V 핀이 하나만 있습니다. 비디오에서 언급했듯이 일부 타사 보드에는 두 번째 5V 핀이 있을 수 있지만, 그 경우에도 더 많은 핀이 필요할 수 있습니다(비디오 00:26 참조).
이러한 핀에서 끌어올 수 있는 전류량은 전원 소스에 따라 다릅니다. USB로 보드에 전원을 공급하는 경우 전류는 사용 중인 USB 포트 또는 충전기에 의해 제한됩니다. 예를 들어 1A 충전기는 최대 1A를 허용하고 2.4A 충전기는 더 많은 전류를 허용합니다(비디오 01:55 참조). 7-12V 공급 장치와 함께 배럴 잭을 사용하는 경우 전류는 일반적인 전류 제한이 1.1A인 온보드 AMS1117 전압 조정기 칩에 의해 조절됩니다(비디오 02:20 참조).
보드의 ICSP 헤더도 중요합니다. 비디오에서 설명했듯이 이 헤더는 SPI(직렬 주변 장치 인터페이스) 핀에 대한 액세스를 제공하며, 오른쪽의 핀은 실제로 VCC(5V)이고 마지막 핀은 GND입니다(비디오 00:54 참조). 이는 5V 레일에 연결할 수 있는 또 다른 물리적 위치를 제공합니다.
그러나 기억해야 할 가장 중요한 제한은 디지털 I/O 핀에 대한 것입니다. 공식 Arduino 문서에 따르면 각 디지털 핀은 최대 20밀리암페어(mA)를 공급하거나 흡수할 수 있습니다(비디오 03:30 참조). 이는 LED, 로직 회로 및 많은 센서에 충분하지만 모터나 고전력 서보와 같은 고전류 장치에는 부족합니다. 이러한 장치에는 항상 기본 5V 핀이나 외부 전원 소스를 사용해야 합니다.
하드웨어 및 구성 요소
이 데모에는 다음 구성 요소가 필요합니다:
- 1x Arduino 보드(Uno, Nano 또는 유사 제품)
- 1x LED(모든 색상)
- 1x 1kΩ 저항
- 1x 브레드보드
- 점퍼 와이어
- (선택 사항) 데모용 LCD 1602 디스플레이 또는 릴레이 모듈
배선 가이드
이 프로젝트의 배선은 주로 디지털 핀을 구성 요소의 전원 레일에 연결하고 다른 디지털 핀을 접지에 연결하는 것이므로 간단합니다. 비디오에서 강사는 LED에 전원을 공급하여 이를 시연합니다.
설정 방법은 다음과 같습니다:
- LED 연결: LED의 양극(긴 다리)을 1kΩ 전류 제한 저항을 통해 Arduino의 디지털 핀 5에 연결합니다.
- 접지 연결: LED의 음극(짧은 다리)을 Arduino의 디지털 핀 2에 직접 연결합니다.
이 간단한 회로는 핀 5가 5V 소스 역할을 하고 핀 2가 접지 역할을 하여 회로를 완성합니다(비디오 06:05 참조).
더 확장 가능한 접근 방식을 위해 비디오에 표시된 대로 브레드보드를 사용하여 전원을 분배할 수 있습니다. 브레드보드의 빨간색 전원 레일을 핀 5에 연결하고 파란색/검은색 접지 레일을 핀 2에 연결하면 각각의 레일에 구성 요소를 연결하여 여러 구성 요소에 쉽게 전원을 공급할 수 있습니다(비디오 06:59 참조).
코드 설명
이 레슨에서 제공되는 코드는 두 개의 디지털 핀을 전원 공급 핀으로 구성하는 것만이 목적이므로 매우 간단합니다. 이 기능의 핵심은 스케치 상단에 정의된 두 개의 구성 상수에 있습니다.
다음은 코드의 사용자 구성 가능 부분입니다:
#define VCC2 5 // 여기서 핀 5 또는 다른 디지털 핀을 VCC2로 정의
#define GND2 2 // 여기서 핀 2 또는 다른 디지털 핀을 Ground 2로 정의
이 두 줄은 사용자 정의의 핵심입니다. #define 지시문은 코드가 컴파일되기 전에 VCC2의 모든 인스턴스를 숫자 5로, GND2의 모든 인스턴스를 숫자 2로 대체하도록 Arduino 컴파일러에 지시하는 전처리기 명령입니다. 이는 전원에 사용하는 핀을 매우 쉽게 변경할 수 있게 해줍니다. 핀 8을 5V 소스로 사용하려면 첫 번째 줄의 5를 8로 변경하기만 하면 됩니다. 마찬가지로 두 번째 줄을 편집하여 접지 핀을 변경할 수 있습니다.
나머지 코드는 setup() 함수 내의 초기화 로직일 뿐입니다. VCC2로 정의된 핀을 OUTPUT으로 설정한 다음 HIGH로 작성하여 5V를 출력합니다. 반대로 GND2로 정의된 핀을 OUTPUT으로 설정하고 LOW로 작성하여 접지 연결 역할을 하게 합니다. setup()에서 이 작업이 완료되면 Arduino에 전원이 공급되는 동안 핀은 상태를 유지하며, loop() 함수에 메인 프로그램 로직을 추가할 수 있습니다.
실시간 프로젝트 시연
비디오에서 강사는 코드를 Arduino에 업로드하여 개념을 시연합니다. 업로드가 완료되면 핀 5와 핀 2 사이에 연결된 LED가 즉시 켜지며, 핀 5가 전압을 공급하고 핀 2가 접지로 전류를 흡수한다는 것을 증명합니다. 이 점을 더 설명하기 위해, LED의 전원 연결을 설정되지 않은 다른 디지털 핀으로 옮기면 해당 핀이 5V를 출력하도록 설정되지 않았기 때문에 LED가 켜지지 않음을 보여줍니다 (비디오 06:37).
시연에는 브레드보드를 사용한 실용적인 예제도 포함됩니다. 5V 핀을 브레드보드의 전원 레일에 연결하고 접지 핀을 접지 레일에 연결하여 1602 LCD 디스플레이와 릴레이 모듈을 동시에 전원 공급합니다. 이는 이 기술을 사용하여 저전류 부품을 위한 작고 전용 전원 분배 버스를 만들어 배선을 깔끔하고 체계적으로 유지할 수 있는 방법을 보여줍니다 (비디오 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
}
자원 및 참고자료
파일📁
파일이 없습니다.