ESP8266 - 포텐쇼미터 | ESP8266 - Potentiometer

이 튜토리얼은 ESP8266을 가변 저항, 저항 조절기, 가변 저항기, 레오스탯 또는 회전 각도 센서라고도 알려진 포텐쇼미터와 함께 사용하는 방법을 안내합니다. 구체적으로, 우리는 다음을 배울 것입니다:

준비물

1×ESP8266 NodeMCU Amazon
1×Micro USB Cable Amazon
1×Potentiometer Amazon
1×Breadboard 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(Optional) 5V Power Adapter for ESP8266 Amazon
1×(Optional) ESP8266 Screw Terminal Adapter Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

팟텐셔미터에 대하여

회전형 가변 저항기는 또한 포트, 트리머, 가변 저항, 레오스탯 또는 회전 각도 센서로 알려져 있습니다. 이것은 수동으로 무언가의 값을 조정하는데 사용됩니다. 예를 들면 스테레오의 볼륨, 램프의 밝기, 그리고 오실로스코프의 줌 레벨 등이 있습니다.

Potentiometer pinout

포텐쇼미터 핀배열

포텐쇼미터는 일반적으로 세 개의 핀을 가지고 있습니다:

  • GND 핀은 그라운드(0V)에 연결해야 합니다.
  • VCC 핀은 전압원(5V 또는 3.3V)에 연결해야 합니다.
  • 출력 핀은 아두이노의 입력 핀으로 전압을 보냅니다.
Potentiometer pinout

※ NOTE THAT:

GND 핀과 VCC 핀을 서로 바꿀 수 있습니다.

작동 원리

포텐쇼미터 샤프트의 회전은 GND에 가장 가까운 0°부터 VCC 핀에 가장 가까운 최대 각도까지이며, 이를 ANGLE_MAX라고 합니다.

※ NOTE THAT:

ANGLE_MAX의 값은 제조사에 의해 결정됩니다. 일반적으로, 회전된 각도를 계산하는 경우가 아니라면 이 값을 고려할 필요가 없습니다(사용 사례 섹션 참조).

How Potentiometer Works

작동 원리:

  • 사용자가 포텐쇼미터의 축을 회전시킵니다.
  • ⇒ 포텐쇼미터의 각도가 변경됩니다.
  • ⇒ 포텐쇼미터의 저항이 변경됩니다.
  • ⇒ 포텐쇼미터의 출력 핀에서의 전압이 변경됩니다.
  • ⇒ ESP8266이 읽는 아날로그 값이 변경됩니다.

ESP8266 - 로터리 가변 저항기

ESP8266의 일부 핀은 아날로그 입력으로 기능할 수 있습니다. 이러한 아날로그 입력 핀은 전압(0v에서 VCC까지)을 정수 값(0에서 1023까지)으로 변환하며, 이는 ADC 값 또는 아날로그 값으로 알려져 있습니다.

우리는 포텐쇼미터의 출력핀을 아날로그 입력핀에 연결할 수 있습니다. 이를 통해 핀에서 아날로그 값을 읽고 그것을 의미 있는 값으로 변환할 수 있습니다.

ESP8266이 받는 값은 각도나 전압이 아니라, 0에서 1023까지의 정수 값입니다.

아날로그 입력 핀에서 정수 값을 얻은 후, 이 값을 다른 값으로 재조정할 수 있습니다. 우리는 이러한 응용 프로그램을 고려해 보겠습니다.

사용 사례

  • 포텐쇼미터의 각도에 맞게 재조정하세요.
  • 포텐쇼미터의 전압에 맞게 재조정하세요.
  • 스테레오의 볼륨, 밝기 또는 DC 모터의 속도와 같이 제어 가능한 값에 맞게 재조정하세요 - 이것이 가장 일반적인 사용 사례입니다.

재조정 범위

FROM TO
Anglerotated by userANGLE_MAX
Voltagefrom potentiometer's pin 0VVCC
ADC valueread by Arduino 01023
Other valueconverted by Arduino VALUE_MINVALUE_MAX

선연결

ESP8266 NodeMCU Potentiometer wiring diagram

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

ESP8266의 핀 배치ESP8266 및 다른 구성 요소에 전원을 공급하는 방법에 대해 더 많이 보십시오.

포텐쇼미터를 위한 프로그래밍 방법

포텐시오미터의 출력 핀에 analogRead()로 접근하여 입력 핀에서 값을 읽으세요.

analog_value = analogRead(A0);

