ARDUINO에는 20 개의 I / O 핀이 있으므로 20 개의 UNO 핀을 입력 또는 출력으로 사용하도록 프로그래밍 할 수 있습니다. UNO보다 ATMEGA328P 컨트롤러에 더 많은 핀이 있지만 이는 보드를 설계하는 동안 일부 핀이 기본값으로 설정되기 때문입니다.
이제 일부 애플리케이션의 경우 30 개 이상의 핀이 필요합니다. 예를 들어 5x5x5 LED CUBE를 설계하려면 5x5 + 5 = 30 핀이 필요합니다. 이러한 경우 직렬-병렬 변환기 칩 또는 시프트 레지스터를 사용합니다. 시프트 레지스터 칩은 UNO 보드에서 직렬로 데이터를 가져와 8 비트 병렬 구성으로 출력을 제공합니다.
필요한 구성 요소
하드웨어: Arduino uno 보드, 연결 핀, 220Ω 저항, LED (8 개), 74HC595 IC, 브레드 보드.
소프트웨어: Arduino 야간
회로도 및 작동 설명
여기서는 단일 채널을 통해 8 비트 크기의 데이터를 레지스터 시프트로 보냅니다. 시프트 레지스터는 데이터를 직렬로 가져와 해당 데이터를 메모리에 저장합니다. 컨트롤러에 의해 데이터가 전송되면 출력에 데이터를 표시하기 위해 시프트 레지스터에 명령을 보낼 것입니다.이 명령을 사용하면 시프트 레지스터가 데이터를 병렬로 출력합니다.
이 출력은 출력에 연결된 8 개의 LED로 표시됩니다.
들어 아두 이노 UNO에 시프트 레지스터를 연결 우리는 두 가지 작업을 수행해야합니다
|
먼저 UNO의 세 핀을 출력으로 설정해야합니다. 그런 다음 디지털 핀, 클록 핀 및 래치 핀을이 세 개의 출력 핀에 연결해야합니다. 그 후 UNO 보드 핀에 연결된 칩의 핀을 UNO에 알려야합니다. 이 작업은“
shiftOut(dataPin, clockPin, data);
” 명령을 간단히 작성하여 수행됩니다. 여기에있는 데이터는 2 진수, 10 진수 또는 16 진수 일 수 있습니다. 전송해야 할 8 비트 정보는 "데이터"대신 기록됩니다.
전송 된 데이터는 다음과 같이 수행됩니다.
Disable 래치, 이것은 칩이 현재 출력을 표시하지 않도록 지시합니다.
여덟 번 동안 우리는 시계와 함께 데이터를 직렬로 보낼 것이므로 높은 낮은 데이터 클럭을 낮은 등의 클럭으로 보냅니다.
래치 활성화, 8 비트 데이터를 표시하도록 칩에 지시합니다.
SHIFT REGISTER를 사용한 ARDUINO의 작업은 아래에 주어진 C 코드에서 단계별로 설명됩니다.