아두이노를 쓰다보면 핀수가 부족해서 원하고자하는것을 못하는경우가 생깁니다.
이럴때를 대비해서 아두이노 사이트에서는 쉬프트라는 명령어를 제공합니다. (http://arduino.cc/en/Tutorial/ShiftOut)
74HC595이라는 쉬프트레지스터를 이용해서 포트를 확장하게 됩니다.
아두이노 사이트에 있는
이그림을 구현해 보도록 하겠습니다.
우선 74HC595를 이해해보면
출처 = http://blog.naver.com/eskelt/120157837942
11,12,14를 핀에 가지고 제어를 해줍니다.
중요한건 12번핀을 LOW화 시키고 코드를 집어넣은 뒤 12번 핀을 HIGH로 바꾸어 00000000 - 11111111 사이의 데이터를 집어넣을 수 있습니다.
핀번호에 맞추어 VCC , GND 까지 연결을 해줍니다.
아래소스는 기본 아두이노 사이트에서지원하는 샘플 소스입니다.
//Pin connected to ST_CP of 74HC595 int latchPin = 8; //Pin connected to SH_CP of 74HC595 int clockPin = 12; ////Pin connected to DS of 74HC595 int dataPin = 11; void setup() { //set pins to output because they are addressed in the main loop pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); } void loop() { //count up routine for (int j = 0; j < 256; j++) { //ground latchPin and hold low for as long as you are transmitting digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, LSBFIRST, j); //return the latch pin high to signal chip that it //no longer needs to listen for information digitalWrite(latchPin, HIGH); delay(1000); } }
위 소스를 입력하고 동작시킨 영상입니다.
다음은 이걸활용한 LED매트릭스를 보여드릴께요
'Programming > Arduino' 카테고리의 다른 글
소리를 이용한 LED를 ON/OFF하기 (0) | 2013.01.22 |
---|---|
초음파 센서를 이용한 차량 후방 감지기 구현 (2) | 2013.01.22 |
4일차 가변저항으로 LED 제어하기 (2) | 2013.01.12 |
3일차 아두이노 피아노 만들기!!! (2) | 2013.01.11 |
보너스 - LED CUBE (0) | 2013.01.09 |