포텐쇠오미터의 각도를 조절하려면 map() 함수를 사용하세요.

angle = map(analog_value, 0, 1023, 0, ANGLE_MAX);

포텐쇼미터의 수준에 맞게 전압을 조정하세요.

// 아날로그 값을 0에서 VCC까지의 전압 값으로 변환합니다. voltage = map(analog_value, 0, 1023, 0, VCC);

값을 조절할 수 있는 것으로 재조정하세요. 예를 들어 스테레오의 볼륨, 밝기 또는 DC 모터의 속도 등이 있습니다.

value = map(analog_value, 0, 1023, VALUE_MIN, VALUE_MAX);

예를 들어, 리스케일링으로 LED의 밝기를 조절할 수 있습니다. 에서 언급한 대로, LED의 밝기는 PWM 값이 0(완전히 꺼짐)에서 255(완전히 켜짐)까지 조절될 수 있습니다. 따라서, 아날로그 값을 LED의 밝기(꺼짐에서 가장 밝게까지)에 이렇게 매핑할 수 있습니다:

brightness = map(analog_value, 0, 1023, 0, 255);

만약 당신이 LED를 어두운 밤불에서 가장 밝게 조절하고 싶다면,

nightlight = 100; // 원하는 밝기에 따라 brightness = map(analog_value, 0, 1023, nightlight , 255);

※ NOTE THAT:

map() 함수는 아날로그 값을 int 또는 long 타입으로 재조정하는 것에 한정됩니다. 제어 가능한 값이 float 타입인 경우, map() 대신 floatMap() 함수를 사용해야 합니다.

float floatMap(float x, float in_min, float in_max, float out_min, float out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; }

ESP8266 코드

/* * 이 ESP8266 NodeMCU 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP8266 NodeMCU 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp8266/esp8266-potentiometer */ #define POTENTIOMETER_PIN A0 float floatMap(float x, float in_min, float in_max, float out_min, float out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; } // 설정 함수는 리셋 또는 전원 켜질 때 한 번 실행됩니다. void setup() { // 시리얼 모니터와 통신하기 위해 시리얼을 초기화합니다. Serial.begin(9600); } // 루프 함수는 무한히 반복됩니다. void loop() { // 아날로그 핀에서 입력을 읽습니다: int analog_value = analogRead(POTENTIOMETER_PIN); // 포텐쇼미터의 전압(0V에서 5V까지)으로 재조정합니다: float voltage = floatMap(analog_value, 0, 1023, 0, 5); // 읽은 값을 출력합니다: Serial.print("Analog: "); Serial.print(analog_value); Serial.print(", Voltage: "); Serial.println(voltage); delay(1000); }

사용 방법

ESP8266을 Arduino IDE에서 시작하려면 다음 단계를 따르십시오:

  • ESP8266을 처음 사용하는 경우, Arduino IDE에서 ESP8266 환경 설정 방법 튜토리얼을 확인하세요.
  • 다이어그램에 표시된 대로 구성 요소를 연결하세요.
  • USB 케이블을 사용하여 ESP8266 보드를 컴퓨터에 연결하세요.
  • 컴퓨터에서 Arduino IDE를 엽니다.
  • 올바른 ESP8266 보드(예: NodeMCU 1.0 (ESP-12E Module))와 해당 COM 포트를 선택하세요.
  • 코드를 복사하고 Arduino IDE에서 엽니다.
  • 열리면, Upload 버튼을 눌러 코드를 ESP8266으로 전송하세요.
Arduino IDE Upload Code
  • 시리얼 모니터를 엽니다.
  • 포텐쇼미터를 돌립니다.
  • 시리얼 모니터에서 결과를 확인하세요.
COM6
Send
Analog: 0, Voltage: 0.00 Analog: 0, Voltage: 0.00 Analog: 126, Voltage: 0.62 Analog: 281, Voltage: 1.37 Analog: 517, Voltage: 2.53 Analog: 754, Voltage: 3.69 Analog: 906, Voltage: 4.43 Analog: 1023, Voltage: 5.00 Analog: 1023, Voltage: 5.00
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

동영상

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

도전하세요

다음 작업 중 하나를 수행하기 위해서는 가변 저항기를 사용하십시오:

추가 지식

GND와 VCC 핀은 특정 규칙 없이 서로 바꿀 수 있습니다. 이 핀들이 서로 바뀔 때 출력 핀에서의 전압 값이 반대가 될 것이라는 점만 주의하면 됩니다.

함수 참조

※ 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!