초급 예제

누구나 쉽게 따라해볼 수 있는 쉬운 예제들입니다. 가볍게 도전~!

가변저항으로 LED 밝기 조절하기

2018-11-30 14:29:48

 

개요

1) 가변저항이란 무엇인가?
 

가변저항 (Potentiometer)은 사용자가 직접 저항값을 임의로 바꿀수 있는 저항기를 말합니다. 흔히 소리의 크기를 말하거나 조절하는 손잡이를 볼륨 (Volume)이라 부르는데, 전기/전자분야에서는 가변저항을 말하곤 합니다.

가변저항은 사용하는 저항체의 종류에 따라 다양하며, 회전축을 중심으로 전극을 움직이거나, 좌우로 전극을 움직이는 방식으로 저항값에 변화를 줍니다.

가변저항은 가전 제품부터 산업용 제품에 이르기까지 폭넓은 시장에서 활용되고 있습니다.


 

2) 가변저항 사용방법

 

이 예제에서 사용된 가변저항은 아래 그림과 같이 1번 단자와 3번 단자에 걸처 전체 저항이 연결되어 있고, 그 위에 2번 단자와 연결된 스위퍼 (sweeper)의 위치에 따라, 저항 값이 변하게 합니다. 

 

가변저항의 노브를 돌리면 1번 단자와 2번 단자 사이의 저항과, 2번 단자와 3번 단자 사이의 저항값이 각각의 길이에 비례하여 변하게 됩니다. 스위퍼의 위치에 따라 2번과 3번의 저항 값이 변하면, 스위퍼에 연결된 2번단자에 걸리는 전압도 변하게 됩니다. 즉, 양쪽 저항의 크기에 따라 전압분배가 이루어지는 것입니다. 

 

이 예제에서는 2번 단자에 걸리는 전압을 오렌지보드의 아날로그 입력값으로 받아 LED의 밝기를 조절합니다.

 

저항에 대한 자세한 설명은 2.4 저항의 용도를 참고합니다. 
 

 

 

부품 목록

NO 부품명 수량 상세설명
1 오렌지 보드 1  
2 가변저항 1 10kΩ
3 LED 1  
4 330Ω 저항 1  
5 브레드 보드 1  
6 점퍼 케이블 7  

 

부품명 오렌지 보드 가변저항 LED 330Ω 저항 브레드 보드 점퍼 케이블
파트


 

하드웨어 연결

브레드 보드

 

1. 가변저항을 그림과 같이 세로로 꽂습니다.
2. 가변저항의 맨 아래 다리를 오렌지보드의 5V핀에 연결합니다.
3. 가변저항의 맨 위 다리를 오렌지보드의 GND핀에 연결합니다.
4. 가변저항의 가운데 다리를 오렌지보드의 A1핀에 연결합니다.
5. LED를 긴 다리가(+극) 아래쪽으로 향하게 꽂습니다.
6. LED의 긴 다리가 연결된 라인에 330Ω 저항을 연결합니다.
7. 위에서 연결한 저항 반대쪽을 오렌지보드 3번핀에 연결합니다.
8. LED의 짧은 다리를 오렌지보드 GND핀에 연결합니다.
 
 
 
 
 
 

소프트웨어 코딩

이 소스 코드는 가변저항을 반이상 돌리면 LED가 켜지는 소스 코드 입니다. 

아날로그 1번핀에 연결된 가변저항의 값이 512(1024의 중간값)를 넘으면 디지털 3번 핀에 연결된 LED의 불을 키고, 512보다 작아지면 LED의 불을 끕니다.

이러한 비교 작업을 계속 반복해 줌으로써 가변저항을 이용하여 LED의 On/OFF 제어를 하게 됩니다.

 

void setup() {
        pinMode(3OUTPUT); 
}
 
void loop()        {
        if (analogRead(A1) > 512) {
                digitalWrite(3HIGH);
        } else {
                digitalWrite(3LOW);
        }
}

cs

 

 

<오렌지보드 가변저항으로 LED On/Off 제어하기 코드>

 

 

 

 

2. 가변저항으로 LED의 밝기를 제어하는 코드

 

이 소스 코드는 가변저항을 돌리면 LED의 밝기를 제어하는 소스 코드 입니다. 

아날로그 1번핀에 연결된 가변저항의 값이 0~1023 사이로 들어오는데 이것을 0~255 사이의 값으로 변경 후 이 값에 따라 디지털 3번 핀에 연결된 LED의 밝기를 제어하게 됩니다.

이러한 작업을 계속 반복해 줌으로써 가변저항을 이용하여 LED의 밝기를 제어를 하게 됩니다.

 

void setup() {
        pinMode(3OUTPUT); 
}
 
void loop() {
        int temp = map(analogRead(A1), 010230255);
        analogWrite(3, temp);
}
cs

 <오렌지보드 가변저항으로 LED 밝기를 제어하기 코드>

 

 

kocoafabeditor

항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!

엔트리, 코코아팹, 오렌지보드. 가변저항. LED, Entry, kocoafab, orangeboard, potentiometer