-
아두이노 | PISO 시프트 레지스터 74HC165Technology/Arduino 2024. 3. 15. 18:00
1. PISO 시프트 레지스터 74HC165
74HC1655는 앞서 살펴보았던 74HC595와는 반대로 PISO(Parallel-in, Serial-out) 기능을 하는 8비트 시프트 레지스터이다. 총 16개의 단자를 가지고 있으며, DC 5V 전원과 접지 단자, 정보를 병렬로 받는 입력 단자 8개, 직렬 출력 단자 1개, 입력 단자 3개로 구성되어 있다. 시프트 레지스터 74HC165는 아래 링크로 접속하면 구매할 수 있다.
2. 제어 방법
시프트 입력(Shift Input, SH) 단자에 디지털 신호 LOW가 입력되는 동안, 입력 단자 8개를 통해 병렬 데이터가 레지스터에 입력된다. 클럭 활성화(Clcok Enable, CE) 단자에 디지털 신호 LOW가 입력되는 동안, 레지스터에 저장된 데이터를 직렬로 출력할 수 있게 된다. 이때 클럭(Clock, CLK) 단자에 디지털 LOW 상태에서 디지털 HIGH 상태가 되는 상승 에지(edge)를 형성하면 병렬로 저장된 데이터가 차례대로 출력된다. 이를 위해 아두이노 플랫폼에서는 클럭 단자의 상승 에지에 맞게 시리얼 데이터를 받아들이는 함수를 지원하는데, 왼쪽 끝 비트부터 순서대로 받을지(Most Significant Bit First , MSBFIRST) 오른쪽 끝 비트부터 순서대로 받을지(Least Significant Bit First, LSBFIRST) 설정할 수 있다.
3. 예제
3.1. 회로 구성
3.2. 프로그램 작성
int ShiftPin = 12; // 정수형 변수 선언 후 디지털 핀 번호 12번으로 초기화 int ClockPin = 11; int DataPin = 10; int ClockEnablePin = 9; void setup() { pinMode(ShiftPin, OUTPUT); // 정수형 변수 선언 후 디지털 핀 번호 12번으로 초기화 pinMode(ClockPin, OUTPUT); pinMode(DataPin, INPUT); pinMode(ClockEnablePin, OUTPUT); Serial.begin(9600); // 시리얼 통신 시작 (통신 속도: 9600) } void loop() { digitalWrite(ShiftPin, LOW); // 디지털 12번 핀에 디지털 신호 LOW 출력 delayMicroseconds(5); // 0.005 ms 대기 digitalWrite(ShiftPin, HIGH); delayMicroseconds(5); digitalWrite(ClockPin, HIGH); digitalWrite(ClockEnablePin, LOW); // ClockPin에서의 상승 에지에 맞게 오른쪽 끝부터 DataPin으로 전달 byte Data = shiftIn(DataPin, ClockPin, LSBFIRST); digitalWrite(ClockEnablePin, HIGH); Serial.print("States: "); // 시리얼 모니터에 문자열 출력 Serila.println(Data, BIN); // 시리얼 모니터에 변수에 저장된 값을 이진수로 출력한 뒤 줄 바꿈 delay(200); // 200 ms 대기 }
[함께 읽으면 좋은 페이지]
참고문헌
- DroneBot Workshop. (2020). 74HC595 & 74HC165 Shift Registers with Arduino. YouTube. https://www.youtube.com/watch?v=Ys2fu4NINrA. 2023.11.07.
- Texas Instruments. (2015). SNx4HC165 8-Bit Parallel-Load Shift Resisters. https://www.ti.com/lit/ds/symlink/sn74hc165.pdf. 2023.11.07.
반응형'Technology > Arduino' 카테고리의 다른 글
아두이노 라이브러리 | 7-세그먼트 디스플레이 (0) 2024.03.22 아두이노 | 네 자리 7-세그먼트 디스플레이 (0) 2024.03.22 아두이노 | SIPO 시프트 레지스터 74HC595 (0) 2024.03.15 아두이노 | 7-세그먼트 디코더 CD4511 (2) 2024.03.08 아두이노 | 7-세그먼트 디스플레이 (0) 2024.03.01