아두이노 나노와 4개 74HC595 시프트 레지스터로 LED 32개 제어하기 - 초보자 가이드
부품 및 소모품
| 아두이노 나노 R3 |
× |
1 |
| 텍사스 인스트루먼트 시프트 레지스터 - 직렬-병렬 (74HC595) |
× |
4 |
| 솔더리스 브레드보드 풀 사이즈 |
× |
1 |
| LED (일반) - 취향껏 |
× |
1 |
| 저항 100옴 - LED에 따라 다름 |
× |
1 |
| 점퍼 와이어 (일반) - 많이 필요 |
× |
1 |
앱 및 온라인 서비스
프로젝트 소개
저 같은 초보자와 '아두이노초보'들을 위해 만든 단계별 가이드입니다.
이 튜토리얼에서는 8비트 시프트 레지스터 74HC595에 대한 꽤 기본적인 지식을 다룹니다.
데이지 체인으로 연결하는 법과 HC595 라이브러리의 코드 사용법을 배웁니다.
일부 시프트 레지스터에서 문제가 있었는데 이유를 모르겠습니다. 전력 부족 때문이었을까요?
필수 링크:
소셜 미디어 링크 (원하시면 팔로우):
여러 장의 회로도 및 배선 사진 포함
코드
HC595 라이브러리에서 수정한 샘플 코드 아두이노
#include <HC595.h>
const int chipCount = 2; // 직렬 연결된 74HC595 개수 (최대 8개)
const int latchPin = 4; // 74HC595의 ST_CP 핀 (12번)
const int clockPin = 3; // 74HC595의 SH_CP 핀 (11번)
const int dataPin = 2; // 74HC595의 DS 핀 (14번)
// 생성자
HC595 ledArray(chipCount, latchPin, clockPin, dataPin);
int delayMs = 30;
int lastPin = ledArray.lastPin();
void setup() {
ledArray.reset();
}
void loop() {
// 순차 점등
for (int i = 0; i <= lastPin; i++) {
ledArray.setPin(i, ON);
delay(delayMs);
}
// 순차 소등
for (int i = lastPin; i >= 0; i--) {
ledArray.setPin(i, OFF);
delay(delayMs);
}
// 역순 토글
for (int i = lastPin; i >= 0; i--) {
ledArray.setPin(i, TOGGLE);
delay(delayMs);
}
// 정순 토글
for (int i = 0; i <= lastPin; i++) {
ledArray.setPin(i, TOGGLE);
delay(delayMs);
}
}
J. 벨라방스 님의 HC595 라이브러리
https://github.com/j-bellavance/HC595
회로도
회로도 이미지 포함