-
아두이노 | PISO 시프트 레지스터 74HC165Technology/Arduino 2024. 3. 15. 18:00
1. PISO 시프트 레지스터 74HC165
시프트 레지스터 74HC165 74HC1655는 앞서 살펴보았던 74HC595와는 반대로 PISO(Parallel-in, Serial-out) 기능을 하는 8비트 시프트 레지스터이다. 총 16개의 단자를 가지고 있으며, DC 5V 전원과 접지 단자, 정보를 병렬로 받는 입력 단자 8개, 직렬 출력 단자 1개, 입력 단자 3개로 구성되어 있다. 시프트 레지스터 74HC165는 아래 링크로 접속하면 구매할 수 있다.
74HC165N(DIP)
8-bit parallel-in/serial-out shift register
www.devicemart.co.kr
2. 제어 방법
제어 방법 (10101011, MSBFIRST) 시프트 입력(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. 회로 구성
회로 구성 브레드보드용 4핀 택트스위치 6x6 breadboard friendly switch 4p [SZH-TH0018]
TACT 스위치 / DIP TYPE / 4PIN / 빵판에 바로 연결사용하는 특별한 택트스위치입니다. 부품다리가 휘어져있는 다른 제품들과 다르게 브레드보드에 알맞은 길이로 곧게 뻗어있습니다.
www.devicemart.co.kr
1/2W 1% Axial Resistor 221F (220Ω)
일반막대저항 / 탄소피막 / 1/2W / F급(±1%) / 220옴
www.devicemart.co.kr
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 대기 }
[함께 읽으면 좋은 페이지]
아두이노 디지털 신호 입력 | 택트 스위치
1. 디지털 신호 입력 아두이노 소프트웨어에서 디지털 신호를 받을 핀을 설정하고 함수를 작성하여 아두이노 하드웨어에 업로드하면, 앞서 설정한 핀을 통해 디지털 신호를 입력 받을 수 있다.
vedacube.tistory.com
아두이노 | SIPO 시프트 레지스터 74HC595
1. 시프트 레지스터 시프트 레지스터(Shift Resistor)는 이진수 정보를 저장하여 서로 주고 받는 논리 회로가 직렬로 연결된 전자 소자로, 직렬로 들어오는 정보를 병렬로 내보내거나(Serial-in, Parallel-
vedacube.tistory.com
참고문헌
- 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-세그먼트 디스플레이 SevSeg.h (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