시리얼 모니터에서 0~9를 입력받아 7-Segment에 출력
int dataPin = 2;
int clockPin = 3;
int latchPin = 4;
int incomingByte = 0;
// 0에서 9까지 숫자 표시를 위한 세그먼트 a, b, c, d, e, f, g, dp의 점멸 패턴
// 켜지는 부분이 1로 표현됨
byte digits_data[10] =
{0xFC, 0x60, 0xDA, 0xF2, 0x66, 0xB6, 0xBE, 0xE4, 0xFE, 0xE6};
void setup() {
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
if(Serial.available()>0){
incomingByte = Serial.read();
incomingByte = incomingByte - 48;
Serial.print("received : ");
Serial.println(incomingByte);
}
digitalWrite(latchPin, LOW); // 래치 출력 금지
shiftOut(dataPin, clockPin, LSBFIRST, ~digits_data[incomingByte]); // 데이터 출력
digitalWrite(latchPin, HIGH); // 래치 출력 허용
}