J 창고

[Arduino] 7 - Segment 본문

컴퓨터/Firmware

[Arduino] 7 - Segment

JSFamily 2013. 9. 19. 15:27



시리얼 모니터에 0~9까지의 숫자를 입력해서


7-segment에 출력하기


(BCD 디코더를 사용X)




int incomingByte = 0;

byte seven_seg_digits[10][7] = { { 0,0,0,0,0,0,1 },  // = 0

                                 { 1,0,0,1,1,1,1 },  // = 1

                                { 0,0,1,0,0,1,0 },  // = 2

                                { 0,0,0,0,1,1,0 },  // = 3

                                 { 1,0,0,1,1,0,0 },  // = 4

                                 { 0,1,0,0,1,0,0 },  // = 5

                                 { 0,1,0,0,0,0,0 },  // = 6

                                 { 0,0,0,1,1,1,1 },  // = 7

                                 { 0,0,0,0,0,0,0 },  // = 8

                                 { 0,0,0,1,1,0,0 }   // = 9

 };


void setup() {                

  pinMode(2, OUTPUT);   

  pinMode(3, OUTPUT);

  pinMode(4, OUTPUT);

  pinMode(5, OUTPUT);

  pinMode(6, OUTPUT);

  pinMode(7, OUTPUT);

  pinMode(8, OUTPUT);

  pinMode(9, OUTPUT);

  writeDot(0);  // start with the "dot" off

  Serial.begin(9600);

}


void writeDot(byte dot) {

  digitalWrite(9, dot);

}

    

void sevenSegWrite(byte digit) {

  byte pin = 2;

  for (byte segCount = 0; segCount < 7; ++segCount) {

    digitalWrite(pin, seven_seg_digits[digit][segCount]);

    ++pin;

  }

}


void loop() {

  Serial.println("Press Number from 0 to 9");

  while(1){

    if(Serial.available() >0){

      incomingByte = Serial.read();

      Serial.print("I received : ");

      Serial.println(incomingByte, DEC);

      sevenSegWrite(incomingByte - 48); 

     }

  }

}


Comments