목차
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 에서 구매하실 수 있습니다.
.