ESP32 가변 저항기
이 튜토리얼은 여러분에게 ESP32를 포텐쇼미터와 함께 사용하는 방법을 안내합니다. 구체적으로, 우리는 다음을 학습할 것입니다:
- 전위차계의 작동 원리
- ESP32를 전위차계와 인터페이싱하는 방법
- ESP32가 전위차계에서 값을 읽어들이는 프로그래밍 방법
- 전위차계에서 읽은 값을 유용한 값으로 변환하는 방법
준비물
1 | × | ESP32 ESP-WROOM-32 개발 모듈 | 쿠팡 | 아마존 | |
1 | × | USB 케이블 타입-C | 쿠팡 | 아마존 | |
1 | × | 포텐셔미터 | 쿠팡 | 아마존 | |
1 | × | 노브가 있는 포텐셔미터 모듈 | 쿠팡 | 아마존 | |
1 | × | 브레드보드 | 쿠팡 | 아마존 | |
1 | × | 점퍼케이블 | 아마존 | |
1 | × | (옵션) DC 커넥터 전원 연결 잭 플러그 소켓 | 쿠팡 | 아마존 | |
1 | × | (추천) ESP32용 스크루 터미널 확장 보드 | 쿠팡 | 아마존 | |
1 | × | (추천) ESP32용 전원 분배기 | 쿠팡 | 아마존 |
포텐쇼미터에 대하여
포텐쇼미터(회전 각도 센서로도 알려짐)는 설정을 변경하는 데 사용됩니다(예: 스피커의 볼륨, 방의 온도, 램프의 밝기 등).
포텐쇼미터 핀배열
포텐쇼미터는 보통 3개의 핀을 가지고 있습니다:
- VCC 핀: 이 핀을 VCC(5V 또는 3.3V)에 연결하세요.
- GND 핀: 이 핀을 GND(0V)에 연결하세요.
- 출력 핀: 이 핀에서 ESP32의 입력 핀으로 전압을 출력합니다.
※ 주의:
GND 핀과 VCC 핀은 서로 교환할 수 있습니다.
전위차계의 작동 원리
포텐쇼미터의 축은 0°(GND 핀에 가장 가까움)에서 VCC 핀에 가장 가까운 각도인 ANGLE_MAX까지 회전할 수 있습니다.
출력 핀의 전압은 축의 각도 위치에 직접적으로 비례하여 0에서 VCC까지 변화합니다. 아래 표는 각도와 출력 핀의 전압 사이의 관계를 보여줍니다:
Angle | Voltage |
---|---|
0° | 0v |
ANGLE_MAX° | VCC |
angle° | angle° × VCC / ANGLE_MAX° |
※ 주의:
ANGLE_MAX 값은 제조업체에 따라 다릅니다.
ESP32 - 로터리 포텐쇼미터
ESP32의 아날로그 입력 핀은 전압(0V와 3.3V 사이)을 정수 값(0부터 4095 사이)으로 변환합니다. 이것을 ADC 값 또는 아날로그 값이라고 합니다.
우리는 가변저항의 출력 핀을 ESP32의 아날로그 입력 핀에 연결한 다음, 핀에서 아날로그 값을 읽을 수 있습니다.
입력 핀에서의 아날로그 값을 다른 값으로 재조정할 수 있습니다. 사용 사례를 살펴봅시다:
- 아날로그 값을 포텐쇼미터의 각도에 맞게 재조정하세요.
- 아날로그 값을 포텐쇼미터의 전압에 맞게 재조정하세요.
- 아날로그 값을 설정 값(예: 스피커의 볼륨, 방의 온도, 램프의 밝기 등)에 맞게 재조정하세요.
범위 재조정
FROM | TO | |||
---|---|---|---|---|
Angle | rotated by user | 0° | → | ANGLE_MAX° |
Voltage | from potentiometer's pin | 0V | → | 3.3V |
ADC value | read by ESP32 | 0 | → | 4095 |
Setting value | converted by ESP32 | VALUE_MIN | → | VALUE_MAX |
포텐쇼미터와 ESP32 사이의 배선도
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
ESP32 및 다른 구성 요소에 전원을 공급하는 방법에 대해 잘 알지 못하는 경우, 다음 튜토리얼에서 안내를 찾을 수 있습니다: ESP32를 구동하는 방법.
포텐쇼미터를 프로그래밍하는 방법
analogRead() 함수를 사용하여 포텐쇼미터의 출력 핀에 연결된 입력 핀에서 값을 읽습니다.
맵(map) 함수를 사용하여 포텐쇼미터의 각도에 맞게 재조정하세요.
포텐쇼미터의 전압에 맞게 재조정하세요.
제어 가능한 값으로 재조정하기 (예: 스테레오 볼륨, 밝기, 직류 모터의 속도 등)
예를 들어, LED의 밝기에 맞게 다시 조정하는 것입니다. 이 튜토리얼에서 언급한 바와 같이, LED의 밝기는 0 (항상 꺼짐)부터 255 (항상 켜짐)까지의 PWM 값으로 조절할 수 있습니다. 따라서, 우리는 아날로그 값을 다음과 같이 LED의 밝기(꺼짐에서 가장 밝은 상태까지)에 매핑할 수 있습니다:
만약 당신이 밤 불빛에서 가장 밝은 빛까지 LED의 밝기를 조절하고 싶다면,
※ 주의:
map() 함수는 아날로그 값을 int 또는 long 유형 값으로 재조정하는 데에만 사용될 수 있습니다. 제어 가능한 값이 float 유형이라면, map() 함수 대신 floatMap() 함수를 사용해야 합니다.
floatMap() 함수:
ESP32 코드
사용 방법
- ESP32를 처음 사용하는 경우, ESP32 - 소프트웨어 설치을 참조하세요.
- 위의 코드를 복사하여 Arduino IDE에 붙여넣으세요.
- Arduino IDE에서 Upload 버튼을 클릭하여 ESP32 보드에 코드를 컴파일하고 업로드하세요.
아두이노 IDE에서 시리얼 모니터 열기
- 전위차계를 회전시키세요.
- 시리얼 모니터에서 결과를 확인하세요. 아래와 같습니다:
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.