• 강의
  • 커뮤니티
  • 북마크
GCR

자료실

코딩자료 | 7세그먼트와 버튼 사용하기

최고관리자
2019.12.05 15:34 44 0

본문

코드 - 아노드 방식

#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);
}

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]);
  }
}

 
코드 - 캐소드 방식

#define PLUS 11
#define MINUS 12
int digit = 0;
byte digits[10][7] = {
  { 1,1,1,1,1,1,0 }, // 0
  { 0,1,1,0,0,0,0 }, // 1
  { 1,1,0,1,1,0,1 }, // 2
  { 1,1,1,1,0,0,1 }, // 3
  { 0,1,1,0,0,1,1 }, // 4
  { 1,0,1,1,0,1,1 }, // 5
  { 1,0,1,1,1,1,1 }, // 6
  { 1,1,1,0,0,0,0 }, // 7
  { 1,1,1,1,1,1,1 }, // 8
  { 1,1,1,0,0,1,1  } // 9
};

void setup(){
  pinMode(PLUS, INPUT);
  pinMode(MINUS, INPUT);
  for(int i=2;i<10;i++){
      pinMode(i, OUTPUT);
  }
  digitalWrite(9, HIGH);
}

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]);
  }
}

댓글목록 0

등록된 댓글이 없습니다.