아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

아두이노 강좌 - 아두이노 핀을 확장하는 법(시프트 레지스터_74HC595)

아두이노 강좌 - 아두이노 핀을 확장하는 법(시프트 레지스터_74HC595)

https://youtu.be/LJrWb9RuHdE

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

아두이노를 이용한 출력 핀의 확장 방법 입니다.

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

제한된 아두이노의 출력핀으로 여러개의 출력을 제어하는 방법은

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

다양한 방법이 있지만 여기서는 시프트 레지스터라는 부속을 이용하여

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

출력핀을 확장하는 방법을 설명하도록 하겠습니다.

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

사용한 출력핀 확장 IC는 74HC595 입니다.

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

이와 같이 OUTPUT PIN은 1~7, 15핀으로 총 8개의 핀을 가지고 있습니다.

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

74HC595 1개를 이용하면 아두이노 3개의 출력핀으로 8개의 출력을 제어할 수

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

만약 74HC595 IC를 2개를 사용한다면 아두이노 3개의 출력 핀으로

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

74HC595의 개수를 늘릴 수록 아두이노 3개의 핀으로 IC개수 * 8 개의

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

먼저 TINKER CAD로 회로를 구성해 보겠습니다.

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

회로의 구성과 함께 74HC595 IC의 사용법도 알아 보도록 하겠습니다.

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

아두이노와 빵판 그리고 74HC595를 먼저 배치합니다.

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

74HC595의 칩 배열을 확인하면서 회로를 구성하겠습니다.

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

1~7번핀 그리고 15번핀은 Q1~Q7, Q0로 출력핀입니다.

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

이곳으로 출력이 되므로 여기에는 LED를 연결하도록 하겠습니다.

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

칩의 16번핀은 VCC입니다. 아두이노의 5V와 연결합니다.

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

칩의 14번핀은 DATA 핀입니다. 아두이노로 부터 신호를 받는 핀이므로

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

13번핀은 OE핀으로 칩의 활성화 여부를 결정합닏.

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

즉 활성화 되어야 칩이 작동하며, 활성화시 핀은 LOW여야 합니다.

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

항시 활성화 되어 있어야 하므로 GND에 연결을 합니다.(LOW = GND)

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

12번핀은 LATCH 핀으로 아두이노 출력핀에 연결합니다.

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

이핀은 아두이노에서 신호를 모두 전송한 후 전송 완료를 알려주는 핀입니다.

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

DATA핀으로 신호를 보낼때마다 신호를 보냈다는 신호를 보내는 핀입니다.

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

10번핀은 이전에 입력된 입력을 모두 취소하는 핀입니다.

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

이 핀의 상태가 LOW가 되면 기존 입력 값들이 clear 가 됩니다.

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

여기서는 별도로 clear을 할 필요가 없고 데이타를 전송후 latch(반영)만 하므로

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

HIGH를 하여 사용하지 않도록 하겠습니다.(사용시 LOW를 입력)

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

HIGH를 입력하려면 5V와 연결을 하면 됩니다.

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

9번핀은 74HC595 IC를 여러개 사용할 경우 다음 IC로 데이타를 전송하는 핀입니다.

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

여기서는 1개만을 사용하므로 다음 IC로 전달할 필요가 없으므로

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

이렇게 하면 회로의 구성은 완료가 되었습니다.

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

아두이노 디지털 핀 늘리기 - adu-ino dijiteol pin neulligi

우선 시프트 레지스터의 구동 원리를 살펴 봅니다.(원리를 알아야 코딩이 가능합니다.)