# 제목: 2N3904 트랜지스터를 사용한 스위칭 예제 - 2



# 내용: 저번 글에 이어 트랜지스터를 사용해서 간단한 회로를 만들고, 이를 아두이노를 통해 제어하는 방법에 대해 알아봅시다.


3개의 LED를 연결하고, 1개의 트랜지스터(2N3904)를 사용하여 회로 제어를 해보도록 한다.


이 회로에서 LED의 cathode(+) 에는 3, 4, 5번 핀으로 input을 넣어주고, 트랜지스터의 base(가운데)에 6번 핀을 연결하여 디지털 신호 HIGH/LOW를 넣어주어 전체 회로를 켰다 끌 수 있도록 구성하였다.


# 코드:

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
int ledPin1 = 3;  //Digital I/O 3번에 1번째 LED 연결
int ledPin2 = 4;  //Digital I/O 4번에 2번째 LED 연결
int ledPin3 = 5;  //Digital I/O 5번에 3번째 LED 연결
int switchPin = 6//Digital I/O 6번에 트랜지스터 base 연결
 
void setup() {
  // put your setup code here, to run once:
  analogWrite(ledPin1, 1023);
  analogWrite(ledPin2, 200);
  analogWrite(ledPin3, 50);       //1~1023 입력시 LED 점등됨. 하지만 너무 낮으면 불이 안켜지니 주의.
  digitalWrite(switchPin, HIGH);  //(스위치를 닫는다 = 회로를 연결한다)
  delay(1000);
  digitalWrite(switchPin, LOW);
  analogWrite(ledPin1, 0);
  analogWrite(ledPin2, 0);
  analogWrite(ledPin3, 0);
}
 
void loop() {
  delay(1000);
  digitalWrite(switchPin, HIGH); //회로를 연결한 상태에서,
  analogWrite(ledPin1, 1023);
  delay(1000);
  analogWrite(ledPin1, 0);
  analogWrite(ledPin2, 1023);
  delay(1000);
  analogWrite(ledPin2, 0);
  analogWrite(ledPin3, 1023);
  delay(1000);
  analogWrite(ledPin3, 0);  //LED 1, 2, 3번 순서대로 1초씩 점등 후 꺼짐.
}
cs


# 회로도(Fritzing):



# 실행결과:




# 비고:


+ Recent posts