아두이노 기초2015. 2. 24. 17:45


예제 1

byte 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() {
  for(int i=2; i<10; i++) {
    pinMode(i, OUTPUT); // 핀들은 LED이 때문에 켜는것이다. 그래서 OUTPUT이다.
  }
  digitalWrite(9, HIGH); // DP LED를 끈다.
}

void loop() {
  for(int i=0; i<100; i++) {
    delay(1000);
    displayDigit(i);
  }
}

void displayDigit(int num) {
  int pin = 2;
  for(int i=0; i<7; i++) {
    digitalWrite(pin+i, digits[num][i]);
  }
}


예제 2

#define PLUS 11
#define MINUS 12

int digit = 0;
byte 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(PLUS, INPUT);
  pinMode(MINUS, INPUT);
  for(int i=2; i<10; i++) {
    pinMode(i, OUTPUT);
  }
  digitalWrite(9, HIGH); // DP LED를 끈다.
}

void loop() {
  if(digitalRead(PLUS) == HIGH) {
    ++digit;
    if(digit > 9) {
      digit = 0;
    }
  }
  
  if(digitalRead(MINUS) == HIGH) {
    --digit;
    if(digit < 0) {
      digit = 9;
    }
  }
  
  displayDigit(digit);
  delay(100);
}

void displayDigit(int num) {
  int pin = 2;
  for(int i=0; i<7; i++) {
    digitalWrite(pin+i, digits[num][i]);
  }
}


'아두이노 기초' 카테고리의 다른 글

11. 시리얼 통신  (0) 2015.02.25
10. 서브모터  (0) 2015.02.24
8. LCD 패널  (0) 2015.02.24
7. 초음파센서  (0) 2015.02.24
6. 조도센서  (0) 2015.02.24
Posted by trikyu