ESP32 마이크로파이썬 포텐셔미터
이 튜토리얼은 ESP32와 MicroPython을 사용하여 가변저항기를 사용하는 방법을 보여줍니다. 자세히는, 다음 내용을 배웁니다:
- 포텐셔미터가 작동하는 원리
- ESP32에 포텐셔미터를 연결하는 방법
- ESP32용 MicroPython 코드로 포텐셔미터의 값을 읽어 실용적인 값으로 변환하는 방법
![ESP32 마이크로파이썬 가변저항](https://newbiely.kr/images/cover/esp32-potentiometer-with-micropython.jpg)
준비물
1 | × | ESP32 ESP-WROOM-32 개발 모듈 | 쿠팡 | 아마존 | |
1 | × | USB 케이블 타입-A to 타입-C (USB-A PC용) | 쿠팡 | 아마존 | |
1 | × | USB 케이블 타입-C to 타입-C (USB-C PC용) | 아마존 | |
1 | × | 포텐셔미터 | 쿠팡 | 아마존 | |
1 | × | 노브가 있는 포텐셔미터 모듈 | 쿠팡 | 아마존 | |
1 | × | 브레드보드 | 쿠팡 | 아마존 | |
1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
1 | × | (추천) ESP32용 스크루 터미널 확장 보드 | 쿠팡 | 아마존 | |
1 | × | (추천) ESP32용 전원 분배기 | 쿠팡 | 아마존 |
포텐셔미터에 대하여
회전식 포텐셔미터, 즉 회전각 센서라고도 불리는 이 장치는 스테레오 볼륨, 램프 밝기 또는 오실로스코프의 확대 정도와 같이 설정을 수동으로 조정하는 데 사용됩니다.
![포텐셔미터 핀아웃](https://newbiely.kr/images/tutorial/potentiometer.jpg)
핀아웃
포텐셔미터는 보통 세 개의 핀을 가지고 있습니다.
- GND 핀: GND (0 볼트)에 연결
- VCC 핀: VCC (5 볼트 또는 3.3 볼트)에 연결
- 출력 핀: ESP32의 입력 핀으로 전압 전송
![포텐셔미터 핀아웃](https://newbiely.kr/images/tutorial/potentiometer-pinout.jpg)
※ 주의:
GND 핀과 VCC 핀의 위치를 바꿀 수 있습니다.
작동 원리
포텐셔미터의 샤프트는 GND 근처의 0도에서 VCC 핀 근처에 위치한 최대 위치인 ANGLE_MAX까지 회전합니다.
출력 핀의 전압은 접지(GND) 전압부터 공급 전압(VCC)까지 범위입니다. 축을 회전시키면 출력 전압이 그에 따라 변화합니다.
- 각도가 0도이면 출력 핀에 전압이 없습니다 (0 볼트).
- 각도가 ANGLE_MAX이면 출력 핀의 전압은 VCC의 전압과 동일합니다.
- 0도와 ANGLE_MAX 사이의 각도에 대해서는 출력 전압을 다음과 같이 계산합니다: angle × VCC / ANGLE_MAX.
※ 주의:
ANGLE_MAX의 값은 제조사에 따라 달라집니다. 일반적으로 회전각을 계산할 필요가 없는 한, ANGLE_MAX의 값에 주목하지 않습니다 (사용 사례 섹션 참조).
![포텐쇼미터 작동 원리](https://newbiely.kr/images/tutorial/how-it-works-rotary-potentiometer.gif)
ESP32 - 회전식 포텐셔미터
ESP32의 ADC 핀은 아날로그 입력으로 작동할 수 있으며, 0볼트에서 VCC까지의 전압 범위를 0부터 4095 사이의 정수로 변환합니다. 이러한 숫자들은 ADC 값 또는 아날로그 값이라고 합니다.
포텐셔미터의 출력 핀을 ESP32의 아날로그 입력 핀 중 하나에 연결하면 ESP32가 ADC 값을 읽어 사용 가능한 숫자로 변환할 수 있습니다.
ESP32에서 얻은 숫자는 각도나 직접적인 전압이 아니라 0부터 4095 사이의 정수입니다. 이 값은 특정 애플리케이션에 필요한 경우 다른 범위로 매핑되거나 변환될 수 있습니다.
사용 사례
- ADC 값을 각도로 변환합니다.
- ADC 값을 전압으로 변환합니다.
- ADC 값을 조절 가능한 값(예: 스테레오의 볼륨, 밝기, 모터의 속도)으로 변환합니다. 이는 가장 일반적인 사용 사례입니다.
범위 재조정
FROM | TO | |||
---|---|---|---|---|
Angle | rotated by user | 0° | → | ANGLE_MAX |
Voltage | from potentiometer's pin | 0V | → | 3.3V |
ADC value | read by ESP32 | 0 | → | 4095 |
Other value | converted by ESP32 | VALUE_MIN | → | VALUE_MAX |
선연결
- ESP32와 포텐셔미터를 브레드보드를 사용하여 연결하는 방법
![ESP32 마이크로파이썬 포텐쇼미터 배선 다이어그램](https://newbiely.kr/images/tutorial/esp32-micropython-potentiometer-wiring-diagram.jpg)
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
- ESP32와 포텐셔미터를 스크류 터미널 블록 브레이크아웃 보드를 사용하여 연결하는 방법
![ESP32와 포텐쇼미터를 연결하는 방법](https://newbiely.kr/images/tutorial/how-to-connect-esp32-and-potentiometer.jpg)
ESP32 MicroPython 코드
자세한 사용 방법
ESP32에서 Thonny IDE를 사용하여 MicroPython 코드를 설정하고 실행하는 방법에 대한 지침은 다음과 같습니다:
- 컴퓨터에 Thonny IDE가 설치되어 있는지 확인하세요.
- ESP32 보드에 MicroPython 펌웨어가 로드되어 있는지 확인하세요.
- MicroPython이 탑재된 ESP32를 처음 사용하는 경우, 단계별 안내를 위해 ESP32 마이크로파이썬 - 시작하기 가이드를 확인하세요.
- 제공된 도표에 따라 ESP32 보드를 포텐셔미터에 연결하세요.
- ESP32 보드를 USB 케이블로 컴퓨터에 연결하세요.
- 컴퓨터에서 Thonny IDE를 실행하세요.
- Thonny IDE에서 도구 옵션으로 이동하세요.
- 인터프리터 탭에서 드롭다운 메뉴에서 MicroPython (ESP32)을 선택하세요.
- 올바른 포트를 선택했는지 확인하세요. Thonny IDE가 보통 자동으로 감지하지만, 수동으로 선택해야 할 수도 있습니다 (예: Windows의 COM12 또는 Linux의 /dev/ttyACM0).
- 제공된 MicroPython 코드를 복사하여 Thonny 편집기에 붙여넣으세요.
- ESP32에 코드를 저장하려면:
- 저장 버튼을 클릭하거나 Ctrl+S를 누릅니다.
- 저장 대화상자에서 MicroPython 장치를 선택하세요.
- 파일 이름을 main.py로 지정하세요.
- 스크립트를 실행하려면 초록색 실행 버튼을 클릭하거나 F5를 누르세요.
- 포텐셔미터를 조절하세요.
- Thonny 하단의 쉘에서 메시지를 확인하세요.
※ 주의:
이 튜토리얼에서는 가변 저항기에 연결된 ADC(아날로그-디지털 변환기)에서 값을 읽기 위해 adc.read() 함수를 사용하는 방법을 보여줍니다. ESP32의 ADC는 높은 정밀도가 필요 없는 프로젝트에 적합합니다. 그러나 프로젝트에 정확한 측정이 필요한 경우 다음 사항을 유념해야 합니다:
- ESP32 ADC는 완벽하게 정확하지 않으며 정밀한 결과를 위해 보정이 필요할 수 있습니다. 각 ESP32 보드는 약간씩 다를 수 있으므로 개별 보드마다 보정이 필요합니다.
- 보정은 특히 초보자에게 어려울 수 있으며 항상 원하는 정확한 결과를 얻을 수 있는 것은 아닙니다.
높은 정밀도가 요구되는 프로젝트의 경우, ESP32와 함께 외부 ADC(예: ADS1115)를 사용하거나 보다 신뢰할 수 있는 ADC를 가진 Arduino를 사용하는 것을 고려해 보십시오. ESP32 ADC를 보정하려는 경우, ESP32 ADC 보정 드라이버를 참조하십시오.
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.