728x90
반응형
안녕하세요, 여러분! 오늘은 마이크로컨트롤러의 출력 수를 확장할 수 있는 유용한 장치인 74HC595 시프트 레지스터를 Arduino에 연결하는 방법에 대해 알아보겠습니다. 74HC595는 마이크로컨트롤러의 핀 수를 효과적으로 늘려, 더 많은 출력 장치나 LED를 제어할 수 있도록 도와줍니다.
74HC595 시프트 레지스터란?
74HC595는 직렬-병렬 시프트 레지스터로, 마이크로컨트롤러의 출력 수를 확장하는 데 사용됩니다. SIPO(Serial In Parallel Out) 장치로, 입력되는 데이터를 순차적으로 저장하고 이를 병렬로 출력합니다. 여러 개의 74HC595를 추가하여 출력을 8개씩 늘릴 수 있습니다.
핀 구성
74HC595 IC는 다음과 같은 핀 구성을 가지고 있습니다:
- VCC (16): 5V 전원 공급
- GND (8): 접지
- SRCLR (10): 시프트 레지스터 클리어 (5V에 연결)
- OE (13): 출력 활성화 (접지에 연결)
- SER (14): 데이터 입력
- SRCLK (11): 시프트 레지스터 클록 입력
- RCLK (12): 저장 레지스터 클록 입력
- Q0-Q7: 병렬 출력 핀
- Q7' (9): 시프트 레지스터 출력 (다음 74HC595에 연결 가능)
회로 연결
이제 74HC595 시프트 레지스터를 Arduino에 연결하는 방법을 살펴보겠습니다:
- 전원 및 접지 연결:
- VCC를 Arduino의 5V 핀에 연결합니다.
- GND를 Arduino의 GND 핀에 연결합니다.
- 제어 핀 연결:
- SRCLR를 5V에 연결하여 시프트 레지스터를 클리어합니다.
- OE를 접지에 연결하여 출력을 활성화합니다.
- 데이터 전송 핀 연결:
- SER를 Arduino의 디지털 핀(예: D2)에 연결합니다.
- SRCLK를 Arduino의 디지털 핀(예: D3)에 연결합니다.
- RCLK를 Arduino의 디지털 핀(예: D4)에 연결합니다.
예제 코드
다음은 74HC595 시프트 레지스터를 사용하여 LED를 제어하는 간단한 Arduino 예제 코드입니다:
// Pin definitions
int dataPin = 2; // SER pin of 74HC595
int clockPin = 3; // SRCLK pin of 74HC595
int latchPin = 4; // RCLK pin of 74HC595
void setup() {
// Set pin modes
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
}
void loop() {
// Example pattern to display on LEDs
byte data = 0b10101010;
// Send data to 74HC595
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, data);
digitalWrite(latchPin, HIGH);
delay(500);
// Another example pattern
data = 0b01010101;
// Send data to 74HC595
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, data);
digitalWrite(latchPin, HIGH);
delay(500);
}
결론
이번 포스트에서는 74HC595 시프트 레지스터를 Arduino에 연결하고 제어하는 방법에 대해 알아보았습니다. 이 기술을 사용하면 마이크로컨트롤러의 출력 수를 크게 늘릴 수 있으며, 다양한 프로젝트에서 LED나 다른 출력 장치를 효과적으로 제어할 수 있습니다. 프로젝트 진행 중 궁금한 점이 있으면 언제든지 문의해 주세요!
이 블로그 포스트가 여러분의 프로젝트에 도움이 되길 바랍니다. 전자 프로젝트의 다양한 가능성을 탐구하며 즐거운 시간을 보내세요! 🎉✨
728x90
반응형
'아두이노 러닝보드 > 아두이노 러닝보드 하드웨어설계' 카테고리의 다른 글
도트 매트릭스 및 MAX7219CNG 연결하기 💡 (1) | 2024.12.13 |
---|---|
DS1307 RTC 연결하기: 실시간 시계 구현하기 ⏰ (1) | 2024.12.13 |
7 세그먼트 디스플레이 연결하기 💡 (1) | 2024.12.13 |
Arduino 보드에 LCD 연결하기 💡 (1) | 2024.12.13 |
Eagle을 사용한 회로도 설계: 2단계 - Arduino에 LCD 연결하기💡 (1) | 2024.12.13 |