목차
74HC595
본 예제는 [WAT-AK133]알찬 아두이노 키트(입문자용) 의 8비트 시프트 레지스터 74HC595를 사용한 출력 확장 예제입니다.
- 8-bit serial input
- 8-bit serial or parallel output
- Storage register with 3-state outputs
- Shift register with direct clear
- 100 MHz (typical) shift out frequency
- ESD protection:
- Multiple package options
- Specified from -40 °C to +85 °C and from -40 °C to +125 °C
74HC595 는 1개의 입력 핀, SHCP 핀, STCP 핀만으로 출력을 무한히 할 수 있는 IC 입니다.

핀 번호
| 번호 | 핀명 | 기능 |
|---|---|---|
| 1 | Q1 | parallel data output 1 |
| 2 | Q2 | parallel data output 2 |
| 3 | Q3 | parallel data output 3 |
| 4 | Q4 | parallel data output 4 |
| 5 | Q5 | parallel data output 5 |
| 6 | Q6 | parallel data output 6 |
| 7 | Q7 | parallel data output 7 |
| 8 | GND | ground (0 V) |
| 9 | Q7S | serial data output |
| 10 | /MR | master reset (active LOW) |
| 11 | SHCP | shift register clock input |
| 12 | STCP | storage register clock input |
| 13 | /OE | output enable input (active LOW) |
| 14 | DS | serial data input |
| 15 | Q0 | parallel data output 0 |
| 16 | Vcc | supply voltage |
실험
부품 목록
| 부품명 | 아두이노 UNO R3 |
|
|---|---|---|
| 기능 | 아두이노 모듈 | |
| 수량 | 1 | |
| 부품 판매처 | https://kit128.com/goods/view?no=337 |
| 부품명 | 74HC595 |
|
|---|---|---|
| 기능 | 8비트 시프트 레지스터 | |
| 수량 | 1 EA | |
| 부품 판매처 | https://kit128.com/goods/view?no=198 |
핀 연결
아래와 같이 74HC595 와 Arduino UNO R3 를 연결합니다.
| 74HC595 | Arduino UNO R3 |
|---|---|
| VCC | 5V |
| GND | GND |
| 14. DS | A0 |
| 12. STCP | A1 |
| 11. SHCP | A2 |

소스코드
최신 소스코드는 [파일]=>[예제]=>[WhiteAT UNO] => [Starter] => [25_74HC595] 에 있으며
라이브러리는 아두이노 개발환경 을 참조하세요
/*
[WAT-AK133] 알찬 아두이노 키트(입문자용) 의
UNO R3 와 74HC595 로 OUTPUT 핀을 확장하는 예제입니다.
알찬 아두이노 키트(입문자용): https://kit128.com/goods/view?no=133
개별 부품
.Arduino UNO R3: https://kit128.com/goods/view?no=337
.74HC595 : https://kit128.com/goods/view?no=198
int pinLatch = A1; // STCP
int pinClock = A2; // SHCP
int pinData = A0; // DATA
byte outValue = 0x01;
// 프로그램 시작 - 초기화
void setup()
{
Serial.begin(115200); //시리얼 통신 초기화
Serial.println("Arduino Examples -> 74HC595 ");
Serial.println(" https://docs.whiteat.com/?p=3164");
pinMode(pinLatch, OUTPUT);
pinMode(pinData, OUTPUT);
pinMode(pinClock, OUTPUT);
updateShiftRegister(outValue);
delay(500);
}
// 계속 실행할 무한 루프
void loop()
{
Serial.println(outValue, HEX);
updateShiftRegister(outValue);
delay(500);
if (outValue == 0x80)
outValue = 0x01;
else
outValue <<= 1;
}
void updateShiftRegister(byte _value)
{
digitalWrite(pinLatch, LOW);
shiftOut(pinData, pinClock, LSBFIRST, _value);
digitalWrite(pinLatch, HIGH);
}
결과
0.5초마다 LED 가 shift 합니다.

제품 구매
알찬 아두이노 키트(초보자용) 은 https://kit128.com/goods/view?no=133 에서
74HC595 는 https://kit128.com/goods/view?no=198 에서
Arduino UNO R3는 https://kit128.com/goods/view?no=337 에서 구매하실 수 있습니다.
.


