ESP32 PC817 옵토커플러: 12V/24V DC 입력 신호 모니터링

이 튜토리얼에서는 ESP32를 사용하여 12V 또는 24V 장치 - 밸브, 펌프, 히터, 기계 - 가 지금 실제로 동작하고 있는지 알아내는 방법을 안내합니다. ESP32와 전기적으로 전혀 연결되지 않은 PC817 옵토커플러 모듈을 통해 장치 자체의 전원을 감시하고, 그 결과를 시리얼 모니터에 출력합니다. 여러분의 신호에 맞는 3-5V, 12V 또는 24V 종류의 완성형 모듈을 사용하며, 입력 회로를 직접 만들고 싶은 분들을 위해 4핀 칩 단독 구성은 마지막에 따로 다룹니다.

준비물

1×38-pin ESP32 ESP-WROOM-32 Dev Module - Narrow 쿠팡 | 아마존
1×(또는) 38-pin ESP32 ESP-WROOM-32 Dev Module - Wide 쿠팡 | 아마존
1×(또는) 30-pin ESP32 ESP-WROOM-32 Dev Module - Wide 아마존
1×(또는) ESP32 Uno-form board 아마존
1×(또는) ESP32 S3 Uno-form board 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×PC817 Optocoupler Module - 3-5V input 아마존
1×PC817 Optocoupler Module - 12V input 아마존
1×브레드보드 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(옵션) DC 커넥터 전원 연결 잭 플러그 소켓 쿠팡 | 아마존
1×(추천) ESP32용 스크루 터미널 확장 보드 쿠팡 | 아마존
1×(추천) Breakout Expansion Board for ESP32 쿠팡 | 아마존
1×(추천) ESP32용 전원 분배기 쿠팡 | 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

모듈은 하나만 있으면 됩니다. 다음 섹션에서 설명하는 것처럼, 모니터링할 전압에 맞는 종류 하나만 구매하세요.

PC817 옵토커플러에 대하여

PC817은 4핀 옵토커플러로, 포토커플러 또는 옵토 아이솔레이터라고도 불립니다. 작은 검은색 패키지 안에는 적외선 LED가 절연 간극을 사이에 두고 포토트랜지스터와 마주 보고 있습니다. LED에 전류가 흐르면 그 빛이 트랜지스터를 켜므로, 신호가 전기가 아닌 빛으로 간극을 건너갑니다. 이것이 핵심 원리입니다: 칩의 양쪽이 전기적으로 분리된 상태를 유지하며, 바로 이 덕분에 3.3V ESP32가 전선 하나 공유하지 않고 12V 또는 24V 회로를 감시할 수 있습니다.

ESP32 프로젝트에서 PC817이 잘하는 두 가지 작업:

  • 24V 산업용 근접 센서나 PLC 출력을 감시하고 그 상태를 WiFi로 보고하기.
  • 12V 솔레노이드 밸브나 펌프 접촉기 코일에 현재 전원이 공급되고 있는지 알아내기.

두 경우 모두 ESP32는 자신의 3.3V 로직 레벨만 보게 되며, 12V 또는 24V 쪽은 절연 장벽 너머에 머물게 됩니다.

항목 값
절연 전압 5000 Vrms (1분)
입력 LED 순방향 전압(Vf) 일반적으로 약 1.2 V, 최대 1.4 V
입력 LED 순방향 전류(If) 연속 최대 20 mA, 정상 5-20 mA, 10 mA가 적당한 목표값
출력 컬렉터-이미터 전압(VCEO) 최대 35 V
출력 컬렉터 전류(IC) 최대 50 mA
컬렉터 전력 손실 150 mW
전류 전달비(CTR) 등급에 따라 50% ~ 600%
상승 시간 / 하강 시간 일반적으로 약 4 us / 약 3 us
동작 온도 -30 C ~ +100 C
패키지 4핀 DIP, 핀 1은 점이나 홈으로 표시

어떤 PC817 옵토커플러 모듈이 필요한가요?

PC817 옵토커플러 모듈에는 직렬 저항이 이미 장착되어 있으며, 이 저항은 하나의 입력 전압에 맞게 크기가 정해져 있습니다. 그래서 이 모듈은 어떤 전압이든 받아들이는 하나의 보드가 아니라 세 가지 별도 종류로 판매됩니다. 모니터링하려는 신호에 맞는 종류를 고르세요:

