32개의 아웃풋을 지원하는 보드 사용법 소개

News/Events 2007. 10. 16. 14:17

아두이노 보드를 사용하여 32개 혹은 64개의 아웃풋을 제어할 수 있는 확장보드로, 연결방법은 다음과 같습니다.

사용자 삽입 이미지

일단 아누이노의 3개의 핀으로 제어가 가능한 형태로 제작되었고, 샘플 프로그램은 아래와 같다.

//****************************
**********************************//
//  Name    : shiftOutCode, Hello World                         //
//  Author  : Carlyn Maw,Tom Igoe                               //
//  Date    : 25 Oct, 2006                                      //
//  Version : 1.0                                               //
//  Notes   : Code for using a 74HC595 Shift Register           //
//          : to count from 0 to 255                            //
//****************************************************************

//Pin connected to ST_CP of 74HC595
int latchPin = 10;
//Pin connected to SH_CP of 74HC595
int clockPin = 9;
////Pin connected to DS of 74HC595
int dataPin = 8;

//variable to store the first byte of data
int light0_7 = 0;
int light8_15 = 0;

// FUNCTIONS

void pinON(int pinNumber) {
 if (pinNumber <= 8)
   light0_7 |= 1<<(pinNumber-1);
 else
   light8_15 |= 1<<(pinNumber-9);
 digitalWrite(latchPin, LOW);
 shiftOut(dataPin, clockPin, MSBFIRST, light8_15);
 shiftOut(dataPin, clockPin, MSBFIRST, light0_7);
 digitalWrite(latchPin, HIGH);
}

void pinOFF(int pinNumber) {
 if (pinNumber <= 8)
 light0_7 &= ~(1<<(pinNumber-1));
 else
 light8_15 &= ~(1<<(pinNumber-9));
 digitalWrite(latchPin, LOW);
 shiftOut(dataPin, clockPin, MSBFIRST, light8_15);
 shiftOut(dataPin, clockPin, MSBFIRST, light0_7);
 digitalWrite(latchPin, HIGH);
}

// END FUNCTIONS

void setup() {
 //set pins to output because they are addressed in the main loop
 pinMode(latchPin, OUTPUT);
 pinMode(clockPin, OUTPUT);
 pinMode(dataPin, OUTPUT);
 pinON(5);
 pinON(8);
}

void loop() {
 pinON(3);
 delay(1000);
 pinOFF(3);
 delay(1000);
}

위 프로그램이 하는 일은 5번 핀과 8번 핀은 항상 켜둔채, 3번 핀을 깜박거리게 하는 프로그램이다.

아두이노 확장 보드와 연결하면 다음과 같은 모습이다.

사용자 삽입 이미지



: