본문 바로가기

Dev/C언어

아두이노 가변저항 사용하기

728x90
반응형

이번에는 Arduino Uno에 Potentiometer, 가변저항(분압기)을 연결하여 그 값을 볼 수 있는 회로를 만들었습니다.

 

5V, 접지, Analog 핀을 연결해줍니다.

 

위 회로는 tinkercad 상에서 구현하였는데, 각 핀에 마우스 커서를 올리면 어떤 선을 연결해야 하는지 알려줍니다.

 

사실 이미 가변저항의 내부 회로에 대해 알고 있는 사람이라면 더욱 쉽고 빠르게 연결하실 수 있을 겁니다.

 

이런 식으로 가변 저항 내부가 구성되어 있는 것이죠.

 

void setup()
{
  Serial.begin(9600);
  pinMode(A0, INPUT);
}

void loop()
{
  int ADC_value=analogRead(A0);
  Serial.println(String("ADC value : ") + ADC_value);
  delay(1000);
}

시리얼 모니터로 전압 값을 보기 위해 시리얼 모니터를 setup 함수에서 초기화해주었고,

A0 핀에서 값을 받을 수 있도록 INPUT으로 설정하였습니다.

 

loop 함수에서는 A0에서 받은 값을 저장할 변수를 하나 만들고 그 변수 값을 Serial.println으로 출력하였습니다.

 

계속해서 거의 텀이 없이 모니터에 출력이 되면 값을 보기 힘들기 때문에 적절한 값을 delay로 설정해 주었습니다.

 

ADC value로 이름을 정한 이유는 아두이노 우노의 아날로그 핀들이 AD converter가 내장되어 있기 때문입니다.

 

analogRead를 하게되면 입력 전압에 따라 0~1023의 값을 return 해줍니다.

 

반대로 그럼 analogWrite는 안되냐 하시는 분들이 있을 겁니다.

 

가능은 합니다. 물론 이 analogWrite는 정확한 analog값을 return해주는 것이 아니라

PWM방식으로 아날로그 데이터 출력과 유사한 효과를 보여주는 것입니다.

 

그렇게 실행하게 되면 시리얼 모니터는 아래처럼 나오게됩니다.

 

여기선 1000이 최댓값입니다. 제가 가변저항을 조절했다면 다른 값이 출력되었을 겁니다.

 

이번 회로도 저번에 올린 피아노처럼 어려운 부분이 없을 겁니다.

 

아두이노가 기본 C언어만 배우신 분들에게는 #include<stdio.h>로 시작하다가 void setup으로 시작하니

어색하실 거라고 생각합니다.

 

물론 저도 그랬구요. 하다보니 익숙해지더라구요.

 

역시 사람은 적응의 동물이라고 하는게 괜히 나온 말이 아닌 것 같아요.

 

다들 목표를 향해서 열심히 노력해보셨으면 좋겠습니다.

728x90
반응형

"); wcs_do();