반응형

전혀 계획에 없던 DIY였는데 마트에 들렀다가 아래와 같은 것을 보게 되었다. 충동적으로 구매 후 차의 실내등을 누런색의 백열전구에서 하얀색의 LED 등으로 바꾸어 보았다. 

 

LED 포장의 뒷면을 보니 차량별로 규격이 나와 있는데 아반떼AD의 경우에는 실내 앞에 있는 등은 10T를 구입하면 되고 중간 실내등은 31mm짜리를 구입하면 되었다.

 

 

전방등의 경우 투명 커버만 제거하고 교체가 가능하다고 하는데 괜히 뜯다가 흠집이 날 수도 있을 것 같아서  그냥 분해해서 작업해 주었다. 안경 보관함을 열면 안쪽에 2개의 나사가 있는데 이것만 풀고 빼내면 빠진다. 케이블 2개도 분리해 준다.

 

 

뜯어낸 전방 실내등 겸 안경 보관함 부품이다.

 

 

뒷면을 보면 전구를 뽑을 수 있다. 화살표 부분의 노브를 왼쪽으로 돌리면 쉽게 기존의 전구가 뽑힌다.

 

 

아래 까만 플라스틱 부분이 소켓인데 이것도 뽑아주어야 한다. 그냥 뽑으면 전구가 뽑힌다.

 

 

분리된 소켓과 전구. 전구는 이제 필요가 없고 소켓에 LED를 끼워준다.

 

 

구입한 LED 왼쪽이 전방 실내등 우측이 중앙 실내등이다. 전방은 2개, 중앙은 1개가 들어있다.

 

 

기존 소켓에 LED를 끼워 주었다. 극성은 없다.

 

 

다시 조립하고 실내등을 켜보았다. 노란색이 하얀색 등으로 바뀌었다.... 는 것 빼고는 뭐가 달라졌는지 잘 모르겠다. 밤에 켜보면 좀 더 밝을까?

 

 

이번에는 중앙 실내등을 바꿔본다. 중앙 실내등은 나사 같은 거 없이 그냥 커버를 제쳐서 떼어내야 한다. 이게 좀 어려워서 여러 가지로 시도를 해 보다가 작은 마이너스 드라이버로 꾹 눌러서 제쳐주니 겨우 열렸다. 물론 그 과정에서 플라스틱 부분에 흠집이...

 

 

솔직히 노란색 등도 정감 있고 나쁘지 않은데...

 

 

중앙등에는 31mm짜리 LED가 1개가 들어간다.

 

 

기존의 전구를 뽑아준다. 불이 켜져 있었던 경우 매우 뜨거우므로 조심해서 작업해야 한다.

 

 

중앙등에는 이런 뾰족한 모양의 백열전구가 들어가 있다.

 

 

전구를 빼낸 자리에 LED를 끼워준다. 소켓에 딱 맞는다.

 

 

작업이 끝났다. 둘 다 켜보았다. 왜 자꾸 노란색 등이 더 좋아 보이는지 모르겠다. 뭔가 언밸런스한 느낌도 든다. 차차 익숙해질지도?

 

 

노란색 백열전구는 포장해서 만약의 경우를 위해 폐기하지 않고 보관하기로 했다.

 

 

LED 포장지 뒷면에 나오는 차종별 실내등 규격표이다. 트렁크등, 번호판등도 바꿀 수 있는데 그다지 추가로 작업하고 싶은 생각은 없다. 혹시 따라 할 분들은 배송비 포함해도 온라인에서 LED를 구입하는 게 조금 더 저렴하게 구입이 가능하다.

 

하지만 LED 마니아가 아니라면 별로 추천하고 싶지는 않다. 벌써 예전의 노란등이 그리워진다. ㅎㅎ

반응형
반응형

온라인 쇼핑몰을 구경하다가 무지하게 싸게 나온 LED 등기구(개당 5000원)를 보게 되었다. 몇 년전 우리집 형광등을 전기절약을 위해서 LED로 바꿀까 생각은 했었지만 그때는 좀 비쌌었다. 그래서 잊고 지내다가 저렴한 가격과 괜찮은 성능의 LED 등을 발견하게 되어 바로 구입하였다. 사이트에는 주문폭주라는 말이 써 있었고 배송이 늦어지니 죄송하다는 말이 있었다. 많은 사람들이 DIY로 방등을 교체하려나 보다. 아무튼 결제 후 거의 일주일을 기다려서 LED 등을 받게 되었다. 


먼저 기존의 형광등은 전자식 안정기에 U자형 형광등이 2개가 들어가는 제품이었다. 

위와 같이 일자형 형광등이고 가운데 안정기가 있고 양쪽으로 두 개의 형광등을 꼽는 형식이다. 다른 가정에서도 많이 사용할 것이다.


FPL36EX-D 라는 이름의 형광등이 2개가 들어간다. 개당 소비전력이 36W 이다. 그러므로 2개가 들어가니 36x2=72W의 전기를 먹는 등기구이다.


