아두이노 나노 - 포텐쇼미터 | 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 |
포텐쇼미터에 대하여
회전형 저항기, 또는 회전각 센서로 알려진 이것은 수동으로 어떤 것의 값을 변경하는 데 사용됩니다. 예시로는 스테레오의 볼륨, 램프의 밝기, 오실로스코프의 줌 레벨 등이 있습니다.
포텐쇼미터 핀배열
전위차계는 일반적으로 세 개의 핀을 가지고 있습니다:
- GND 핀은 접지(0V)에 연결되어야 합니다.
- VCC 핀은 VCC(5V 또는 3.3V)에 연결되어야 합니다.
- 출력 핀은 아두이노의 입력 핀에 전압을 제공합니다.
※ NOTE THAT:
GND와 VCC 핀은 바꿀 수 있습니다.
작동 방식
포텐쇼미터의 회전축은 0°(GND에 가장 가까움)부터 최대 각도(VCC 핀에 가장 가까움)까지의 범위를 가지며, ANGLE_MAX로 지칭됩니다.
※ NOTE THAT:
ANGLE_MAX의 값은 제조사에 의해 결정됩니다. 일반적으로 회전 각도를 계산하는 경우가 아니라면 이 값을 고려할 필요가 없습니다 (사용 사례 섹션 참조).
The working principle: 작동 원리:
- 사용자가 포텐쇼미터의 축을 회전시킵니다
- ⇒ 포텐쇼미터의 각도가 변합니다
- ⇒ 포텐쇼미터의 저항이 변합니다
- ⇒ 포텐쇼미터의 출력 핀의 전압이 변합니다
- ⇒ 아두이노 나노가 읽는 아날로그 값이 변합니다
아두이노 나노 - 로터리 포텐쇼미터
Arduino Nano의 A0부터 A7까지의 핀은 아날로그 입력으로 기능할 수 있습니다. 이 아날로그 입력 핀들은 전압(0볼트에서 VCC까지)을 정수 값(0부터 1023까지)으로 변환하는데, 이를 ADC 값 또는 아날로그 값이라고 합니다.
포텐쇼미터의 출력 핀을 아날로그 입력 핀에 연결할 수 있습니다. 이를 통해 핀에서 아날로그 값을 읽고 유의미한 값으로 변환할 수 있습니다.
Arduino Nano가 받는 값은 각도나 전압이 아니라, 0에서 1023까지의 정수 값입니다.
아날로그 입력 핀에서 정수 값을 얻은 후에는, 이를 다른 값으로 재조정할 수 있습니다. 이의 응용을 고려해 봅시다.
사용 사례
- 포텐시오미터의 각도에 맞게 재조정하십시오.
- 포텐시오미터의 전압에 맞게 재조정하십시오.
- 스테레오의 볼륨, 밝기 또는 직류 모터의 속도와 같은 제어 가능한 값에 맞게 재조정하십시오 - 이는 가장 자주 사용되는 방법입니다.
범위 재조정
FROM | TO | |||
---|---|---|---|---|
Angle | rotated by user | 0° | → | ANGLE_MAX |
Voltage | from potentiometer's pin | 0V | → | VCC |
ADC value | read by Arduino | 0 | → | 1023 |
Other value | converted by Arduino | VALUE_MIN | → | VALUE_MAX |
선연결
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
포텐쇼미터를 위한 프로그래밍 방법
analogRead() 함수를 사용하여 포텐쇼미터의 출력 핀에 연결된 입력 핀에서 값을 검색하십시오.
포텐쇼미터의 각도를 조정하려면 map() 함수를 사용하세요.
포텐쇼미터의 수준에 맞게 전압을 조정하세요.
값을 관리하거나 조정할 수 있는 것으로 재조정하십시오(예: 스테레오의 볼륨, 밝기, 직류 모터의 속도 등).
예를 들어, LED의 밝기를 조절하는 것입니다. 이 튜토리얼에서 언급했듯이, LED의 밝기는 0(항상 꺼짐)부터 255(항상 켜짐)까지의 PWM 값을 사용하여 조절할 수 있습니다. 따라서, 아날로그 값을 LED의 밝기(꺼짐에서 가장 밝음까지)에 매핑할 수 있습니다:
만약 여러분이 LED를 희미한 밤불에서 가장 밝은 수준으로 조절하고 싶다면,
※ NOTE THAT:
map() 함수는 아날로그 값을 int 혹은 long 유형으로 재조정하는 데만 적용됩니다. 제어 가능한 값이 float 유형이라면, map() 대신 floatMap()을 사용해야 합니다.
floatMap() 함수는 인자로 부동 소수점 리스트를 받아 원래 리스트의 각 요소에 주어진 함수를 적용한 결과를 요소로 하는 동일한 수의 새로운 리스트를 반환하는 함수입니다.
아두이노 나노 코드
사용 방법
- 코드를 복사하고 Arduino IDE로 열어주세요.
- Arduino IDE에서 Upload 버튼을 클릭하여 코드를 Arduino Nano로 전송하세요.
- 시리얼 모니터를 엽니다.
- 포텐셔미터를 돌립니다.
- 시리얼 모니터에서 결과를 확인합니다.
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.
도전하세요
포텐쇼미터를 사용하여 이 중 한 가지 프로젝트를 완성하십시오:
- 서보 모터의 위치를 조작하세요. 팁: 아두이노 나노 - 서보 모터를 확인해 보세요.
- LED의 밝기를 수정하세요. 팁: 아두이노 나노 - LED 페이드를 살펴보세요.
추가 지식
GND와 VCC 핀은 특별한 규칙 없이 서로 바꿀 수 있습니다. 하지만 한 가지 명심해야 할 것은 이 핀들이 바뀌었을 때 출력 핀의 전압 값이 반전된다는 것입니다.