아두이노 우노 R4 - 가변저항기

이 튜토리얼은 아두이노 우노 R4와 포텐셔미터를 사용하는 방법을 안내합니다. 자세히 살펴보면 다음을 배울 것입니다:

아두이노 UNO R4 가변저항기

Hardware Preparation

1×Arduino UNO R4 WiFi Amazon
1×Arduino UNO R4 Minima (Alternatively) Amazon
1×USB Cable Type-C 쿠팡 | Amazon
1×Potentiometer 쿠팡 | Amazon
1×(Alternative) Potentiometer Kit Amazon
1×(Alternative) Potentiometer Module with Knob Amazon
1×Breadboard 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(Recommended) Screw Terminal Block Shield for Arduino UNO R4 쿠팡 | Amazon
1×(Recommended) Breadboard Shield For Arduino UNO R4 쿠팡 | Amazon
1×(Recommended) Enclosure For Arduino UNO R4 Amazon
1×(Recommended) Power Splitter For Arduino UNO R4 Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

포텐셔미터에 대하여

회전 위치 센서로도 알려진 회전형 전위차계는 스테레오 볼륨, 램프 밝기 또는 오실로스코프 확대 수준과 같은 설정을 수동으로 변경하는 데 사용됩니다.

포텐셔미터 핀 배치

핀아웃

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

  • GND 핀: GND (0V)에 연결
  • VCC 핀: VCC (5V 또는 3.3V)에 연결
  • 출력 핀: Arduino UNO R4의 입력 핀으로 전압을 보냄.
포텐셔미터 핀아웃

※ NOTE THAT:

GND 핀과 VCC 핀은 교환할 수 있습니다.

작동 원리

포텐셔미터의 샤프트는 0°(GND에 가장 가까운)에서 최대 각도(VCC 핀에 가장 가까운)까지 회전할 수 있으며, 이를 ANGLE_MAX라고 합니다.

출력 핀의 전압은 GND의 전압에서 VCC의 전압까지 변합니다. 출력 전압은 샤프트가 회전하는 각도에 직접적으로 변화합니다.

  • 각도가 0도일 때, 출력 핀의 전압은 0볼트입니다.
  • 각도가 ANGLE_MAX와 같을 때, 출력 핀의 전압은 VCC의 전압과 일치합니다.
  • 각도가 0°와 ANGLE_MAX 사이일 때, 출력 전압 = 각도 × VCC / ANGLE_MAX

※ NOTE THAT:

ANGLE_MAX의 값은 제조업체에 따라 다릅니다. 일반적으로 회전 각도를 계산해야 할 경우(사용 사례 섹션 참조)를 제외하고는 ANGLE_MAX 값에 크게 주의를 기울이지 않습니다.

포텐셔미터의 작동 원리

아두이노 UNO R4 - 회전형 포텐셔미터

Arduino UNO R4의 A0부터 A5 핀은 아날로그 입력으로 설정할 수 있습니다. 이 핀들은 0볼트에서 VCC까지의 전압을 0부터 1023 사이의 정수로 변환합니다. 이러한 숫자는 ADC 값 또는 아날로그 값이라고 합니다.

포텐셔미터의 출력 핀을 Arduino UNO R4의 아날로그 입력 핀에 연결하면, Arduino를 프로그래밍하여 ADC 값을 읽고 이를 유용한 숫자로 변환할 수 있습니다.

Arduino UNO R4가 수신하는 값은 각도나 전압이 아니라 0에서 1023 사이의 정수입니다.

아날로그 입력 핀에서 숫자를 받아 다른 숫자로 변환합니다. 이제 그것이 어떻게 사용되는지 봅시다.

사용 사례

  • ADC 값을 각도로 변환하기.
  • ADC 값을 전압으로 변환하기.
  • ADC 값을 제어 가능한 값(스테레오 볼륨, 밝기 또는 모터 속도 등)으로 변환하기. 이것이 가장 자주 사용되는 시나리오입니다.

리스케일 범위

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

Wiring Diagram

아두이노 UNO R4 가변저항 배선도

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

포텐셔미터 프로그래밍 방법

  • analogRead() 함수를 사용하여 가변저항기의 출력 핀에 연결된 핀으로부터 값을 읽습니다.
adc_value = analogRead(A0);
  • ADC 값을 map() 함수를 사용하여 전위차계의 각도로 변환합니다.
angle = map(adc_value, 0, 1023, 0, ANGLE_MAX);
  • ADC 값을 전압으로 변환:
voltage = map(adc_value, 0, 1023, 0, VCC);
  • ADC 값을 관리 가능한 수준으로 변환하십시오 (예: 스테레오의 음량, 밝기 또는 DC 모터의 속도).
value = map(adc_value, 0, 1023, VALUE_MIN, VALUE_MAX);
  • 예를 들어, LED의 밝기를 조절하는 것입니다. LED의 밝기는 PWM 값 0(항상 꺼짐)에서 255(항상 켜짐)을 사용하여 제어할 수 있습니다. 따라서, 우리는 ADC 값을 LED 밝기(꺼짐에서 가장 밝음)로 다음과 같이 매핑할 수 있습니다:
brightness = map(adc_value, 0, 1023, 0, 255);

※ NOTE THAT:

map() 함수는 아날로그 값을 int 또는 long 타입 값으로 변경하는 데 사용됩니다. float 타입 값으로 작업해야 한다면, 대신 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; }

아두이노 UNO R4 코드

/* * 이 Arduino UNO R4 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO R4 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-r4/arduino-uno-r4-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() { // 9600의 보율로 직렬 통신을 시작합니다: Serial.begin(9600); } void loop() { // 핀 A0에서 아날로그 값을 가져옵니다: int adc_value = analogRead(A0); // 아날로그 값을 전압(0-5V 범위)으로 변환합니다: float voltage = floatMap(adc_value, 0, 1023, 0, 5); // 아날로그 값과 해당 전압 값을 시리얼 모니터로 출력합니다: Serial.print("Analog: "); Serial.print(adc_value); Serial.print(", Voltage: "); Serial.println(voltage); // 루프를 반복하기 전에 1초 대기합니다: delay(1000); }

Detailed Instructions

다음 지침을 단계별로 따르세요:

  • Arduino Uno R4 WiFi/Minima를 처음 사용하는 경우 Arduino IDE에서 Arduino Uno R4 WiFi/Minima를 위한 환경 설정에 관한 튜토리얼을 참조하세요.
  • 제공된 다이어그램에 따라 가변 저항기를 Arduino Uno R4에 연결하세요.
  • USB 케이블을 사용하여 Arduino Uno R4 보드를 컴퓨터에 연결하세요.
  • 컴퓨터에서 Arduino IDE를 실행하세요.
  • 적절한 Arduino Uno R4 보드(예: Arduino Uno R4 WiFi)와 COM 포트를 선택하세요.
  • 위의 코드를 복사하여 Arduino IDE로 여세요.
  • Arduino IDE에서 Upload 버튼을 클릭하여 Arduino UNO R4에 코드를 업로드하세요.
아두이노 IDE 코드 업로드
  • 시리얼 모니터 열기
  • 가변 저항기 돌리기
  • 시리얼 모니터에서 결과 확인
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  

Video Tutorial

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

함수 참조

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