형광등은 뜯기가 엄청쉽다. 손으로 양쪽 2개의 나사만 풀면 천장에 고정된 브라켓에서 떨어진다. 등기구에는 220V 전선이 연결되어 있는데 아래와 같은 커넥터로 등기구와 천장의 전원선이 연결된다. (교체 시 반드시 전등 스위치를 OFF 한 상태에서 작업해야 한다. 감전되어서 생명이 위험하게 될 수도 있다.)


위와 같은 커넥터인데 양쪽으로 '천장 - 커넥터 - 등기구' 를 연결할 수 있는 구멍이 있다. 전선을 밀어넣으면 잘 빠지지 않는 구조로 되어 있다. 전선을 빼려면 위의 레버1과 2를 누르면 전선이 빠지게 되어 있다.


교체한 형광등 안정기를 뜯어 보았다. 나뒀다가 다른 DIY 할 때 써먹을 수 있지 않을까?


형광등의 밝기를 스마트폰 어플(Lux Meter)을 이용해 측정해 보았다. 형광등에서 아래로 120cm 정도의 거리에서 측정한 값이다. 계속 변하지만 대략 500Lux 정도의 밝기가 나온다.


교체할 LED 일자형 방등이다. 국산은 아니고 중국산이다. 


한국의 업체가 중국 공장에 의뢰하여 OEM 생산을 한 것 같다. 22W의 전력을 먹는다. 대부분 비슷한 규격의 타 제품이 30W 이상인데 이 제품은 전력소모가 더욱 적다. 기존에 사용하던 형광등이 72W라고 했으니 형광등 대비 30% 정도의 에너지 소비이다.


저전력 이외에 형광등에 비해 LED가 좋은 점이다. 형광등은 자외선을 형광물질에 의해 가시광선으로 바꿔서 빛을 낸다. 당연히 반도체 소자를 이용한 LED는 자외선 같은거 없고 수은도 없다.


주의사항이다. 생각보다 꽤 넓은 온도범위에서 사용이 가능하다.


형광등을 뜯어내고 형광등 브라켓도 뜯어내고 LED 등에 같이 딸려온 브라켓 등을 조립하고 스위치를 켜 보았다. 느낌상 형광등보다 훨씬 밝은 느낌인데 전력은 형광등 대비 30% 밖에 안먹다니...!  사진을 보고 주변부가 어두워서 어둡다고 느낄수도 있는데 사진상의 문제일 뿐 실제로는 아주 밝다.


형광등 측정과 동일한 위치에서 다시 밝기를 재 보았다. 대략 1200Lux 정도가 나온다. 형광등이 500정도 였으니 두 배 이상 밝아진 것이다.


출처: http://safetykorea.kr/release/certDetail?certNum=JU11280-14010&certUid=173750

혹시 몰라서 모델명을 구글에 검색해보니 국가기술표준원의 인증을 받은 제품이었다. 묻지마 제품은 아닌 듯 하다. 요즘 인증도 받지 않은 묻지마 LED가 많다고 한다. 조심해야 한다.


이 제품의 표시된 수명은 30000시간 이다. 하루 종일 일년 내내 켠다고 가정하면 3년 반 정도의 수명이다. LED 답게 길다.  고장 없이 오래만 간다면 가성비도 좋고 괜찮은 제품인 것 같다. 다음달 전기요금이 얼마나 절약될지 기대가 된다.


그나저나 뜯어낸 멀쩡한 형광등 등기구와 형광등은 뭐하는데 쓰지?

반응형
반응형

