본문 바로가기
전자공학

53. 스위치1

by tblog-world-info 2025. 3. 1.

전자 공학에 있어서 스위치는 가장 기본적 기능으로 쓰이기도 하지만 많은 전자기기에서 없어서는 안될 기능입니다.

 

그 스위치에 관한 글을 작성합니다. 

 

53. 스위치1

 

1. 풀업(Pull-up)과 풀다운(Pull-down) 저항

 

스위치는 단순히 전선을 연결하거나 끊는 역할을 하지만, 단순히 스위치를 GND(0V) VCC(5V)에 연결한다고 해서 안정적인 신호가 생성되는 것은 아닙니다.

부유 전압(Floating Voltage)이 발생할 수 있으며, 이를 해결하기 위해 풀업(Pull-up) 또는 풀다운(Pull-down) 저항이 사용됩니다.

 

1) 풀업 저항 (Pull-up Resistor)

스위치가 열려 있을 때, 입력 핀을 VCC(5V)로 유지하기 위해 사용됩니다.

스위치가 닫히면 GND로 연결되어 LOW(0V) 신호가 됩니다.

 

회로도

 

VCC(5V)

 |

[R]  (10kΩ)

 |

 |------> 입력핀 (HIGH 상태)

 |

   /    <---- 스위치

 |

GND(0V)

 

- 특징

스위치가 열려 있으면 입력이 HIGH(1) = 5V.

스위치가 닫히면 입력이 LOW(0) = 0V.

내부 풀업 저항(Arduino INPUT_PULLUP 기능)도 활용 가능

 

 

2) 풀다운 저항 (Pull-down Resistor)

스위치가 열려 있을 때, 입력 핀을 GND(0V)로 유지하기 위해 사용됩니다.

스위치가 닫히면 VCC로 연결되어 HIGH(5V) 신호가 됩니다.

 

회로도

 

VCC(5V)

 |

   /  <----  스위치

 |

 |------> 입력핀 (LOW 상태)

 |

[R]  (10kΩ)

 |

GND(0V)

 

 

- 특징

 

스위치가 열려 있으면 입력이 LOW(0) = 0V.

스위치가 닫히면 입력이 HIGH(1) = 5V.

왜 저항을단위로 쓰는가?

너무 작은 저항(: 100Ω)을 사용하면 불필요한 전류 소모가 커지고, 회로 동작에영향을 줄 수 있습니다.

너무 큰 저항(: 1MΩ 이상)을 사용하면 노이즈에 취약하여 신호가 불안정해질 수 있습니다.

일반적으로 4.7kΩ ~ 10kΩ 저항이 가장 적절한 값으로 사용됩니다.

-> 적당히 노이즈도 상세도 되고 적당히 전류도 흘려주는 10 kΩ의 사용은 MCU 등에서 인식하기 좋은 적당한 전류 값이 인가 됩니다.

 

 

2. 릴레이(Relay)란 무엇인가?

1) 릴레이의 개념

릴레이는 작은 전압으로 큰 전압을 제어할 수 있는 전자기기입니다.

내부에 전자기 코일(솔레노이드)이 있어 전류가 흐르면 자석 역할을 하며, 스위치를 기계적으로 동작 시킵니다.

전기 절연이 필요할 때 유용하게 사용됩니다.

 

2) 노멀 오픈(Normally Open, NO) vs 노멀 클로즈(Normally Closed, NC)

NO(Normally Open, 평소에 열려 있음): 기본적으로 회로가 열려 있으며, 릴레이가 동작할 때 회로가 닫힙니다.

NC(Normally Closed, 평소에 닫혀 있음): 기본적으로 회로가 닫혀 있으며, 릴레이가 동작하면 회로가 열립니다.

 

-> 내부의 코일은 일반적으로 5VDC, 12VDC, 24VDC, 110VAC, 220VAC 등의 전압 인가로 구동 됩니다.

 

아두이노로 구현을 한다 치면 단순하게 열고 닫고를 해주는 기능만 있으면 됩니다.

 

#define RELAY_PIN 7

void setup() {
  pinMode(RELAY_PIN, OUTPUT);
}

void loop() {
  digitalWrite(RELAY_PIN, HIGH); // 릴레이 ON
  delay(1000);
  digitalWrite(RELAY_PIN, LOW);  // 릴레이 OFF
  delay(1000);
}

 

3. 하나의 아날로그 입력 핀으로 여러 개의 스위치 연결하기

 

디지털 핀 수가 제한된 경우, 하나의 아날로그 입력 핀을 사용하여 여러 개의 스위치를 감지할 수 있습니다. 이를 위해 전압 분배 방식을 활용합니다.

 

회로 예시 

VCC (5V)
 |
[R1]  (1kΩ) --> 스위치 1
 |
[R2]  (2kΩ) --> 스위치 2
 |
[R3]  (4kΩ) --> 스위치 3
 |
GND (0V)

 

각 스위치가 눌리면 다른 전압이 아날로그 입력에 전달되며, 이를 통해 어떤 스위치가 눌렸는지 감지할 수 있습니다.

 

#define SWITCH_PIN A0

void setup() {
  Serial.begin(9600);
}

void loop() {
  int value = analogRead(SWITCH_PIN);
  Serial.println(value);
  delay(500);
}

 

4. 3x4 키패드 (Matrix Keypad)

 

1) 행렬 방식으로 키 입력 처리

키패드는 많은 스위치를 적은 수의 핀으로 처리하기 위해 행(Row)과 열(Column)을 조합하여 신호를 읽습니다.

 

3x4 키패드 배선

    C1   C2   C3
R1  1    2    3
R2  4    5    6
R3  7    8    9
R4  *    0    #

 

 

(Row, R1~R4): 출력 핀으로 설정.

(Column, C1~C3): 입력 핀으로 설정.

 

 

2) 아두이노 코드 

#include <Keypad.h>

const byte ROWS = 4; // 4개 행
const byte COLS = 3; // 3개 열
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};
byte rowPins[ROWS] = {9, 8, 7, 6}; // 행 핀
byte colPins[COLS] = {5, 4, 3};    // 열 핀

Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);

void setup() {
  Serial.begin(9600);
}

void loop() {
  char key = keypad.getKey();
  if (key) {
    Serial.print("Key Pressed: ");
    Serial.println(key);
  }
}

 

5. 결론

스위치는 단순한 전기 부품처럼 보이지만, 풀업/풀다운 저항을 이해하고, 릴레이를 활용하면 강력한 기능을 수행할 수 있습니다. 또한 아날로그 입력을 이용하여 여러 개의 스위치를 하나의 핀으로 처리하는 기법이나 키패드를 이용한 입력 방식도 가능하므로, 하드웨어 설계에서 효과적으로 응용할 수 있습니다

'전자공학' 카테고리의 다른 글

57. 크리스탈  (0) 2025.03.06
56.고전력 출력  (0) 2025.03.04
55. ADC, DAC  (0) 2025.03.03
54. 스위치2  (0) 2025.03.02
52. 온도 측정  (0) 2025.02.28
51. 모터와 예제  (0) 2025.02.27
50. 아두이노  (0) 2025.02.26
49. RAM  (0) 2025.02.25