아두이노를 쓰다보면 핀수가 부족해서 원하고자하는것을 못하는경우가 생깁니다.
이럴때를 대비해서 아두이노 사이트에서는 쉬프트라는 명령어를 제공합니다. (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 |