모니터링하려는 신호 구매할 모듈 종류
12V 라인 - 솔레노이드 밸브, 펌프 접촉기 코일, 자동차 액세서리 12V 모듈
24V 라인 - PLC 출력, 산업용 근접 센서, 기계 신호 24V 모듈
3.3V 또는 5V 로직 신호 - 다른 마이크로컨트롤러, 센서 보드, 내장된 제어 보드 3-5V 모듈

이 페이지에서 부품을 망가뜨릴 수 있는 구매 결정은 이것 하나뿐입니다. 24V 라인에 연결한 12V 모듈은 내부 LED에 의도한 전류의 약 두 배가 흐르게 되어 LED가 손상됩니다. 12V 라인에 연결한 24V 모듈은 반대의 문제가 있습니다: LED가 충분히 구동되지 않아 출력이 늦게 바뀌거나, 불안정하게 바뀌거나, 아예 바뀌지 않을 수 있습니다. 모듈을 쓰면 계산할 것이 없습니다 - 종류가 곧 저항이므로, 종류를 고르면 크기 선정도 끝납니다.

PC817 옵토커플러 모듈 핀아웃

같은 칩이 PC817 옵토커플러 절연 모듈이라는 완성품으로 1, 2, 4, 8채널 버전으로 판매됩니다. 보드에는 해당 종류에 맞는 직렬 저항, 보통 채널마다 상태 LED, 입력 쪽의 나사 단자, 출력 쪽의 헤더 핀이 있습니다:

  • 입력 쪽: +(또는 IN+) 및 -(또는 IN-) 나사 단자. 이 두 단자를 모니터링하려는 신호와 그 절연된 회로의 접지에 연결합니다. 해당 종류가 설계된 전압에서, 올바른 방향으로 연결해야 합니다.
  • 출력 쪽: VCC, GND, OUT(다채널 보드에서는 DO 또는 OUT1..OUTn) 헤더 핀. 이 VCC 핀은 ESP32의 3.3V 핀에, 이 GND 핀은 ESP32의 GND 핀에, 이 OUT 핀은 ESP32의 디지털 입력 핀에 연결합니다.
ESP32 pc817 옵토커플러 절연 모듈 핀아웃

이 프로젝트에는 모듈 형태를 권장합니다. 저항이 이미 해당 종류의 전압에 맞게 되어 있고, 나사 단자는 브레드보드보다 굵은 현장 배선을 훨씬 잘 고정하며, 보드의 LED로 코드를 보지 않고도 입력 상태를 확인할 수 있습니다.

모듈이 액티브 LOW인지 액티브 HIGH인지 알아내기

ESP32 핀은 내부 풀업 저항을 사용하므로 스스로 HIGH 상태에 있으며, 무언가가 이를 LOW로 끌어내려야 합니다. 칩 단독 구성에서는 그 무언가가 포토트랜지스터이며, 결과는 물리 법칙으로 정해져 있습니다:

  • 외부 신호가 있으면 LED가 켜지고, 트랜지스터가 도통하며, ESP32 핀은 LOW로 읽힙니다.
  • 외부 신호가 없으면 LED가 꺼지고, 트랜지스터가 꺼지며, ESP32 핀은 HIGH로 읽힙니다.

모듈은 이야기가 다르며, 여기서 저녁 시간을 날리기 쉽습니다. 어떤 제조사는 포토트랜지스터를 OUT 핀으로 바로 연결하여 위와 정확히 같은 액티브 LOW 동작을 합니다. 다른 제조사는 보드에 반전 단을 추가하여 OUT이 입력을 그대로 따라가게 하므로, 신호가 있을 때 HIGH로 읽힙니다. 두 종류 모두 판매되며, 제품 사진으로는 구별할 수 없고, 판매 정보에도 어느 쪽인지 거의 나와 있지 않습니다. 그러니 짐작하지 말고 직접 확인하세요. 테스트는 1분도 걸리지 않습니다:

  • 아래와 같이 모듈을 배선하고, 액티브 LOW 모듈용으로 설정된 이 페이지의 스케치를 업로드합니다.
  • 입력 단자를 연결하지 않은 상태로 두고 시리얼 모니터에 출력되는 내용을 읽습니다. 이것이 유휴 상태입니다.
  • 입력 단자에 신호를 인가하고 이번에는 무엇이 출력되는지 읽습니다.
  • 신호가 있는 동안 핀이 보고하는 값이 여러분 모듈의 액티브 레벨입니다. 신호를 인가했을 때 시리얼 모니터가 idle에서 LIVE로 바뀌면 모듈은 액티브 LOW이며 스케치는 이미 맞게 되어 있습니다. 반대로 동작한다면 모듈은 액티브 HIGH입니다.
  • 모듈 자체의 상태 LED가 교차 확인 수단입니다. 입력 쪽에 전원이 들어올 때마다 켜지기 때문입니다. LED는 켜져 있는데 시리얼 모니터가 여전히 idle이라고 한다면, 배선 문제가 아니라 액티브 HIGH 모듈이라는 뜻입니다.

다른 종류로 밝혀져도 다시 작성할 것은 없습니다. 스케치는 파일 맨 위에 MODULE_ACTIVE_LOW라는 상수 하나를 두고 있습니다. 이 값을 false로 설정하고 다시 업로드하면, 프로그램의 모든 측정값이 함께 반전됩니다.

절연 규칙

12V 또는 24V 회로의 접지를 ESP32의 GND에 연결하지 마세요. 모듈에서는 - 입력 단자가 현장 쪽에 머물러야 하며 절대로 모듈의 GND 핀과 만나면 안 된다는 뜻입니다. 두 접지는 반드시 분리되어 있어야 합니다. 그 분리가 바로 PC817을 회로에 넣는 이유입니다: 24V 쪽의 고장이 ESP32에 전달되는 것을 막아줍니다. 접지를 서로 묶으면 PC817은 여전히 스위칭되고 코드도 여전히 동작하지만, 절연 기능은 사라지고 보드가 다시 위험에 노출됩니다.

안전한 ESP32 GPIO 핀 선택하기

ESP32는 3.3V 보드이며 GPIO 핀은 5V를 견디지 못하므로, PC817 모듈의 출력 쪽은 반드시 3.3V 핀에서 전원을 공급해야 하며 절대 5V/VIN 핀을 사용하면 안 됩니다. 이 프로젝트에서 중요한 ESP32 전용 규칙이 두 가지 더 있습니다:

  • 입력 전용 핀인 GPIO34, GPIO35, GPIO36, GPIO39는 피하세요. 이 핀들에는 내부 풀업 저항이 없으므로 INPUT_PULLUP이 아무 효과가 없고 PC817 출력이 플로팅 상태가 됩니다. 꼭 이 핀 중 하나를 써야 한다면, 핀과 3.3V 사이에 외부 10 kohm 저항을 직접 추가해야 합니다.
  • 스트래핑 핀인 GPIO0, GPIO2, GPIO12, GPIO15는 피하세요. ESP32는 부팅하는 동안 이 핀들을 샘플링하며, 전원을 켤 때 PC817이 이 핀 중 하나를 잘못된 레벨로 끌어당기면 보드가 시작되지 않을 수 있습니다.

이 튜토리얼에서는 내부 풀업이 동작하는 범용 핀인 GPIO19를 사용합니다. GPIO4, GPIO13, GPIO16, GPIO17, GPIO18, GPIO21, GPIO22, GPIO23, GPIO25, GPIO26, GPIO27, GPIO32, GPIO33도 똑같이 좋은 선택입니다. 전체 내용은 ESP32 핀아웃 튜토리얼을 참고하세요.

배선도

PC817 옵토커플러 모듈을 ESP32에 배선하기

입력 쪽은 어떤 종류를 구매했든 동일합니다: 두 나사 단자는 모니터링하려는 신호와 그 절연된 회로의 접지에 연결하며, 어디에도 저항을 따로 추가하지 않습니다.

PC817 모듈 연결 위치
IN+ 단자 → 모니터링하려는 신호선, 해당 종류의 전압
IN- 단자 → 오직 같은 회로의 접지에만
VCC 핀 → ESP32의 3.3V
GND 핀 → ESP32의 GND
OUT 핀 → ESP32의 GPIO19

출력 쪽은 ESP32에 연결하는 두 가지 방법 중 하나를 선택할 수 있습니다:

  • 브레드보드를 사용하여 ESP32와 PC817 옵토커플러 모듈을 연결하는 방법
브레드보드에서의 ESP32 pc817 옵토커플러 모듈 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

ESP32 및 다른 구성 요소에 전원을 공급하는 방법에 대해 잘 알지 못하는 경우, 다음 튜토리얼에서 안내를 찾을 수 있습니다: ESP32 전원 공급 방법.

ESP32와 pc817 옵토커플러 모듈 연결 방법

실제 설치에는 나사 단자 버전을 사용해야 합니다. 24V 기계에서 오는 현장 배선은 굵고 움직이며, 흔들려서 빠진 브레드보드 접점은 디버깅하기 매우 어려운 가짜 측정값을 만들어냅니다.

이 두 배선도는 모듈의 세 출력 핀이 ESP32에 연결되는 방식만 다르다는 점에 유의하세요. 구매한 종류는 입력 단자에서 일어나는 일을 결정할 뿐 출력 쪽에는 아무 영향을 주지 않으므로, 이것은 두 가지 배선 선택과 세 가지 종류일 뿐 - 여섯 가지 다른 물건을 사야 하는 것이 아닙니다.

모니터링할 12V 부하와 PC817을 병렬로 배선하기

위의 모든 내용은 읽을 수 있는 여유 신호선이 이미 있다고 가정합니다. 대부분의 실제 프로젝트는 그렇지 않습니다. 실제로 있는 것은 12V 솔레노이드 밸브나 펌프를 기동하는 접촉기의 코일이며, 질문은 그 코일에 지금 이 순간 전원이 공급되고 있는가입니다. PC817이 이 질문에 답해줍니다 - 단, 회로에 올바른 방식으로 연결했을 때만요.

모듈 입력은 장치 양단에, 즉 장치와 병렬로 연결하며, 절대 직렬로 연결하지 않습니다. 직렬로 연결하면 밸브나 접촉기 코일의 전체 부하 전류가 패키지 안의 작은 LED를 통해 흐르게 되어, 회로가 켜지는 순간 PC817이 파손됩니다. 병렬로 배선하면 기존 회로에서 자르거나, 뽑거나, 경로를 바꿀 것이 없습니다. 이미 있는 단자에 전선 두 개만 추가하면 됩니다.

연결 지점 연결 위치
코일의 양극(스위칭되는) 단자 → 12V 모듈의 IN+ 나사 단자
코일의 음극(귀환) 단자 → 12V 모듈의 IN- 나사 단자
모듈 VCC 핀 → ESP32의 3.3V
모듈 GND 핀 → ESP32의 GND
모듈 OUT 핀 → ESP32의 GPIO19

연결 지점에 직렬 저항을 추가할 필요는 없습니다 - 12V 모듈에 이미 필요한 저항이 있으며, 바로 그래서 종류가 코일 전압과 맞아야 합니다. 이 연결은 모듈 입력 LED에 필요한 작은 전류만 끌어 씁니다. 솔레노이드 밸브나 접촉기 코일이 유지되는 동안 끌어 쓰는 수백 밀리암페어에 비하면 아무것도 아니므로, 장치는 이전과 똑같이 계속 동작합니다. 이것은 개입이 아니라 읽기 전용 측정입니다.

여기서는 극성이 중요합니다. PC817의 입력 쪽은 LED이며 한 방향으로만 전류가 흐르므로, 두 입력 단자가 뒤바뀌면 모듈은 그냥 절대 켜지지 않고, 여러분은 존재하지 않는 고장을 찾느라 저녁을 보내게 됩니다. 전선 피복을 벗기기 전에 연결 지점의 어느 쪽이 양극인지 확인하세요.

솔레노이드 밸브, 접촉기 코일, 릴레이 코일, 모터는 유도성 부하이며, 유도성 부하는 꺼질 때마다 큰 역전압을 되돌려 보냅니다. PC817 입력 LED의 역전압 정격은 6 V에 불과하므로, 이 스파이크만으로도 LED가 망가질 수 있습니다.

※ 주의:

일반 다이오드를 모듈의 두 입력 단자 사이에 역병렬로 바로 연결하세요 - 다이오드 캐소드는 IN+에, 다이오드 애노드는 IN-에 연결합니다(칩 단독 구성에서는 캐소드를 핀 1에, 애노드를 핀 2에). 정상 동작 시에는 역바이어스되어 아무 일도 하지 않으며, 꺼질 때의 스파이크가 발생하면 도통하여 역전압을 1볼트보다 훨씬 낮게 제한합니다. 작은 연결에는 1N4148, 더 큰 부하에는 1N4007이 적합합니다.

