반응형
아두이노 시프트 레지스터 74HC595 제어 가이드 – LED 출력 확장과 멀티 연결 완벽 설명
아두이노 출력 핀 부족 문제, 어떻게 해결하시나요?
프로젝트에서 여러 개의 LED나 7세그먼트를 제어하려고 할 때, 아두이노의 디지털 핀이 부족해지는 문제가 자주 발생합니다.
이럴 때 시프트 레지스터 74HC595를 사용하면 단 3개의 핀만으로 원하는 만큼 출력을 확장할 수 있습니다.
📦 준비물
- 아두이노 UNO
- 74HC595 시프트 레지스터 1~2개
- LED × 8~16개
- 330Ω 저항 × LED 수만큼
- 브레드보드 및 점퍼 와이어
🔍 74HC595란?
74HC595는 8비트 시프트 레지스터로 시리얼 입력을 병렬 출력으로 변환하는 IC입니다. 아두이노에서 shiftOut() 함수를 이용해 8비트 데이터를 전송하면, Q0~Q7 핀을 통해 해당 상태가 출력됩니다.
⚙️ 핀 연결 요약 (단일 595)
74HC595 핀 | 기능 | 아두이노 핀 |
---|---|---|
DS (14) | 데이터 입력 | 11 |
SH_CP (11) | 시프트 클럭 | 12 |
ST_CP (12) | 저장 클럭 | 8 |
OE (13) | 출력 활성 | GND에 연결 |
MR (10) | 리셋 | 5V에 연결 |
Q0~Q7 | 출력 핀 | LED 연결 |
VCC / GND | 전원 | 5V / GND |
💻 기본 제어 코드 (8비트 출력)
int latchPin = 8;
int clockPin = 12;
int dataPin = 11;
void setup() {
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void loop() {
for (int i = 0; i < 256; i++) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, i);
digitalWrite(latchPin, HIGH);
delay(200);
}
}
🔗 여러 개 직렬 연결하기
Q7’(핀 9)을 다음 74HC595의 DS(핀 14)에 연결하면 여러 개를 직렬로 연결할 수 있습니다.
두 개를 연결하면 16개의 출력, 세 개면 24개까지도 가능합니다.
멀티 제어 예제 코드 (2개 연결)
byte data[] = {0b10101010, 0b11001100};
void loop() {
digitalWrite(latchPin, LOW);
for (int i = 1; i >= 0; i--) {
shiftOut(dataPin, clockPin, MSBFIRST, data[i]);
}
digitalWrite(latchPin, HIGH);
delay(500);
}
🧠 활용 아이디어
- LED 점등 패턴 제어
- 7세그먼트 디스플레이 구동
- 릴레이 모듈 다중 제어
- 음향 시각화(LED VU 미터)
❓ 자주 묻는 질문
- Q: shiftOut 속도 느린데 빠르게 못하나요?
A: 직접 SPI 방식으로 제어하면 훨씬 빠르게 제어할 수 있습니다. - Q: shiftOut 값이 바뀌는데 LED가 반응을 안 해요.
A: latchPin을 꼭 LOW → shiftOut → HIGH 순서로 조작해야 합니다.
✅ 마무리
74HC595는 적은 핀으로 출력을 확장할 수 있는 최고의 부품 중 하나입니다.
단일로도 충분히 유용하지만, 직렬 연결하면 무제한으로 출력 수를 늘릴 수 있어
LED 매트릭스, 디지털 디스플레이, 릴레이 확장 등에서 핵심적인 역할을 합니다.
오늘 배운 내용을 바탕으로 다양한 프로젝트에 적용해보세요!
Arduino 시리즈 | 74HC595 제어 편 – 작성자: YT
반응형
'아두이노' 카테고리의 다른 글
아두이노 전자 도어락 시스템 만들기 – RFID + 부저 + 서보모터로 출입 제어 구현하기 (0) | 2025.04.19 |
---|---|
아두이노 시프트 레지스터 74HC165 입력 확장 가이드 – 버튼 8개 이상 제어하는 법 (1) | 2025.04.19 |
아두이노 + MAX31855로 K-Type 써모커플 온도 측정하기 – SPI 방식 온도 센서 예제 (0) | 2025.04.19 |
아두이노로 MCP3202 SPI ADC 제어하기 – 12비트 아날로그 입력 읽기 예제 (0) | 2025.04.19 |
아두이노 RFID 카드 인식 시스템 만들기 – RC522 모듈로 출입 인증 구현하기 (3) | 2025.04.19 |