Skip to content

아두이노 전압측정(오실레이터가 없을때 활용)

 

Joule thief 회로(저전압 승압회로)  실험 결과에서 디지털 테스트기로는 전압측정이 불가능하였다.

실시간 전압 움직임을 아두이노로 구현하여 측정하는데에 성공하였다.

회로도 만큼 간단하네.

 

 

그림1.jpg

 

 

[예시1]

Vin   = 입력전압(15V)

R1    = 저항1(10K)

R2    = 저항2(1K)

Vout = 출력전압

 

R1 : R2 = 10K : 1K =  10 : 1 = 13.5V : 1.5V

 

옴의 법칙에 따라 R1의 10K에는 13.5V R2의 1K에는 1.5V 가 흐르게 된다.

그럼 R2의 1K 저항에서 나오는 1.5V가 아두이노에서 측정이 되며 1.5V에서 10을 곱하면 입력전압이 구해진다.

 

이렇게 하는 이유는 아두이노는 5V 정도의 전압으로 작동하기 때문에 혹시나 높은 전압에 의해 고장 우려를 생각하여 전압분배의 법칙을 이용하는 것이다.

 

5V가 넘지 않는 범위내에서의 측정을 한다면 최대 49V 까지는 무난히 측정할 수 있다.

 

 

 

 

 

 

--------------- [ 아두이노 전압측정  프로그램 ] ---------------------

 

// variables for input pin and control LED
int analogInput = 1;//Vout핀 연결
int LEDpin = 13;//프로그램이 동작하는걸 보여준다.
int prev = LOW;
int refresh = 500;
float vout = 0.0;
float vin = 0.0;
float R1 = 9820.0; // 저항 R1

float R2 = 987.0; //저항 R2!

int value = 0;
void setup()

{
    pinMode(analogInput, INPUT);// 핀모드 선언

    pinMode(LEDpin, OUTPUT);// 핀모드 선언   

   Serial.begin(19200);// 시리얼포트 통신 초기와
}
void loop(){
     value = analogRead(analogInput);// 1번핀 값을 읽음
     if (value >= 1023) {
     Serial.println("MAX!!");
     delay(refresh);
     return;
}
    else if (value <= 0) {
        Serial.println("MIN!!");
        delay(refresh);
        return;
}
if (prev == LOW)

    {
        prev = HIGH;
    }

else {
        prev = LOW;
       }
digitalWrite(LEDpin, prev);//디지털 포트 13번 핀 깜빡이게
vout = (value * 5.0) / 1024.0; //10비트 분해능이므로 1024로 나눠줌
vin = vout / (R2/(R1+R2));//저항분배법칙 으로 계산
Serial.print(vin); //입력되는 전압값 출력

Serial.println(" volt");
delay(refresh);
}

 

--------------- [ 아두이노 전압측정  프로그램 ] ---------------------

 

 

 

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소