ESP8266 핀배열 | ESP8266 Pinout

ESP8266은 필요에 따라 상당수의 GPIO 핀을 사용할 수 있는 이점을 제공합니다. 하지만, 핀 배치 세부 사항에 주의 깊게 주의를 기울이는 것이 중요합니다. ESP8266의 모든 GPIO 핀이 사용하기에 안전한 것은 아닙니다.

아래에서 제공된 핀아웃 참조는 널리 사용되는 30핀 ESP8266 NodeMCU 개발 보드에 해당한다는 점을 언급하는 것이 중요합니다.

esp8266 nodemcu dev board

ESP8266 주변 장치 및 입출력

ESP8266 NodeMCU는 핀 헤더를 통해 개발 보드의 양쪽에 분산된 총 17개의 GPIO 핀을 자랑합니다. 이 핀들은 다재다능하며 다양한 주변장치 기능을 할당할 수 있습니다. 포함:

  • 9개의 디지털 입력/출력 핀:
  • 1개의 ADC 채널: 10비트 정밀도 SAR ADC를 갖춘 단일 채널 제공.
  • 2개의 UART 인터페이스: 흐름 제어를 지원하는 두 개의 UART 인터페이스를 특징으로 함.
  • 4개의 PWM 출력: 모터 속도나 LED 밝기와 같은 측면을 조절하기 위해 네 개의 PWM 핀을 제공.
  • 2개의 SPI: 다양한 센서 및 주변 기기에 연결하기 위한 두 개의 SPI 인터페이스를 갖춤.
  • 1개의 I2C: 다양한 센서 및 주변 기기에 연결하기 위한 하나의 I2C 인터페이스를 포함.
  • 1개의 I2S: 프로젝트에 사운드를 포함하기 위한 하나의 I2S 인터페이스를 포함.

ESP8266 핀배열

ESP8266 NodeMCU는 사용자 친화적인 기능성을 위해 조직된 총 30개의 핀을 자랑합니다. 아래의 핀 배치도를 확인하여 레이아웃을 탐색해 보세요:

ESP8266 NodeMCU NodeMCU Pinout

이제 ESP8266의 개별 핀들에 대해 알아보고 그들의 특정 기능들을 파헤쳐 보겠습니다.

디지털 입력/출력 핀

ESP8266 NodeMCU 보드의 30개 핀 중에서 디지털 입력/출력을 위해 9개 핀을 사용할 수 있습니다. 이 9개 핀 중에서 5개 핀은 안전하게 사용할 수 있으며, 다른 4개 핀도 디지털 입력/출력으로 사용할 수 있지만 주의해서 사용해야 합니다.

ESP8266 NodeMCU 보드의 30핀 중에서 9핀은 디지털 입력/출력 용도로 사용할 수 있습니다. 자세히 말하자면:

  • 5개의 핀은 디지털 입력/출력 핀으로 안전하게 사용할 수 있습니다.
  • 4개의 핀도 디지털 입력/출력 핀으로 사용할 수 있지만, 주의해서 다뤄야 합니다.
  • 9개의 모든 핀은 내부(칩 내부) 풀업 또는 풀다운으로 구성하거나, 고임피던스로 설정할 수 있습니다.

아래 표는 안전하게 사용할 수 있는 핀과 주의해서 사용해야 할 핀을 보여줍니다.

GPIO Pin Label Safe to use? Reason
GPIO16 D0
!
HIGH at boot, used to wake up from deep sleep
GPIO5 D1
GPIO4 D2
GPIO0 D3
!
connected to FLASH button, boot fails if pulled LOW. On-board 10k external pull-up resistor
GPIO2 D4
!
HIGH at boot, boot fails if pulled LOW. On-board 10k external pull-up resistor
GPIO14 D5
GPIO12 D6
GPIO13 D7
GPIO15 D8
!
Required for boot, boot fails if pulled HIGH. On-board 10k external pull-down resistor
GPIO3 RX
RX pin, used for flashing and debugging
GPIO1 TX
TX pin, used for flashing and debugging
GPIO6 CLK
Connected to Flash memory
GPIO7 SDO
Connected to Flash memory
GPIO11 CMD
Connected to Flash memory
GPIO8 SD1
Connected to Flash memory
GPIO9 SD2
Connected to Flash memory
GPIO10 SD3
Connected to Flash memory
ADC0 A0
Can be used as the analog input pin only.


