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번 핀을 깜박거리게 하는 프로그램이다.
아두이노 확장 보드와 연결하면 다음과 같은 모습이다.