A PHP Error was encountered

Severity: Notice

Message: Undefined index: HTTP_ACCEPT_LANGUAGE

Filename: core/KF_Controller.php

Line Number: 155

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

초급 예제

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

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

2015-01-16 14:31:11

개요

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

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

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

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


 

2) 가변저항 사용방법

 

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

 

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

 

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

 

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

부품 목록

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

 

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

 

하드웨어 making

브레드 보드

1. 오렌지보드의  5V핀을 브레드보드의 + 버스에 연결합니다.
2. 오렌지보드의 GND핀을 브레드보드의 - 버스에 연결합니다. 
3. 가변저항을 그림과 같이 세로로 꽂습니다.
4. LED를 애노드(긴 단자)가 아래쪽으로 향하게하여 꽂습니다.
5. LED의 애노드가 연결된 행에 330Ω 저항을 연결합니다.
6. 가변저항의 하단 단자를 + 버스에 연결합니다.
7. 가변저항의 가운데 단자를 오렌지보드 A1번핀에 연결합니다.
8. 가변저항의 상단 단자를 - 버스에 연결합니다. 
9. LED 애노드와 연결된 저항의 반대 쪽을 오렌지보드 3번핀에 연결합니다. 
10. LED 캐소드(짧은)를 - 버스에 연결합니다.


 

 

 

전자 회로도



 

 

 

소프트웨어 coding

/*
 제목		: 가변저항으로 LED 밝기 조절하기
 내용		: 가변저항을 좌우로 돌려 LED의 밝기를 조절 해봅시다.
 */

// 가변저항을 A1핀으로 설정합니다.
int potentiometer = A1;
// LED를 3핀으로 설정합니다.
int led = 3;

// 실행시 가장 먼저 호출되는 함수이며, 최초 1회만 실행됩니다.
// 변수를 선언하거나 초기화를 위한 코드를 포함합니다.
void setup() {
	// 온도센서 및 동작 상태를 확인하기 위하여 시리얼 통신을 설정합니다. (전송속도 9600bps)
	// 메뉴 Tool -> Serial Monitor 클릭
	Serial.begin(9600);
	// LED가 연결된 핀을 OUTPUT으로 설정합니다.
	pinMode(led, OUTPUT);
}

// setup() 함수가 호출된 이후, loop() 함수가 호출되며,
// 블록 안의 코드를 무한히 반복 실행됩니다.
void loop() {
	// 가변저항으로 측정된 값을 읽습니다.
	// 가변저항으로부터 입력되어지는 전압의 크기(0~5V)에 따라 0~1023 범위의 값으로 변환되어 반환합니다.
	int pmValue = analogRead(potentiometer);

	// 측정된 밝기 값를 시리얼 모니터에 출력합니다.
	Serial.print("potentiometer = ");
	Serial.println(pmValue);

	// 가변저항으로부터 측정된 값 (0~1024)을 아날로그 출력 값 (0~255) 범위로 변환합니다.
	pmValue = map(pmValue, 0, 1023, 0, 255);
	// LED가 연결된 핀으로, 변환된 값 만큼의 밝기로 켜지도록 설정합니다.
	// 만일 측정된 값이 500 이라면, 디지털 핀으로 출력 할 수 있는 최대값 255의 절반에 해당되므로,
	// LED가 5V 전류로 낼 수 있는 최대 밝기의 절반으로 해석 할 수 있습니다.
	// 이는 디지털로 아날로그 신호를 보내는 펄스 폭 모듈레이션(PWM)에서 duty-cycle이 50%인 것으로 설정됩니다.
	// 오렌지보드 디지털 핀의 PWM 주파수를 약 500Hz로 가정하면, 1초에 255번만 HIGH 신호를 보내는 것과 같습니다.
	analogWrite(led, pmValue);
	// 0.1초 동안 대기합니다.
	delay(100);
}

 

 

kocoafabeditor

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

오렌지 보드, 가변저항, LED