아두이노 나노 ESP32 - 포텐쇼미터 | Arduino Nano ESP32 - Potentiometer
이 튜토리얼은 아두이노 나노 ESP32를 포텐쇼미터와 함께 사용하는 방법에 대한 지침을 제공합니다. 자세히, 우리는 배울 것입니다:
- 전위차계가 어떻게 작동하는지
- 아두이노 나노 ESP32를 전위차계와 인터페이스하는 방법
- 전위차계에서 값을 읽기 위해 아두이노 나노 ESP32를 프로그래밍하는 방법
- 전위차계에서 읽은 값을 유용한 값으로 변환하는 방법
준비물
1 | × | Arduino Nano ESP32 | Amazon | |
1 | × | USB Cable Type-C | 쿠팡 | Amazon | |
1 | × | Potentiometer | 쿠팡 | Amazon | |
1 | × | Breadboard | 쿠팡 | Amazon | |
1 | × | Jumper Wires | Amazon | |
1 | × | (Optional) DC Power Jack | 쿠팡 | Amazon | |
1 | × | (Recommended) Screw Terminal Expansion Board for Arduino Nano | 쿠팡 | Amazon |
포텐쇼미터에 관하여
포텐쇼미터(회전 각도 센서로도 알려져 있음)는 설정을 변경하는 데 사용됩니다(예: 스피커의 볼륨, 방의 온도, 램프의 밝기...).
포텐쇼미터 핀배열
포텐쇼미터는 보통 3개의 핀을 가지고 있습니다:
- VCC 핀: 이 핀을 VCC(5V 또는 3.3v)에 연결하세요.
- GND 핀: 이 핀을 GND(0V)에 연결하세요.
- 출력 핀: 이 핀은 전압을 ESP32의 입력 핀으로 출력합니다.
※ NOTE THAT:
GND 핀과 VCC 핀은 교환 가능합니다.
전위차계의 작동 원리
포텐쇼미터의 축은 0°(GND 핀에 가장 가까운)에서부터 VCC 핀에 가장 가까운 각도로, ANGLE_MAX라고 불리는 각도까지 회전할 수 있습니다.
출력 핀의 전압은 0에서 VCC까지 변하며 축의 각도 위치에 직접 비례합니다. 아래 표는 각도와 출력 핀의 전압 사이의 관계를 보여줍니다:
Angle | Voltage |
---|---|
0° | 0v |
ANGLE_MAX° | VCC |
angle° | angle° × VCC / ANGLE_MAX° |
※ NOTE THAT:
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을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
포텐쇼미터를 프로그래밍하는 방법
analogRead() 함수를 사용하여 포텐쇼미터의 출력 핀에 연결된 입력 핀에서 값을 읽습니다.
포텐쇼미터의 각도에 맞게 재조정하기 위해 map() 함수를 사용하세요.
포텐쇼미터의 전압에 맞게 재조정하세요.
제어 가능한 값으로 재조정하십시오 (예: 스테레오의 볼륨, 밝기, 직류 모터의 속도...).
예를 들어, LED의 밝기에 맞게 재조정하는 것입니다. 이 튜토리얼에서 언급했듯이, LED의 밝기는 0(항상 꺼짐)부터 255(항상 켜짐)까지의 PWM 값으로 제어할 수 있습니다. 따라서, 아날로그 값을 다음과 같이 LED의 밝기(꺼짐에서 가장 밝음까지)에 매핑할 수 있습니다:
만약 당신이 LED를 야간등에서 가장 밝은 상태로 어둡게 하고 싶다면,
※ NOTE THAT:
map() 함수는 아날로그 값을 int 또는 long 타입 값으로 재조정하는 데에만 사용할 수 있습니다. 제어 가능한 값이 float 타입인 경우, map() 함수 대신 floatMap() 함수를 사용해야 합니다.
floatMap() 함수:
아두이노 나노 ESP32 코드
사용 방법
- Arduino Nano ESP32를 처음 사용하는 경우, Arduino IDE에서 Arduino Nano ESP32 환경 설정 방법을 참조하세요.
- 위의 코드를 복사하여 Arduino IDE에 붙여넣으세요.
- Arduino IDE의 Upload 버튼을 클릭하여 코드를 Arduino Nano ESP32 보드에 컴파일하고 업로드하세요.
아두이노 IDE에서 시리얼 모니터 열기
- 포텐쇼미터를 돌리세요.
- Serial Monitor에서 결과를 확인하세요. 아래와 같이 보입니다:
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.