전기전자2012.04.17 01:30
양단자를 손으로 꼭 잡으면 켜지는 스위치입니다.
놀라운 점은 한사람 뿐 아니라,  수십명이 손을 잡아서 장거리 회로를 구성해도 작동됩니다.
가장 기초적인 트랜지스터 활용예이면서 제법 재밌는 응용을 할수있는 회로입니다. 아래 회로1 상의 콜렉터(C) 점과 R1사이에 LED를 넣어주면 아두이노 없이도 LED를 On/Off 시켜볼수 있습니다. (단, R1은 330옴으로 변경요함)
아두이노에서 활용하려면 아래와 같이 연결하시면 됩니다.




회로1.이 기본회로입니다.
A와 B점을 양손으로 잡으면 트랜지스터 Base에 전류가 가해져서 C점의 전압이 강하(Low)하게됩니다.  A와 B간에 결합이 없어서 트랜지스터의 Base와 Emitter간의 전류가 흐르지 않게되면 C점의 전압은 거의 5V(High)로 유지됩니다.
아날로그입력핀으로 감지하면 이값(전압)의 변화를 확인 가능하며,  디지탈입력으로 감지하면 HIGH / LOW를 구분할 수 있게 됩니다. 회로1에서 R1은 꼭 필요하지만 R2는 A와 B가 쇼트될 가능성이 있어서 보호차원에서 넣은 저항입니다. 쇼트 시킬 일이 없다면 생략해도 됩니다.

트랜지스터는 유사품(범용 NPN형)으로 대체가능합니다.
위 경우엔 2sc1815를 사용한 예입니다.(적외선 고출력 송신시 사용한 예는 http://robobob.co.kr/64 참고)

회로1의 경우 예제소스는  아두이노 스케치에서 기본제공하는
File > Examples > Analog > AnalogInOutSerial 예제를 업로딩 후,
 시리얼모니터 창을 열어놓고  A,B점을 양손으로 꽉 잡아보시면 됩니다. 
접촉 상태에따라 A0핀으로 입력받는 전압 값의 변화 출력됩니다.


우측의 회로2. 는 저항을 모두 생략한 상태이며 R1을 생략하고 대신 아두이노 내부 풀업저항을 활성화 시킨 상태입니다. 즉, R1 역활을 하는 내부 저항을 활용하는 방법입니다.대부분의 마이크로콘트롤러칩들은 외부저항없이도 프로그램 세팅만으로 내부 풀업저항을 설정할 수 있는 기능이 있습니다.풀업저항 활성화를 위해선  핀모드를 입력모드로 전환 후, 해당핀을 HIGH로 세팅해주면 됩니다.  내부 풀업을 활성화 시키는 코드가 포함된 예제소스는 아래와 같습니다.
(참고. 쇼트 보호저항 R2은 넣어주시는것이 좋습니다.)


// 아두이노 디지탈입력핀 D2로 입력할 경우로 가정,  풀업저항 On

int ledPin = 13;      // 아두이노 내장 LED 사용

void setup() {
  pinMode(ledPin, OUTPUT);  
  pinMode(2, INPUT);   //가령, D2로 입력받을경우
  digitalWrite( 2, HIGH);   // D2핀의 풀업저항을 활성화시킴. (입력모드로 전환후 HIGH출력하면됨)

}

// A와 B점을 손으로 잡으면  아두이노 내장 LED가 켜지고 ,  놓으면 꺼집니다.
void loop() {     
  if( digitalRead(2)){
    digitalWrite(ledPin, LOW);   
  }else{
    digitalWrite(ledPin, HIGH);    
  }
  delay(100);
}

참고로,  5V 전원을 사용하므로 손으로 잡아도 감전 될 걱정은 안하셔도 됩니다.


활용예.
잘만 활용하면 터치센서 대체용으로 활용 가능합니다. 터치센서는 한극으로 작동 되지만, 러브스위치는 두접점을 동시에 눌러야 작동되는점이 차이점입니다.  TR한개만 있으면 되므로 매우 저렴한 방법입니다.
특히 사람의 몸을 통하여 회로가 구성된다는 점이 알쏭 달쏭 요상한 재미를 더해주므로 여러명이서 재밌는 이벤트를 구성할때 활용하면 좋은 소재가 될 수 있습니다.

알림. 위 회로와 소스로 테스트 결과 잘 작동됨을 확인하였습니다.  시간이 늦은 관계로 실제 이미지와 작동영상은 추후에 올리겠습니다.





저작자 표시 비영리 변경 금지
신고
Posted by 로보밥 로보밥

댓글을 달아 주세요