Legend
These are your top-priority pins, absolutely safe for use. No concerns here.
!
Pay close attention because their behavior, particularly during boot, can be unpredictable. Also pay attention to their on-board external pull-up/pull-down resistors. Use them only when absolutely necessary.
These pins should NOT be used as digital input/output pins.

아래 이미지는 어떤 GPIO 핀을 디지털 입력/출력 핀으로 사용할 수 있는지 보여줍니다.

ESP8266 NodeMCU NodeMCU digital input/output pins

ESP8266 디지털 입력/출력 핀 프로그래밍 방법.

다음 함수들을 사용하여 ESP8266의 디지털 입력/출력 핀을 조작할 수 있습니다.

참고하시기 바랍니다. 코드에서 핀 라벨을 사용해야 합니다. 예를 들어, 핀 GPIO5 (D1):

void setup() { pinMode(D1, OUTPUT); // D1을 출력으로 설정한다. } void loop() { digitalWrite(D1, HIGH); // D1을 HIGH로 설정한다. (LED 켜기) delay(1000); // 1000밀리초 동안 대기 digitalWrite(D1, LOW); // D1을 LOW로 설정한다. (LED 끄기) delay(1000); // 1000밀리초 동안 대기 }

ESP8266의 디지털 입력 핀 사용 예:

ESP8266의 디지털 출력 핀 사용 예제:

ADC 핀들

ESP8266은 10비트 정밀도 아날로그-디지털 변환기(ADC)를 탑재하고 있어, 1024(2^10)개의 다른 아날로그 레벨을 구별할 수 있습니다. 기본적으로, 이는 0에서 3.3V 범위 (작동 전압) 내의 입력 전압을 0에서 1024까지의 정수 값으로 변환합니다. 따라서, 이 설정은 3.3 볼트를 1024 단위로 나눈 해상도, 즉 단위당 0.0032 볼트(3.2 mV)에 해당합니다.

ESP8266 NodeMCU NodeMCU ADC Pin

ESP8266에서 ADC 사용 예제 코드:

void setup() { Serial.begin(9600); } void loop() { int adc = analogRead(A0); Serial.println(adc); // 아날로그 읽기 값 }

ESP8266의 A0 핀을 사용하는 아날로그 센서 예시:

SPI 핀들

ESP8266은 슬레이브 및 마스터 모드에서 두 개의 SPI(SPI, HSPI)를 제공합니다. 이러한 SPI는 아래에 나열된 일반적인 SPI 기능을 지원합니다:

  • SPI 포맷 전송의 4 가지 타이밍 모드
  • 최대 80 MHz 및 80 MHz의 분할 클럭
  • 최대 64-바이트 FIFO
ESP8266 NodeMCU NodeMCU SPI Pins

ESP8266의 SPI 핀 사용 예시:

I2C 핀들

ESP8266은 내장된 I2C 핀이 없지만 '비트뱅킹'을 통해 여전히 작동시킬 수 있습니다. 그것은 잘 수행되며, ESP8266은 Arduino에서 기대하는 성능을 유지할 수 있을 만큼 충분히 빠릅니다.

기본적으로 GPIO4(SDA)와 GPIO5(SCL)는 기존의 아두이노 코드, 라이브러리 및 스케치를 사용하는 사람들을 위해 I2C 핀으로 설정되어 있어 사물을 간단하게 만듭니다.

그러나 Arduino IDE에서 wire.begin(SDA, SCL)을 사용함으로써 I2C에 대해 다른 두 개의 GPIO 핀을 자유롭게 선택할 수 있습니다.

ESP8266 NodeMCU NodeMCU I2C Pins

ESP8266의 I2C 핀 사용 예:

UART 핀

ESP8266은 UART0와 UART2, 두 개의 UART 인터페이스를 갖추고 있으며, 이는 최대 4.5 Mbps의 인상적인 속도로 비동기 통신(RS232 및 RS485)을 가능하게 합니다. 이 기능은 고속 데이터 전송 응용 프로그램에 매우 적합하게 만듭니다.

  • UART0(TXD0, RXD0, RST0, CTS0 핀)은 통신에 사용됩니다.
  • UART1(TXD1 핀)은 데이터 전송 신호만을 특징으로 하며, 일반적으로 로그를 출력하는 데 사용됩니다.
ESP8266 NodeMCU NodeMCU UART Pins

RXD0와 TXD0는 ESP 모듈의 시리얼 제어 및 부트로딩 핀으로서, 모듈과의 통신에서 중요한 역할을 합니다. 특히 부트로딩 과정에서 중요합니다. 따라서 이들은 USB-to-serial 변환기를 통해 연결되어 USB 트래픽을 받게 되므로, 사용 시 주의를 기울여야 합니다.

PWM 핀

ESP8266의 GPIO0부터 GPIO15까지 모든 GPIO 핀은 펄스 폭 변조(PWM) 출력을 생성하도록 프로그래밍할 수 있습니다.

ESP8266의 PWM 신호는 10비트 해상도를 자랑하며, 출력에 대한 정밀한 제어를 가능하게 합니다. 또한, PWM 주파수 범위는 1000μs에서 10000μs까지 사용자 정의가 가능하며, 이는 100Hz에서 1kHz 사이의 유연한 주파수 범위에 해당합니다. 이러한 적응성은 다양한 PWM 설정이 필요한 폭넓은 응용 프로그램에 적합합니다.

전원 핀

  • VIN 핀은 규제된 5V 전원이 공급될 때 ESP8266 및 그 주변 장치를 직접 전원으로 사용할 수 있는 편리한 옵션을 제공합니다.
  • 3V3 핀은 기판에 탑재된 전압 조절기로부터의 출력으로 기능하며, 600mA의 상당한 전류를 제공할 수 있습니다. 이는 연결된 장치와 구성 요소에 안정적인 전원을 공급하는 믿을 수 있는 원천으로 만듭니다.
  • GND는 접지 핀으로 기능하여 ESP8266 및 연결된 장치의 전기적 참조점을 설정합니다. 이는 시스템에 공통 접지를 보장하여 안정적이고 적절한 전기 연결을 유지합니다.

인터럽트 핀

ESP8266의 GPIO16을 제외한 모든 GPIO(General Purpose Input/Output)는 인터럽트로 설정이 가능합니다.

이것은 GPIO0부터 GPIO15까지 각 GPIO가 인터럽트를 트리거하도록 설정될 수 있으며, ESP8266이 특정 이벤트나 입력 상태의 변화에 반응할 수 있게 한다는 것을 의미합니다. 그러나, GPIO16은 이러한 인터럽트 구성을 지원하지 않습니다. 인터럽트 사용의 이러한 유연성은 실시간 이벤트 처리와 외부 장치와의 상호 작용에서 ESP8266의 다재다능함을 향상시킵니다.

SDIO 핀

ESP8266은 SD 카드를 연결하기 위해 설계된 단일 슬레이브 SDIO(보안 디지털 입력/출력 인터페이스)를 장착하고 있습니다. 이는 4비트 25MHz의 SDIO v1.1과 4비트 50MHz의 SDIO v2.0을 모두 지원합니다.

이 기능은 ESP8266과 SD 카드의 원활한 통합을 가능하게 하여, 고속 데이터 전송 기능과 다양한 SDIO 버전과의 호환성을 제공합니다. SDIO v1.1이든 v2.0이든, ESP8266은 효율적으로 SD 카드를 연결하고 데이터에 접근하는 데 다양성을 제공합니다.

제어 핀

  • EN (CH_PD 또는 Chip Power Down으로도 알려져 있음) 핀은 ESP8266에 대한 활성화 핀으로 작용하며 기본적으로 높은 상태로 당겨집니다. HIGH로 설정되면 칩이 활성화되어 정상 작동을 허용합니다. 반대로 LOW로 당겨지면 칩이 비활성화되어 사실상 전원이 차단됩니다.
  • RST 핀은 ESP8266의 리셋 핀으로 작용하며 기본적으로 높은 상태로 당겨집니다. 잠깐 동안 접지로 당겨지면 ESP8266에 대한 리셋이 트리거되어, 보드상의 RST 버튼을 누르는 것과 유사합니다.
  • FLASH 핀은 ESP8266이 부트로더로 부팅할 지 여부를 결정하는 데 사용됩니다. 전원이 켜지는 동안 핀을 낮게 유지하면 보트로딩 프로세스가 시작되는데, 이는 보드상의 FLASH 버튼을 누르는 것과 유사합니다.
  • WAKE 핀은 저전력 상태에 있던 ESP8266을 깊은 수면 모드에서 깨우는 데 사용되어, 장치가 정상 작동을 재개할 수 있게 합니다.

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!