아두이노, 가변저항으로 LED 밝기조절하기(PWM사용)

2022. 2. 14. 20:48아두이노

반응형

안녕하세요 통클입니다. 제가 이전에 교육하기 위해 정리했던 아두이노 관련 교육 자료들을 정리해서 포스팅하려고 합니다. 아두이노를 공부하는 초심자들에게 조금이나마 도움이 되었으면 좋겠습니다.

 


가변저항이란?

말그대로 회로 내에서 정해진 저항값이 아닌 임의로 저항값을 바꿀 수 있는 저항기입니다.

 

가변저항 핀과 기호

 

가변저항 구성 회로

가변저항은 아날로그 센서이기 때문에 아두이노와 연결할 때도 제어 핀을 디지털 핀이 아니라 아날로그 핀으로 연결해야 합니다.

5V와 GND의 위치를 바꿔 끼운다고 고장 나지 않습니다. 

다만 아두이노로 신호 값을 확인할 때 값의 기준이 달라서 표현이 다르게 될 수는 있겠다는 생각은 드네요

가변저항의 가운데 핀아날로그 핀과 연결되는 것이 중요합니다.

 

 

아래에 코드로 간단하게 아두이노 스케치로 가변저항을 돌릴 때마다 어떤 값이 뜨는지 확인해 봅니다.

#define Potentiometer A0 //가변저항 아날로그0번
void setup ()
{
  pinMode(Potentiometer,INPUT);//아날로그0번핀에 연결된 가변저항을 입력으로 설정합니다.
  Serial.begin(9600); //시리얼 통신을 시작합니다.
}
void loop()
{
  Serial.println(analogRead(Potentiometer)); //가변저항의 값을 시리얼 모니터에 출력합니다. 
  delay(30);
}

아날로그 값이 0~1023의 신호로 이루어졌기 때문에 가변저항의 값을 오른쪽으로 돌릴수록 커지다가 1023 근처에서 멈추고 왼쪽으로 돌리면 점점 줄어들다가 0 부근에서 멈춘 값을 확인할 수 있습니다.

 

 

가변저항으로 LED 밝기 조절

가변저항으로 LED의 밝기를 조절하기 위해서는 조금 다른 방식의 코딩이 필요합니다.

바로 PWM을 활용하는 건데요 아래 코드 보시면서 차근차근 이해해 보시죠.

 

#define SensorLED 11 //LED 11번
#definePotentiometer A0 //가변저항 아날로그0번
void setup ()
{
  pinMode(SensorLED,OUTPUT);//11번핀에 연결된 LED를 출력으로 설정합니다.
  pinMode(Potentiometer,INPUT);//아날로그0번핀에 연결된 가변저항을 입력으로 설정합니다.
}
void loop()
{
  int analogInput = analogRead(Potentiometer);
    //가변저항을 아날로그 0번핀에 연결하고 이를 입력으로 설정합니다.
  int brightness = analogInput/4; 
    // 가변저항의 입력값(0-1023사이의 값)을 LED의밝기값(0-255)의 값으로 변경해줍니다.
  analogWrite(SensorLED, brightness); 
    //가변저항의 값을 LED로 보내 출력합니다.
}

 

아날로그 input 값을 4로 나누는 이유는 0~1023의 값을 0~255로 나타내기 위해서입니다.

0~255는 디지털 출력을 pwm을 활용해서 아날로그처럼 나타낼 수 있는 수치입니다.

 

 

센서의 이해

해당 코드와 아두이노와 센서를 를 활용한 대부분의 코드 구성을 위 그림과 비슷합니다.

입력받는 센서 값이 있고 그때 사용되는 함수는 analogRead(), digitalRead()이죠.

그리고 출력으로 나타낼 때 사용되는 함수는 analogWrite(), digitalWrite() 입니다.

 

 

PWM이란?

PWM기능을 이용하면 0V와 5V 사이의 전압으로 출력을 내서 디지털 핀을 마치 아날로그 핀처럼 사용할 수 있게 됩니다.

위의 코드에서는 LED를 제어하는데 이전까지는 digitalWrite를 사용했었는데 밝기를 조절하기 위해서 analogeWrite()를 사용했습니다.

 

아날로그 센서인 가변저항의 0~1023 값이 LED에 0~255로 대칭되어 밝기 표시가 됩니다.

 

 

 

 

 

 

 

 

 

이상으로 아두이노 가변저항과 LED 밝기 조절에 대한 내용을 마무리하겠습니다.

여기까지 읽어주셔서 감사합니다.

 

기호 이미지, 정의 참고 사이트: https://ko.wikipedia.org/wiki/%EA%B0%80%EB%B3%80%EC%A0%80%ED%95%AD

 

반응형