아두이노 나노 - 포텐쇼미터 | Arduino Nano - Potentiometer

이 튜토리얼은 아두이노 나노를 포텐쇼미터와 함께 사용하는 방법을 안내합니다. 포텐쇼미터는 또한 가변 저항, 트리머, 가변 저항기, 레오스탯 또는 회전 각도 센서로 알려져 있습니다. 자세히, 우리는 배울 것입니다:

준비물

1×Arduino Nano Amazon
1×USB A to Mini-B USB cable 쿠팡 | Amazon
1×Potentiometer 쿠팡 | Amazon
1×Breadboard 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(Optional) 9V Power Adapter for Arduino Nano Amazon
1×(Recommended) Screw Terminal Expansion Board for Arduino Nano 쿠팡 | Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

포텐쇼미터에 대하여

회전형 저항기, 또는 회전각 센서로 알려진 이것은 수동으로 어떤 것의 값을 변경하는 데 사용됩니다. 예시로는 스테레오의 볼륨, 램프의 밝기, 오실로스코프의 줌 레벨 등이 있습니다.

Potentiometer pinout

포텐쇼미터 핀배열

전위차계는 일반적으로 세 개의 핀을 가지고 있습니다:

  • GND 핀은 접지(0V)에 연결되어야 합니다.
  • VCC 핀은 VCC(5V 또는 3.3V)에 연결되어야 합니다.
  • 출력 핀은 아두이노의 입력 핀에 전압을 제공합니다.
Potentiometer pinout

※ NOTE THAT:

GND와 VCC 핀은 바꿀 수 있습니다.

작동 방식

포텐쇼미터의 회전축은 0°(GND에 가장 가까움)부터 최대 각도(VCC 핀에 가장 가까움)까지의 범위를 가지며, ANGLE_MAX로 지칭됩니다.

※ NOTE THAT:

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

How Potentiometer Works

The working principle: 작동 원리:

  • 사용자가 포텐쇼미터의 축을 회전시킵니다
  • ⇒ 포텐쇼미터의 각도가 변합니다
  • ⇒ 포텐쇼미터의 저항이 변합니다
  • ⇒ 포텐쇼미터의 출력 핀의 전압이 변합니다
  • ⇒ 아두이노 나노가 읽는 아날로그 값이 변합니다

아두이노 나노 - 로터리 포텐쇼미터

Arduino Nano의 A0부터 A7까지의 핀은 아날로그 입력으로 기능할 수 있습니다. 이 아날로그 입력 핀들은 전압(0볼트에서 VCC까지)을 정수 값(0부터 1023까지)으로 변환하는데, 이를 ADC 값 또는 아날로그 값이라고 합니다.

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

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

아날로그 입력 핀에서 정수 값을 얻은 후에는, 이를 다른 값으로 재조정할 수 있습니다. 이의 응용을 고려해 봅시다.

사용 사례

  • 포텐시오미터의 각도에 맞게 재조정하십시오.
  • 포텐시오미터의 전압에 맞게 재조정하십시오.
  • 스테레오의 볼륨, 밝기 또는 직류 모터의 속도와 같은 제어 가능한 값에 맞게 재조정하십시오 - 이는 가장 자주 사용되는 방법입니다.

범위 재조정

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

선연결

Arduino Nano Potentiometer wiring diagram

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

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

analogRead() 함수를 사용하여 포텐쇼미터의 출력 핀에 연결된 입력 핀에서 값을 검색하십시오.

analog_value = analogRead(A5);

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

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

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

voltage = map(analog_value, 0, 1023, 0, VCC);

값을 관리하거나 조정할 수 있는 것으로 재조정하십시오(예: 스테레오의 볼륨, 밝기, 직류 모터의 속도 등).

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

예를 들어, LED의 밝기를 조절하는 것입니다. 이 튜토리얼에서 언급했듯이, LED의 밝기는 0(항상 꺼짐)부터 255(항상 켜짐)까지의 PWM 값을 사용하여 조절할 수 있습니다. 따라서, 아날로그 값을 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()을 사용해야 합니다.

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; }

아두이노 나노 코드

/* * 이 Arduino Nano 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano/arduino-nano-potentiometer */ 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() { // 아날로그 핀 A5에서 입력을 읽습니다: int analog_value = analogRead(A5); // 포텐쇼미터의 전압(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); }

사용 방법

  • 코드를 복사하고 Arduino IDE로 열어주세요.
  • Arduino IDE에서 Upload 버튼을 클릭하여 코드를 Arduino Nano로 전송하세요.
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!