기계 쪽에는 함정이 하나 더 있습니다: 일부 PLC 트랜지스터 출력, 트라이액 출력, LED 램프 드라이버는 꺼져 있을 때도 약간의 전류가 누설됩니다. 누설이 충분하면 PC817 LED가 부분적으로 켜지고, ESP32는 밸브가 멈춰 있는데도 동작 중이라고 보고합니다. 증상은 쉽게 알아볼 수 있습니다 - 측정값이 절대 비활성 상태로 돌아오지 않습니다. 해결책은 모듈 입력 단자와 병렬로 약 4.7 kohm ~ 10 kohm의 블리더 저항을 연결하여, 누설 전류가 LED 대신 저항으로 빠져나가게 하는 것입니다.

마지막으로, 이것은 DC 전용 기법입니다. PC817 입력은 LED 하나이며 한 가지 극성에만 반응하므로, AC 라인 감지에는 맞지 않는 부품입니다 - 그 작업에는 입력단에 두 개의 LED가 역방향으로 병렬 연결된 옵토커플러가 필요합니다.

선택 사항 - PC817 칩만으로 같은 입력 만들기

모듈을 구매하는 대신 입력 회로를 직접 만들고 싶다면, 4핀 칩만으로도 같은 일을 할 수 있습니다 - 모듈에 장착되어 있었을 저항만 직접 준비하면 됩니다. 핀 1을 표시하는 점이나 홈이 왼쪽 위에 오도록 칩을 잡으세요. 핀은 거기서부터 반시계 방향으로 이어집니다. 이 핀 1(애노드)은 직렬 저항을 통해 신호선에 연결하고, 이 핀 2(캐소드)는 절연된 회로의 접지에만 연결하며, 이 핀 3(이미터)은 ESP32의 GND 핀에, 이 핀 4(컬렉터)는 GPIO19에 연결합니다. R = (Vin - 1.2) / 0.01 공식으로 LED에 약 10 mA가 흐르도록 저항 값을 정하면, 3.3V 신호는 220 ohm, 5V는 390 ohm, 12V는 1 kohm, 24V는 2.2 kohm이 됩니다. 12V용 저항을 절대 24V 라인에 그대로 쓰지 마세요: 거기서 1 kohm은 20 mA 정격의 LED에 약 22.8 mA를 흘려보냅니다. 이렇게 배선하면 칩 단독 구성은 항상 액티브 LOW이므로 스케치를 바꿀 필요가 없습니다.

12v 및 24v 절연 입력을 위한 ESP32 pc817 옵토커플러 핀아웃

측정값이 동작 중인 장치에 대해 알려주는 것

연결 지점이 명령선이 아니라 밸브나 접촉기 코일과 병렬로 있기 때문에, ESP32가 읽는 것은 여러분이 내린 명령의 메아리가 아니라 장치의 실제 상태입니다. 압력 스위치, 타이머, PLC 또는 작업 현장의 사람이 펌프를 켜면 측정값도 그에 따라 바뀝니다. 켜라고 명령했는데 켜지지 않았다면 - 퓨즈가 나갔거나, 과부하 차단기가 작동했거나, 현장의 전선이 끊어졌거나 - 측정값은 비활성 상태로 남아 그 사실을 알려줍니다. 바로 이것이 이 작은 회로를 펌프의 가동 시간 카운터, "밸브가 실제로 열렸나?" 알림, 또는 기계의 유휴 시간 기록으로 바꿔주며, 이 모든 것을 WiFi로 보고하면서도 12V 쪽과는 전선 하나 공유하지 않습니다.

하지만 측정값이 증명하는 것에 대해서는 솔직해야 합니다: 장치에 전원이 공급되고 있다는 것을 알려줄 뿐, 제 역할을 하고 있다는 것을 알려주지는 않습니다 - 걸려서 멈춘 펌프 모터나 끊어진 히터 소자도 여전히 전력을 끌어 쓰므로 ON으로 읽힙니다.

PC817을 읽도록 ESP32 프로그래밍하는 방법

  • pinMode() 함수를 사용하여 ESP32 핀을 내부 풀업 저항이 활성화된 디지털 입력으로 설정합니다. 풀업 덕분에 유휴 상태가 HIGH가 됩니다. 예를 들어 GPIO19 핀:
