3D프린터와 아두이노/아두이노

아두이노 NPN 트랜지스터를 전기적 스위치로 활용

메카럽 2020. 9. 22. 09:55

안녕하세요. 메카럽입니다.

이번포스팅에서는 NPN 타입 트랜지스터를 전기적 스위치로 활용하는 간단한 예제를 해보겠습니다.

아래 그림은 콜렉터 단과 전원 사이에 풀업 저항을 배치하고 저항 아래에 출력단을 뽑아내었습니다. 아두이노의 디지털 출력단자의 상태가 LOW이면 트랜지스터는 턴 오프 상태가 유지되고, 출력단 Vout에는 전원(Vcc) 전압이 그대로 출력됩니다. 반대로 디지털 출력단자의 상태가 HIGH이면 트랜지스터는 턴 온 상태로 전환되고, 출력단Vout은 접지와 전위가 같아져 0V가 출력됩니다.

아두이노의 출력이 LOW에서 HIGH로 바뀌면 작동하는 것, 즉 출력단자 기준으로 HIGH에서 LOW로 바뀌는 경우를 가리켜 액티브 로우라고 합니다. 물론 목적에 따라 Active HIGH, Active LOW 등으로 구성할 수 있습니다.

NPN 사용사례(풀업, 액티브 로우)

다음 그림에서는 풀다운 저항을 적용한 회로를 나타내었습니다. 이 경우에는 동일한 디지털 출력에 대해 위 그림과 반대의 결과를 얻을 수 있는데, Dout의 상태가 LOW이면 트랜지스터는 턴 오프 상태이므로 Vout에서는 0V가 출력됩니다. Dout이 HIGH를 출력하면 트랜지스터는 턴 온 상태로 전환되고, Vout에는 저항에 인가된 Vcc 전압이 출력됩니다.

아두이노의 출력이 HIGH에서 LOW로 바뀌면 작동하는 것, 즉 출력단자 기준으로 LOW에서 HIGH로 바뀌는 경우를 가리켜 액티브 하이라고 합니다. 이처럼 트랜지스터를 활용하면 아두이노의 디지털 출력 신호를 전원 레벨에 맞게 증폭하여 출력할 수 있으며, 풀업 저항과 풀다운 저항을 이용하여 디지털 출력 신호에 따른 결과값을 조정할 수 있습니다.

NPN 사용사례(풀다운, 액티브 하이)

이를 실제 아두이노에 연결하여 시리얼 모니터를 통해 확인해보겠습니다. 아래 그림에 액티브 로우 구동 회로를 나타내었습니다. 전원은(5V) 저항과 LED를 거쳐 콜렉터로 연결되며, 저항 아랫단에 Vout 뽑아내어 D3에 연결하였습니다. 우노의 Dout(D2) 단자에서는 1초 간격으로 HIGH LOW 신호가 반복됩니다.

액티브 로우 회로

int Dout=2;
int Vout=3;

void setup( )
{
 Serial.begin(9600);
 
 pinMode(Dout, OUTPUT);
 pinMode(Vout, INPUT);
 digitalWrite(Dout, LOW);
}

void loop( )
{
 digitalWrite(Dout, LOW);
 delay(1000);
 Serial.print("Dout L, Vout=");
 Serial.println(digitalRead(Vout));
 digitalWrite(Dout, HIGH);
 delay(1000);
 Serial.print("Dout H, Vout=");
 Serial.println(digitalRead(Vout));
}

시리얼 모니터를 통해 실행결과를 살펴보면 아래 그림과 같이 Dout이 LOW일 때 Vout이 1(HIGH), 그리고 Dout이 HIGH일 때 Vout은 0(LOW)를 출력함을 알 수 있습니다. 회로가 정상적으로 동작하는지 LED를 통해서도 확인할 수 있습니다.

실행 결과

이와같이 BJT는 각 단이 연결되는 부분에 따른 전기적 특성에 따라 사용 방법과 그 결과를 달리 할 수 있습니다. 아두이노의 I/O 포트에서 출력되는 미약한 신호로도 전원 신호를 제어할 수 있다는 장점이 있으며, 1 또는 0 그 어떤 상태도 아닌 플로팅 상태를 최소화할 수 있습니다.

점점 어려워지는 아두이노입니다. 계속 반복 연습밖에 방법이 없을 것 같아 오늘도 열심히 공부하려 합니다.

다음 포스팅에서는 자기적 스위치와 기계적 스위치에 대해 알아보도록 하겠습니다. 오늘 하루도 행복하세요.

728x90