지난번 글 (http://deneb21.tistory.com/453) 에서 S4A (Scratch for Arduino) 프로그램을 설치해보고 간단하게 Blink 예제를 만들어서 실행해 보았다. 디지털 출력은 해 보았으니 이번에는 센서의 값을 어떻게 입력받고 이것의 처리는 어떻게 하는지 알아보도록 하겠다.  준비물은 아두이노 우노, LM35 온도센서, 브레드보드, 케이블, LED 한 개 정도 되겠다. 목표는 온도센서로 온도를 측정해서 표시하고 온도가 일정 값 이상 올라간다면 LED 를 켜주고 아니라면 끄는 동작을 S4A 를 이용해서 만들어 볼 생각이다.


LM35 온도센서는 위와 같이 생겼다. 일반적인 트랜지스터의 크기와 모양과 같다. 5V를 사용하며 가운데 단자가 아날로그 출력으로 온도를 알려준다. 다만 온도는 다음의 공식에 의해서 계산되어 나올 수 있다. 그러므로 S4A로 프로그래밍 시 고려되어야 한다.


■ LM35 온도 구하는 공식

온도 = 센서값 x 500 / 1024

또는

온도 = 센서값 x 0.48828125


■ 연결

아두이노와 온도센서(LM35)의 연결

 아두이노 우노

 LM35

 5V

 5V

 Analog 0 (A0)

 Signal (Output)

 GND

 GND


아두이노와 LED 연결 (원래 LED 의 보호를 위해 220옴 정도의 저항을 연결하는 것이 권장사항 이지만 여기서는 생략함)

 아두이노 우노

 LED

 Digital 13 (D13)

 긴 다리 (+)

 GND

 짧은 다리 (-)


연결 사진



연결을 마쳤으면 아두이노를 PC 에 연결하고 S4A 프로그램을 실행한다. 



그리고 아래와 같이 프로그램 블럭을 만들어 주었다.



1. 일단 온도센서의 값을 변수에 담아주기 위해서 '변수' 에 들어가서 temp 라는 이름으로 변수를 만들어 주었다.

 

2. '동작' 에 들어가서 아날로그 센서의 값을 불러오는 블럭을 가져와서 '연산' 에 있는 사칙연산 블럭을 이용해 LM35의 온도 구하는 공식을 적용하였다. 이렇게 하면 A0 단자에 연결된 온도센서의 값을 불러와서 온도를 temp 라는 변수에 저장한다. 위의 그림에 보면 연산 블럭이 2개가 겹쳐서 사용이 되었는데 맨 위에 있는 것이 먼저 실행되고 그 아래에 있는 것이 나중에 실행된다.


3. LED 가 켜질 것인지 꺼질 것인지의 판단을 위해 '제어' 에 들어가서 '만약 ~ 라면 ~아니면' 블럭을 가져와서 temp 변수의 값과 비교해서 디지털 13번 핀에 연결된 LED 를 켤 것인지 끌 것인지 판단한다. 위의 프로그램에서는 LED가 켜지는 조건을 23도 보다 높을 때로 했는데 이것은 원하는 대로 수정하면 된다.


4. '형태' 의 '~말하기' 블럭을 가져와서 temp 변수를 출력해 준다. (말하기 이지만 실제로 소리가 나오지는 않는다. S4A 화면에 온도가 표시된다.


5. '제어' 블럭에서 'x 초 기다리기' 블럭을 가져와서 1초 마다 온도를 측정하도록 한다. (꼭 하지 않아도 됨)


6. 위의 과정을 무한반복 하게 하기 위해서 '제어' 의 '무한반복' 블럭을 가져와서 위의 과정을 하는 블록을 모두 안에 넣어준다.


7. 프로그램을 시작하기 위해서 '제어' 의 '(깃발이)클릭되었을때' 블럭을 맨 위에 놓아 준다. 



위의 프로그램을 실행한 결과 동영상이다. 처음에 꺼져 있던 LED 가 온도센서에 손가락을 대자 온도가 올라가고 LED 가 켜지는 것을 볼 수 있다. 반대로 손가락을 떼니 곧 온도가 내려가고 LED 가 꺼진다.


일단 S4A를 이용해서 입력과 출력을 모두 해 보았다. 이 외에도 수 많은 센서를 사용이 가능하며 구글링 해 보면 S4A를 가지고도 엄청난 작품(?)을 만든 사례들이 많이 있다. 이런 여러가지 사례들을 연구해보고 교육용으로서 S4A를 활용한다면 컴퓨터 화면만 들여다 보면서 하는 소프트웨어 교육 보다는 덜 따분하고 재미있는 교육이 되지 않을까 생각해 본다.

반응형
반응형

LED에 대해서는 이 블로그에서 많이 다루었는데 아이러니 하게도 LED 밝기 조절은 해보지 않았던 것 같다. 그래서 오늘은 LED 밝기 조절과 여러가지 색의 LED를 이용해서 색의 혼합을 통한 색상 만들기에 대해서 알아보도록 하겠다. 아두이노에 연결된 LED 는 ON/OFF 의 디지털 신호만 있는 것이 아니라 아날로그 신호를 보낼 수 있다. 즉 코드에 따라서 출력전압을 조절 할 수 있는 것이다. LED에 공급되는 전압을 조절할 수 있게되면 LED의 밝기를 조절할 수 있는 것이다. 통상적으로 LED 는 전압이 커지면 밝아지고 낮으면 어두워진다.


아두이노 우노의 경우  3, 5, 6, 9, 10, 11 번 핀(Digital PWM 지원 핀)으로 analogWrite 를 할 수 있다. 먼저 코드를 하나 만들어 보겠다. 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#define REDPIN 5
 
#define FADESPEED 10     // 밝아지고 어두워지는 Speed 조절
 
void setup() {
  pinMode(REDPIN, OUTPUT);
}
 
void loop() {
  int r;
  // 빨간 LED 가 점점 밝아짐
  for (r = 0; r < 256; r++) { 
    analogWrite(REDPIN, r);
    delay(FADESPEED);
  }
  
  // 빨간 LED 가 점점 어두워짐
  for (r = 255; r > 0; r--) { 
    analogWrite(REDPIN, r);
    delay(FADESPEED);
  }   
}
cs

 

위의 코드는 아두이노 5번핀에 연결된(물론 LED 짧은 다리는 GND에 연결) LED를 analogWrite를 이용해서 점진적으로 밝게 그리고 어둡게 하는 코드이다. 코드에 보면 for 문으로 총 255 단계(256 아님, 256일 경우 LED 꺼짐)의 전압을 LED 로 보내고 있다. 255 단계의 전압값은 변수 r 에 저장되어서 analogWrite(연결핀, 밝기값 r) 로 LED 의 밝기를 컨트롤 하고 있음을 알 수 있다. FADESPEED 변수는 밝아지고 어두워지는 시간을 조절한다.


위의 동영상은 위의 코드를 적용한 동영상이다. 우측의 노란, 파란 LED 는 다음 테스트를 위한 LED로서 신경쓰지 말자 영상을 보면 빨간 LED가 DigitalWrite 할 때 와는 다르게 점진적으로 밝아지고 어두워지는 것을 볼 수 있다.


그럼 이번에는 analogWrite를 이용해서 빛의 삼원색인 RGB (Red, Green, Blue) 를 가지고 빛을 혼합하여 새로운 색을 만드는 원리를 알아보자 하지만 이를 제대로 알아보기 위해서는 RGB LED Strip (LED의 빛을 잘 섞어줄 수 있도록 만든 부품) 이라는 것이 필요한데 나에게는 이것이 없다. 만약 가지고 있다면 아래에서 소개하는 코드를 이용해서 보다 완벽하게 구현할 수 있을 것이다.

 

위의 사진이 RGB LED Strip 이라는 부품이다. 보라색을 내고 있는 것을 볼 수 있는데 이것은 Blue 와 Red 를 섞으면 이런 색이 나온다고 한다. R, G, B 색을 내는 LED 중에서 R 과 B 가 적절한 밝기로 섞이는 순간 이런 보라색을 내는 것이다.


위의 그림은 RGB 를 섞으면 대충 어느색으로 변하는지 알려준다. 참고로 모두 다 섞으면 백색이 된다.


연결은 간단하다. 브레드보드를 이용해서 아두이노의 GND 를 각 LED의 짧은 다리를 공통적으로 연결했으며 (음극, Cathode) , Anode쪽의 연결은 Red 는 5번핀, Yellow 는 6번핀, Blue 는 3번핀에 연결하였다. 그리고 녹색 LED가 없어서 Yellow 를 연결하였다. 물론 이렇게하면 당연히 제대로 된 빛의 혼합에 의한 색은 볼 수 없다. 그저 3개의 LED가 밝아졌다 꺼졌다 할 뿐이다. 이 글의 목적은 원리의 파악이므로 그냥 넘어가기로 한다. ;;  제대로 해 보고 싶은 사람은 위에서 말했던 RGB LED Strip 이라는 부품을 연결하면 된다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#define REDPIN 5
#define GREENPIN 6
#define BLUEPIN 3
 
#define FADESPEED 5     // 밝아지고 어두워지는 Speed 조절
 
void setup() {
  pinMode(REDPIN, OUTPUT);
  pinMode(GREENPIN, OUTPUT);
  pinMode(BLUEPIN, OUTPUT);
}
 
void loop() {
  int r, g, b;
 
  // 파란색에서 보라색으로 변화
  for (r = 0; r < 256; r++) { 
    analogWrite(REDPIN, r);
    delay(FADESPEED);
  } 
  // 보라색에서 빨간색으로 변화
  for (b = 255; b > 0; b--) { 
    analogWrite(BLUEPIN, b);
    delay(FADESPEED);
  } 
  // 빨간색에서 노란색으로 변화
  for (g = 0; g < 256; g++) { 
    analogWrite(GREENPIN, g);
    delay(FADESPEED);
  } 
  // 노란색에서 녹색으로 변화
  for (r = 255; r > 0; r--) { 
    analogWrite(REDPIN, r);
    delay(FADESPEED);
  } 
  // 녹색에서 청록색으로 변화
  for (b = 0; b < 256; b++) { 
    analogWrite(BLUEPIN, b);
    delay(FADESPEED);
  } 
  // 청록색에서 파란색으로 변화
  for (g = 255; g > 0; g--) { 
    analogWrite(GREENPIN, g);
    delay(FADESPEED);
  } 
}
cs


위의 코드는 각각의 LED 의 밝기를 조절해서 빛을 혼합해서 새로운 색을 만들어주는 코드이다. RGB 에 없는 보라색, 노란색, 청록색 등을 만들어 주는 것을 알 수 있다. 여기에서 쓰인 변수들도 맨 위의 코드와 마찬가지로 for 문을 이용해서 각각의 LED 에 analogWrite 값을 조절해 밝기를 조절하고 있는 것을 알 수 있다. 길이만 늘어났지 거의 같은 코드이다.


실행결과이다. 예상대로 빛이 섞이지 않고 그냥 따로 따로 논다. 하지만 이런 원리로 빛의 합성으로 새로운 색을 만들 수 있다는 것은 알게되었다. 지금 드는 생각이지만 3개의 LED의 간격을 줄이고 빛의 산란을 일으키는 뿌연 간유리 등을 통해 색을 본다면 혼합될 수도 있지 않을까? 생각해본다. 아무튼 지금은 그런게 없으니 패스.


이런 원리가 요즘 많이 쓰이는 곳이 있다. 바로 공원 산책로 등에 쓰이는 LED Strip 이다. 위의 영상은 우리동네 산책로에 있는 LED Strip이 쓰인 길이다. 길다란 호스모양의 LED Strip이 길 옆 난간에 부착되어 있고 각각의 빛을 발산하면서 새로운 색을 합성하고 변화하면서 역동적인 조명을 만들어낸다. 아마 이런 곳에도 아두이노는 아니겠지만 비슷한 마이크로프로세서가 쓰여서 새로운 색을 만들도록 제어를 하고 있지 않을까 생각해본다.

반응형
반응형

스위치(Switch)는 거의 모든 전자제품에 필수적으로 들어가는 부품 입니다. 전원을 ON/OFF 하거나 사용하고자 하는 기능의 ON/OFF 에 주로 쓰이죠. 아래 위로 내리거나 올려서 작동하는 스위치, 한 번 누르면 ON 상태가 유지되고 다시 한 번 누르면 OFF 되는 스위치 등 수 많은 종류의 스위치가 있습니다. 아두이노 우노 자체에도 Reset 기능을 하는 스위치가 붙어 있기도 하죠. 이번에는 손으로 누르면 ON 되고 떼면 OFF 되는 가장 일반적인 택트 스위치 (Tact Switch) 2개로 각각 LED를 제어해 보도록 하겠습니다. 


이번에 사용할 스위치 입니다. 위와 같이 4개의 다리(Lead)가 있고 가운데 누르는 버튼이 있습니다. 다리는 스위치를 누를 시에 각각 대각선 방향으로 전류가 통하게 됩니다. 이번에는 한 쌍의 Lead 만 필요하므로 녹색으로 표시한 Lead 한 쌍은 펴주어서 브레드보드에 끼우지 않을 것입니다. 대각선 방향의 주황색 스위치 Lead 또는 녹색 Lead 한 쌍만 사용하게 됩니다. 


■ 연결


_2xSwitch_2xLED_ON_OFF.fzz


위와 같이 연결하면 됩니다. 스위치는 D10, D11에 각각 연결되어서 누르게 되면 D6, D7에 연결된 LED에 신호를 주게 되는 구조 입니다.


실제 연결한 모습 입니다. fritzing 회로도에는 LED가 고장나는 걸 방지하기 위해서 220Ω의 저항을 달아 주었으나 저는 그냥 연결 했습니다. 테스트 겸 잠시 사용하는 회로에서는 LED가 잘 고장이 나지 않는데 장시간 사용하는 회로를 만든다고 하면 반드시 LED 보호를 위해 저항을 달아 주어야 합니다. 안 그러면 LED가 고장날 수 있습니다.


■ 소스


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/*****************************
2016.06.14 deneb21
2 Led Control by 2 Switch 
http://deneb21.tistory.com/377
******************************/
 
//LED 핀설정
int led1 = 6;
int led2 = 7;
 
//스위치 핀설정
int sw1 = 10;
int sw2 = 11;
 
void setup() {
  //시리얼 모니터
  Serial.begin(9600); 
  //LED 1,2를 OUTPUT 으로 설정
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  //SW 1,2를 설정, 아두이노 풀업저항 사용
  pinMode(sw1,INPUT_PULLUP);
  pinMode(sw2,INPUT_PULLUP);
}
 
void loop() {
  //SW1 ON, SW2 OFF => LED1 ON, LED2 OFF
  if(digitalRead(sw1)==LOW && digitalRead(sw2)==HIGH) {
    digitalWrite(led1,HIGH);
    digitalWrite(led2,LOW);
    Serial.println("SW1 ON");
  //SW1 OFF, SW2 ON => LED1 OFF, LED2 ON  
  } else if(digitalRead(sw1)==HIGH && digitalRead(sw2)==LOW) {
    digitalWrite(led1,LOW);
    digitalWrite(led2,HIGH);
    Serial.println("SW2 ON");
  //SW1 ON, SW2 ON => LED1 ON, LED2 ON  
  } else if(digitalRead(sw1)==LOW && digitalRead(sw2)==LOW) {
    digitalWrite(led1,HIGH);
    digitalWrite(led2,HIGH);
    Serial.println("SW1,2 ON");
  //SW1 OFF, SW2 OFF => LED1 OFF, LED2 OFF    
  } else {
    digitalWrite(led1,LOW);
    digitalWrite(led2,LOW);
    Serial.println("NO SW");
  }
}
cs


주석에 자세하게 써 놓았지만 해당 스위치를 누르게 되면 LOW 가 됩니다. LOW가 되는 스위치가 어떤 스위치인지 판단해서 해당 LED를 켜주거나 꺼주게 됩니다. 두 개의 SW 는 위의 경우의 수 이외에는 눌리는 패턴이 없겠죠?


그리고 Setup() 에 보시면 pinMode(sw1,INPUT_PULLUP); 이런 부분이 있는데 여기서 INPUT_PULLUP 이라는 설정이 보입니다. 그냥 INPUT 하면 되지 INPUT_PULLUP 은 무엇일까요?


스위치가 눌리지 않았을 때 디지털 핀의 Floating 상태(HIGH 와 LOW가 번갈아 바뀌는 현상)를 방지하여 HIGH 상태로 유지하기 위해서 원래는 위의 그림과 같이 스위치 입력 부분에 저항을 달아 주어야 합니다. 이것을 풀업저항(Pullup Resistor)이라고 하는데 아두이노에는 자체적으로 이 저항이 내장되어 있습니다. 곧 INPUT_PULLUP 은 아두이노의 내장된 저항을 사용하겠다는 뜻 입니다. 아두이노에 기능이 내장이 되어 있는데 굳이 따로 저항을 연결할 필요는 없겠죠?


만약 스위치 입력 소스 부분에 INPUT_PULLUP 을 이용하지 않고 INPUT 을 이용한다면 위의 그림과 같이 10KΩ 정도의 풀업 저항을 스위치에 연결해 주면 됩니다.

 

 

동작하는 장면을 동영상으로 찍어 봤습니다. 하나씩 눌러 보고 두 개를 동시에 눌러도 보고... 누르는 대로 잘 작동 하네요.  이런 식으로 더 많은 스위치와 LED를 달아서 갯수를 늘려갈 수도 있습니다. 그리고 당연히 LED가 아니더라도 릴레이 같은 부품도 제어가 가능 하겠죠?!



반응형
반응형

현재 다이오드(Diode)의 역할과 종류는 굉장히 다양해 졌지만 일반적으로 정의할 수 있는 다이오드는 P형 반도체와 N형 반도체를 접합해서 만들어지는 전자부품을 말합니다. 이는 주로 한쪽 방향으로만 전류를 흐르게 하는 성질을 가지고 있습니다. 다이오드에 건전지 등으로 전류를 연결해주면 어떤 방향으로는 전류가 잘 흐르는데 반대로 연결하면 전혀 흐르지 않게 되는 것이죠. 이런 성질을 이용해서 교류를 직류로 바꾸는 전원장치 등에 많이 쓰입니다. 가정에서 사용하는 어댑터들에는 필수적으로 다이오드가 들어 갑니다.


범용 다이오드 (1N5404)

제가 사용하던 5V 어댑터 분해 사진 입니다. 위와 같이 총 7개의 다이오드가 사용된 것을 볼 수 있습니다. 기판을 잘 보시면 다이오드가 붙은 부분에는 D1, D2 등의 문자가 쓰여 있습니다. 콘덴서는 C, 저항은 R 을 쓰는 것처럼 회로도에서 다이오드는 D 로 표시 합니다.


현대에는 이러한 다이오드의 종류가 다양해지면서 이런 정류작용 뿐만 아니라 특수한 목적으로 사용되는 다이오드들이 나오기 시작했습니다. 대표적으로 발광 다이오드라고 불리는 LED(Light Emitting Diode) 를 들 수 있습니다. 생활에서 광범위하게 많이 쓰이는 다이오드로 전류를 통하게 되면 빛을 내는 특성을 가지고 있으며 전력소모도 낮고 수명도 길어서 최근에는 형광등을 대체하는 조명으로 각광을 받고 있기도 합니다. 


제가 아두이노에 연결해서 사용하고 있는 LED 입니다. 빨강, 노랑, 백색, 청색, 녹색 등등 전류를 통하면 다양한 색상의 빛을 만들어 냅니다.


이번 글에서는 이렇듯 전자산업에 있어서 없어서는 안될 다양한 다이오드들에 대해서 알아보겠습니다.



1. 정류(범용) 다이오드

가장 기본적이고 범용적인 다이오드로서 한 쪽 방향으로만 전류가 흐를 수 있게 만들어서 정류 작용을 하거나 역전류를 방지해서 회로를 보호하는 역할을 하는 다이오드 입니다. 위에서 말했듯이 가정용 어댑터 등에 많이 쓰입니다.


기호는 위와 같습니다. Anode 에 + 를 연결하고 반대인 Cathode 에 - 전류를 통할때에만 전류가 흐릅니다. 반대로 연결하게 되면 전류가 흐르지 않습니다.


정류용 다이오드의 실제 모습 입니다. 은색으로 띠가 있는 쪽이 Cathode 입니다. 


다이오드의 규격은 다이오드에 쓰여진 품번으로 알 수 있습니다. 제가 가지고 있는 다이오드로 예를 들어보겠습니다. 

자세히 보면 다이오드의 표면에 1N4007 이라고 쓰여 있습니다. 구글이나 http://www.alldatasheet.com/ 같은 전자부품 데이터시트 검색 사이트에서 1N4007 을 검색해보면 데이터시트가 나옵니다. 그것을 보고 다이오드의 규격을 알 수 있습니다. 

실제 데이터시트를 검색해서 일부분을 발췌해 봤습니다. 제가 가진 1N4007 다이오드의 경우는 1000V, 1A 에 사용이 가능한 다이오드 라는 것을 알 수 있습니다. 허용전압에 따라서 1N4001~1N4007 까지의 다이오드들이 있네요.


교류를 직류로 바꾸는 회로

정류 다이오드는 위와 같은 AC to DC 회로에 많이 쓰입니다. 가정용 교류인 220V를 원하는 전압과 전류의 직류로 바꾸어주는 회로 입니다. 이 회로에 대해서는 오픈튜터리얼스의 다음 동영상을 보시면 이해가 가실 겁니다. 저도 이해가 잘 안되었었는데 이 동영상을 보고 한 방에 이해가 갔거든요. 



참고로 위의 회로에서 쓰인 4개의 다이오드를 하나의 소자에서 가능하도록 한 브릿지 다이오드라는 것도 있습니다. 이걸 사용하면 아무래도 회로가 간단해 지겠죠? Input 에서 +와 -가 계속 바뀌는 교류라도 Output 은 항상 직류가 나오도록 하는 작용을 하나의 다이오드 소자로 가능하게 하는 것입니다.


브릿지 다이오드





2. 제너다이오드(Zener Diode), 정전압 다이오드

미국의 물리학자인 Clarence Zener 라는 사람이 발견한 Zener 효과라는 현상을 이용한 다이오드 입니다. 주로 정전압 장치에 쓰이며 전압을 일정하게 유지하는 역할을 하는 다이오드 입니다. 일반 다이오드와 다르게 역방향으로 전압을 걸어서 사용합니다. 즉 Cathode에 +를 Anode에 - 전압을 걸어 줍니다. 역방향으로 일정 전압 이상을 가하면 Zener 항복 현상이라는 것이 일어나서 전류가 흐르게 됩니다. 하지만 전압은 일정하게 유지되는 특성을 이용해서 정전압 장치에 쓰이게 됩니다.


제너 다이오드의 모습 입니다. 까만 테두리가 있는 쪽이 Cathode, 반대편이 Anode 입니다. 


제너 다이오드의 기호 입니다. 


Voltage Regulator 회로도

제너 다이오드를 이용한 Voltage Regulator 회로 입니다. 만약 회로의 V in 에 5V의 전압이 걸리고 제너 다이오드가 3.3V의 전압을 만들어주는 규격의 제너 다이오드라면 V out 에는 3.3V의 전압이 걸리게 됩니다.


규격은 정류 다이오드 보는 방법과 같습니다. 품번을 데이터시트 검색 사이트에서 검색해 보면 데이터시트가 나옵니다. 중요한 것은 허용 전력(W) 과 전압(V) 정도 되겠습니다. 종류가 많다보니 위와 같이 시리즈별로 그룹 지어서 데이터시트가 만들어져 있습니다.




3. 발광 다이오드 (LED, Light-Emitting Diode)

순방향으로 전류를 가하면 빛을 내는 특징을 가지는 다이오드 입니다. 각종 전자, 전기 장치의 표시부분이나 요즘은 조명용으로도 많이 사용합니다. 여러가지 색상의 빛을 내고 종류도 다양합니다.


일반적인 발광 다이오드

다리가 긴 쪽이 Anode (+) 이며 짧은 쪽이 Cathode (-) 입니다. 역방향으로 전류를 흘리면 빛이 발생하지 않습니다. 전류의 크기에 따라 밝기가 결정되며 정격전류 이상을 가하게 되면 고장이 날 수 있습니다.


아두이노에도 많은 SMD(기판에 직접 납땜되는 방식) 방식의 발광 다이오드들이 붙어 있습니다.


발광 다이오드의 기호 입니다. 빛이 발산되는 모습을 하고 있습니다. 화살표가 반대로 되면 포토 다이오드가 됩니다.


LED의 종류와 규격도 무수하게 많습니다. 그 중에서 일반적인 직경 5mm 의 LED의 규격은 대략 아래와 같습니다.


전압(forward voltage): 1.8~2.2V

적정 전류(suggested using current): 16~18mA

최대 전류(forward current): 20mA


만약 LED를 켜고자 하는데 공급 전원과 맞지 않을 경우에는 옴의 법칙에 의거하여 적절한 저항을 달아주면 됩니다. 적절 저항값의 계산은 다음과 같이 합니다.


(공급전압 - LED 전압) / LED 전류 = 저항값


예를 들어 공급전압이 5V 이고 5mm 직경의 LED 하나를 켜려고 한다면 155옴을 넘어가는 저항을 달아주면 되는 것입니다.


(5 - 2.2) / 0.018 = 155Ω

※LED 전류와 전압은 최대값으로 계산 했습니다. LED 종류에 따라 다를 수 있습니다.





4. 포토 다이오드 (Photo Diode)

포토 다이오드는 발광 다이오드 와는 반대로 빛 에너지를 전기 에너지로 바꿔주는 소자 입니다. 빛의 강도에 비례하는 전압을 만들어 냅니다. 그러므로 빛의 세기를 감지하는 센서로 사용이 가능 하며 리모컨의 수신부, 화재경보기 등에 쓰입니다.


포토 다이오드 특징

- 포토다이오드는 응답속도가 빠르고, 감도 파장이 넓으며, 광전류의 직진성이 양호하다.

- 작은 바이어스 전압에도 동작이 가능하다.

- 수명이 길며, 고속의 응답성을 가지고, S/N의 특성이 좋다.


포토 다이오드의 기호 입니다. 발광 다이오드와는 화살표(빛)의 방향이 반대 입니다.





5. 쇼트키 다이오드 (Schottky Barrier Diode, Hot Carrier Diode)

독일의 물리학자인 Walter H. Schottky 의 이름을 딴 다이오드 소자 입니다. 쇼트키가 발견한 금속과 반도체의 접촉면에 생기는 장벽(쇼트키 장벽)의 정류 작용을 이용하여 만들어 졌으므로 쇼트키라는 이름이 붙었습니다. 일반 다이오드에 비해 마이크로파(고주파)에서의 특성이 좋고 매우 좁은 쇼트키 장벽 내에서 전류제어작용이 행해지기 때문에 고속동작(고속 스위칭)에 적합하며, 마이크로파 수신 혼합기, 고속 논리용 다이오드 등에 사용됩니다. 


쇼트키 다이오드의 기호


다양한 쇼트키 다이오드들, 외관상으로는 일반 정류용 다이오드와 별 차이가 없는 제품들도 있습니다. 이런 경우 품번에 의해서 쇼트키 다이오드를 판별 할 수 있겠죠.


범용적으로 많이 쓰이는 1N5819 쇼트키 다이오드의 규격을 알아보기 위해 데이터시트를 찾아 보았습니다. 위와 같이 40V, 1A 이내에서 사용할 수 있습니다.





6. 배리캡 다이오드, 가변용량 다이오드 (Variable Capacitance Diode)

역방향 전압 크기의 변화에 따라 PN 접합의 공핍층(캐리어가 존재하지 않는 영역) 의 두께를 변화시켜 정전 용량의 값을 증가 또는 감소시킬 수 있는 다이오드 입니다. 주로 전압의 변화에 따라 발진 주파수를 변화 시키는데 사용합니다. 과거 텔레비전의 UHF · VHF대 및 FM · AM 라디오의 전자 동조용 부품으로 사용이 됩니다.


베리캡 다이오드의 기호 입니다. 


베리캡 다이오드의 실제 모습 입니다. 


위의 배리캡 다이오드의 데이터시트 입니다. 대략 20~540pF  의 Capacitance 를 가지는 것을 볼 수 있습니다.


이외에도 많은 종류의 다이오드가 있지만 주로 많이 쓰이는 것은 이 정도 인 것 같습니다.




반응형
반응형

예전에 사놓았던 천냥마트에서 산 1500원짜리 후레쉬가 집에 있었다. 나름 자가발전이 되는 후레쉬라고 하여 신기하게 생각하여 샀는데 어느날 불이 들어오지 않는다. 손에 쥐고 레버를 눌러주면 휠이 돌면서 충전하는 방식인데 뜯어보니 수은전지 3개만 들어있고 어디에도 충전지 또는 콘덴서는 들어있지 않았다. 그렇다. 처음부터 충전은 안되는 후레쉬였다. 이른바 중국산 fake 상품. 그냥 버리려다가 이를 충전식으로 개조해 보기로 했다. 폐품 활용이라고나 할까? 먼저 개조를 하려면 추가 부품이 필요하다. 배터리와 충전할 수 있는 충전모듈이다. 배터리는 기존 고장난 로지텍 무선 마우스에 들어있던 3.7V, 1700mAh 배터리를 이용하였고 충전모듈은 국내 인터넷 쇼핑몰에서 개당 2000원 정도에 구할 수 있었다.


충전모듈의 모습이다. 휴대폰 충전기로 충전이 가능하도록 마이크로 5pin 단자가 연결되어 있다. 크기는 500원짜리 동전 크기 정도이다. 리튬이온, 폴리머 배터리를 충전할 수 있다.


충전모듈(보호회로 내장)의 뒷모습이다. 단자가 6개가 있는데 VBAT 는 충전할 배터리의 플러스, 마이너스극에 연결하여주면 되고 OUT은 LED에 극성에 맞추어서 연결해 주면 된다. IN은 마이크로 5PIN 단자를 사용하지 않고 충전할 경우에 연결하는 단자인데 나는 마이크로 5PIN 단자를 사용하여 스마트폰 충전기로 충전할 계획이기 때문에 사용하지 않았다. 입력전압은 4.5~5.5V 까지 지원한다.


먼저 후레쉬를 분해해서 필요 없는 것들을 모두 없애고 LED부분, ON/OFF 스위치만 남겼다. 그리고 배터리를 글루건으로 내부에 부착하고 충전모듈과 LED, 스위치를 납땜해 준 후 충전모듈도 배터리 위에 글루건으로 붙여 주었다.



LED의 불이 아주 잘 들어온다.


충전하는 모습, 휴대폰 충전기와 연결된 마이크로 5PIN 케이블을 꼽으니 충전모듈에서 빨간불이 들어오면서 충전이 된다. 충전이 완료되면 녹색불이 들어온다. 충전모듈을 4개를 구입했으니 앞으로 배터리를 사용하는 다른 장치도 충전식으로 개조해 보려고 한다.

반응형

+ Recent posts