pinMode(19, INPUT_PULLUP);
  • digitalRead() 함수를 사용하여 핀의 원시 상태를 읽습니다.
int raw = digitalRead(19);
  • 극성 상수를 통해 원시 레벨을 한 줄로 신호 상태로 바꿉니다. 그러면 나머지 코드가 자연스럽게 읽히고, 다른 종류의 모듈을 쓰게 되어도 전체를 다시 쓰는 대신 한 곳만 수정하면 됩니다.
const bool MODULE_ACTIVE_LOW = true; bool signalActive = MODULE_ACTIVE_LOW ? (raw == LOW) : (raw == HIGH);

ESP32 코드 - PC817 옵토커플러

/* * 이 ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32/esp32-pc817-optocoupler-monitor-12v-24v-dc-input-signal */ // ESP32 pin GPIO19 connected to the PC817's collector (pin 4), or to the module's OUT pin #define PC817_PIN 19 // Most PC817 modules pull the output LOW when the input signal is present. // If your module works the other way round, change this to false. const bool MODULE_ACTIVE_LOW = true; bool signalActive; void setup() { Serial.begin(9600); // initialize serial pinMode(PC817_PIN, INPUT_PULLUP); // enable the ESP32 internal pull-up resistor } void loop() { int raw = digitalRead(PC817_PIN); // active-LOW module or bare chip: LOW => the external 12V/24V signal is PRESENT // active-HIGH module: HIGH => the external 12V/24V signal is PRESENT signalActive = MODULE_ACTIVE_LOW ? (raw == LOW) : (raw == HIGH); if (signalActive) Serial.println("PC817 channel -> LIVE, external voltage detected"); else Serial.println("PC817 channel -> idle"); delay(200); }

빠른 단계

  • ESP32를 처음 사용한다면 ESP32 - 소프트웨어 설치을 참고하세요.
  • 위의 모듈 배선도대로 배선하고, 12V/24V 접지가 ESP32 GND에 닿지 않는지 다시 확인합니다.
  • USB 케이블로 ESP32 보드를 PC에 연결합니다.
  • PC에서 Arduino IDE를 엽니다.
  • 올바른 ESP32 보드(예: ESP32 Dev Module)와 COM 포트를 선택합니다.
  • 위의 코드를 복사하여 Arduino IDE에 붙여넣습니다.
  • Arduino IDE에서 Upload 버튼을 클릭하여 코드를 컴파일하고 ESP32 보드에 업로드합니다.
  • Arduino IDE에서 시리얼 모니터를 엽니다.
  • 외부 12V 또는 24V 신호를 몇 번 켰다 껐다 합니다.
  • 시리얼 모니터의 내용을 모듈의 상태 LED와 비교합니다. 둘이 일치하지 않으면 코드에서 MODULE_ACTIVE_LOW를 false로 설정하고 다시 업로드합니다.
  • 시리얼 모니터에서 결과를 확인합니다. 아래와 같이 표시됩니다:
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
PC817 channel -> idle PC817 channel -> idle PC817 channel -> idle PC817 channel -> LIVE, external voltage detected PC817 channel -> LIVE, external voltage detected PC817 channel -> LIVE, external voltage detected PC817 channel -> LIVE, external voltage detected PC817 channel -> idle PC817 channel -> idle
Ln 11, Col 1
ESP32 Dev Module on COM15
2

아무것도 연결하지 않았는데 시리얼 모니터가 계속 LIVE를 출력한다면, 둘 중 하나입니다. ESP32 핀이 플로팅 상태이거나 - 실제로 내부 풀업이 있는 핀을 골랐는지, 그리고 모듈 GND(또는 칩 단독 구성의 핀 3)가 ESP32 GND 핀에 제대로 연결되어 있는지 확인하세요 - 아니면 모듈이 액티브 HIGH 종류인 것이며, 이는 상태 LED를 보면 바로 알 수 있습니다.

이 보드에서 디지털 입력을 더 깊이 다루고 싶다면, ESP32 - 버튼 및 ESP32 - 리미트 스위치 튜토리얼에서 기계식 접점에 대한 같은 읽기-반전 패턴을 다루고, ESP32 - 전압 측정에서는 있음/없음이 아니라 실제 전압 값이 필요한 경우를 다룹니다.

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

댓글

관련 튜토리얼