Search Code

전압 읽기와 Arduino용 가변저항 다루기

전압 읽기와 Arduino용 가변저항 다루기

이 튜토리얼에서는 Arduino와 가변 저항(포텐셔미터)을 사용하여 전압 값을 읽는 방법을 살펴보겠습니다. 이 프로젝트가 끝나면 아날로그 판독값을 전압 값으로 변환하는 방법과 전압 출력을 기반으로 가변 저항의 저항 값을 계산하는 방법까지 이해하게 될 것입니다. 이는 전압 레벨을 모니터링하고 제어해야 하는 다양한 응용 분야에서 유용합니다.

Potentiometer or variable resistor

이 프로젝트에서는 Arduino를 사용하여 아날로그 입력 핀 중 하나에 연결된 가변 저항의 전압을 읽습니다. 가변 저항을 통해 전압을 변화시킬 수 있으며, 이를 읽을 수 있는 형식으로 변환하여 시리얼 모니터에 표시합니다. 또한, 전압 판독값을 기반으로 저항 값을 계산하는 기능을 추가하여 가변 저항이 Arduino와 어떻게 작동하는지에 대한 포괄적인 이해를 제공합니다.

단계 및 코드 구현에 대한 자세한 설명은 비디오(비디오 00:00 시점)를 확인하세요.

하드웨어 설명

이 프로젝트의 주요 구성 요소는 Arduino 보드와 가변 저항입니다. Arduino는 입력 신호를 읽고 출력을 쉽게 제어할 수 있는 마이크로컨트롤러 플랫폼입니다. 이 경우 가변 저항의 아날로그 전압을 읽습니다.

가변 저항은 와이퍼 위치에 따라 저항을 조정할 수 있는 가변 저항기입니다. 전압 소스에 연결되면 단자 양단의 전압을 분배하여 Arduino의 아날로그 입력으로 읽을 수 있는 가변 전압을 출력할 수 있습니다.

데이터시트 세부 정보

제조업체다양함
부품 번호가변 저항
저항 범위0 – 1 MΩ
정격 전력0.1 W
온도 범위-40 ~ 85 °C
유형선형 또는 로그형

  • 잘못된 전압 판독을 방지하려면 가변 저항이 올바르게 연결되었는지 확인하세요.
  • Arduino에 연결하기 전에 멀티미터를 사용하여 가변 저항의 저항 값을 확인하세요.
  • 과열을 방지하려면 가변 저항을 정격 전력 내에서 사용하세요.
  • 필요한 경우 적절한 디커플링 커패시터를 사용하여 판독값의 노이즈를 필터링하세요.
  • 플로팅 입력에 주의하세요. 사용하지 않는 핀은 항상 접지에 연결하세요.

배선 지침

Arduino Wiring of Potentiometer
Arduino Wiring of Potentiometer

가변 저항을 Arduino에 배선하려면 먼저 가변 저항의 한쪽 끝을 Arduino의 5V 핀에 연결하고 다른 쪽 끝을 접지(GND) 핀에 연결합니다. 가변 저항의 중간 핀(와이퍼)은 Arduino의 아날로그 입력 핀 A0에 연결해야 합니다. 이 설정을 통해 Arduino는 가변 저항의 가변 전압 출력을 읽을 수 있습니다.

Potentiometer or variable resistor

다른 아날로그 핀을 사용하는 경우 코드에서 해당 핀 번호를 업데이트해야 합니다. 예를 들어 와이퍼를 A1에 연결한 경우 코드를 변경하여 A0 대신 A1에서 읽어야 합니다.

코드 예제 및 설명

void setup() {
  Serial.begin(9600);          // 시리얼 통신 설정
}

void loop() {
  int sensorValue = analogRead(A0);  // A0에서 읽기
  float voltage = sensorValue * (5.0 / 1023.0);  // 전압으로 변환
  Serial.print("Voltage =");  // "Voltage =" 텍스트 출력
  Serial.print(voltage);
  Serial.println();
  delay(300);
}

이 코드 스니펫은 시리얼 통신을 초기화하고 핀 A0에서 아날로그 값을 지속적으로 읽습니다. 아날로그 판독값(0~1023)을 전압(0~5V)으로 변환하여 시리얼 모니터에 출력합니다.

float RT = 50000; // 가변 저항 값
float R; // 알 수 없는 R 값

void loop() {
  int sensorValue = analogRead(A0);  // A0에서 읽기
  float voltage = sensorValue * (5.0 / 1023.0);  // 전압으로 변환
  R = (voltage * RT) / 5.0;  // 저항 계산
  Serial.print("Voltage =");  // "Voltage =" 텍스트 출력
  Serial.print(voltage);
  Serial.print("v R=");
  Serial.print(R);
  Serial.print(" ohms");
  Serial.println();
  delay(300);
}

이 두 번째 코드 스니펫은 첫 번째 코드를 기반으로 전압 판독값을 기반으로 저항 값을 계산하는 기능을 추가합니다. 가변 저항의 알려진 저항 값 RT를 사용하고 옴의 법칙에서 파생된 공식을 사용하여 알 수 없는 저항 R을 계산합니다.

시연 / 기대 효과

프로그램을 실행하면 가변 저항을 조정함에 따라 변경되는 전압 값이 시리얼 모니터에 출력되는 것을 확인할 수 있습니다. 출력에는 전압 판독값을 기반으로 계산된 저항 값도 표시됩니다. 극성이 반대로 연결되지 않도록 주의하세요. 잘못된 판독이나 구성 요소 손상이 발생할 수 있습니다(비디오 02:30 시점).

비디오 타임스탬프

  • 00:00 - 프로젝트 소개
  • 01:15 - 하드웨어 구성 요소 설명
  • 02:30 - 배선 지침
  • 03:45 - 코드 설명
  • 05:00 - 실시간 시연

이미지

Arduino Wiring of Potentiometer
Arduino Wiring of Potentiometer
Potentiometer or variable resistor
Potentiometer or variable resistor
Potentiometer or variable resistor
Potentiometer or variable resistor
10-Reading voltage and working with a potentiometer for Arduino
언어: C++
//Original source:  https://www.arduino.cc/en/Tutorial/ReadAnalogVoltage

// This code is used with a video tutorial for RoboJax.com
// Published on April 24, 2017, from Ajax, ON, Canada.
// Written/Edited by A.B.S

// This Arduino code reads the value from an analog pin


void setup()

{

  Serial.begin(9600);          //  setup serial

}



void loop(){

  int sensorValue = analogRead(A0);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
  float voltage = sensorValue * (5.0 / 1023.0);
  // print out the value you read:
  Serial.print("Voltage =");// prints the text "Voltage ="
  Serial.print(voltage);
  Serial.println();
  delay(300);

}

 </code>
 <h2>Project 2 Finding the resistance value from the voltage</h2>
  <pre><code class="cpp">
//Original source:  https://www.arduino.cc/en/Tutorial/ReadAnalogVoltage
// Project: Finding the resistance value from the voltage
// This code is used with a video tutorial for RoboJax.com
// Published on April 24, 2017, from Ajax, ON, Canada.
// Written/Edited by A.B.S

float RT = 50000;// the potentiometer value
float R;// the unknown R value

void setup()

{

  Serial.begin(9600);          //  setup serial

}

void loop(){

  int sensorValue = analogRead(A0);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
  float voltage = sensorValue * (5.0 / 1023.0);
  // print out the value you read:
  R = ( voltage * RT)/5.0;
  Serial.print("Voltage =");// prints the text "Voltage ="
  Serial.print(voltage);
  Serial.print("v R=");
  Serial.print(R);
  Serial.print(" ohms");
  Serial.println();
  delay(300);

}

자원 및 참고자료

아직 자원이 없습니다.

파일📁

파일이 없습니다.