학교 수업하면서 받아 적은건데 잘못 적었는지 계속 오류가 납니다 어딜 고쳐야 할까요?
제가 하려는 것은 버튼 누르면 세그먼트 숫자가 1씩 커지는 것 입니다
#define SEG_A 10
#define SEG_B 1
#define SEG_C A3
#define SEG_D A1
#define SEG_E A0
#define SEG_F 9
#define SEG_G A4
#define SEG_H A2
#define COM1 11
#define COM2 3
#define COM3 2
#define COM4 A5
#define button 13
int cnt=0;
static int table[8] =
{ {0, 0, 1, 1, 1, 1, 1, 1},
{0, 0, 0, 0, 0, 1, 1, 0},
{0, 1, 0, 1, 1, 0, 1, 1},
{0, 1, 0, 0, 1, 1, 1, 1},
{0, 1, 1, 0, 0, 1, 1, 0},
{0, 1, 1, 0, 1, 1, 0, 1},
{0, 1, 1, 1, 1, 1, 0, 1},
{0, 0, 0, 0, 0, 1, 1, 1},
{0, 1, 1, 1, 1, 1, 1, 1},
{0, 1, 1, 0, 1, 1, 1, 1}
};
void setup() {
pinMode(SEG_A,OUTPUT);
pinMode(SEG_B,OUTPUT);
pinMode(SEG_C,OUTPUT);
pinMode(SEG_D,OUTPUT);
pinMode(SEG_E,OUTPUT);
pinMode(SEG_F,OUTPUT);
pinMode(SEG_G,OUTPUT);
pinMode(SEG_H,OUTPUT);
pinMode(COM1,OUTPUT);
pinMode(COM2,OUTPUT);
pinMode(COM3,OUTPUT);
pinMode(COM4,OUTPUT);
}
void digits_4_seven_segment(int num){
for(int i=4;i>0;--i){
int rem=num%10;
Display(i,rem);
num = num/10;
}
}
void loop() {
if(digitalRead(button) == HIGH)
cnt = cnt+1;
if(cnt == 10000) cnt = 0;
delay(150);
}
digits_4_seven_segment(cnt);
}
void Display(unsigned char com,unsigned char num){
digitalWrite(SEG_A,LOW);
digitalWrite(SEG_B,LOW);
digitalWrite(SEG_C,LOW);
digitalWrite(SEG_D,LOW);
digitalWrite(SEG_E,LOW);
digitalWrite(SEG_F,LOW);
digitalWrite(SEG_G,LOW);
digitalWrite(SEG_H,LOW);
switch(com) {
case 1:
digitalWrite(COM1,LOW);
digitalWrite(COM2,HIGH);
digitalWrite(COM3,HIGH);
digitalWrite(COM4,HIGH);
break;
case 2:
digitalWrite(COM1,HIGH);
digitalWrite(COM2,LOW);
digitalWrite(COM3,HIGH);
digitalWrite(COM4,HIGH);
break;
case 3:
digitalWrite(COM1,HIGH);
digitalWrite(COM2,HIGH);
digitalWrite(COM3,LOW); //3번째 숫자 선택
digitalWrite(COM4,HIGH);
break;
case 4:
digitalWrite(COM1,HIGH);
digitalWrite(COM2,HIGH);
digitalWrite(COM3,HIGH);
digitalWrite(COM4,LOW);
break;
default:break;
}
digitalWrite(SEG_A,table[num][7]);
digitalWrite(SEG_B,table[num][6]);
digitalWrite(SEG_C,table[num][5]);
digitalWrite(SEG_D,table[num][4]);
digitalWrite(SEG_E,table[num][3]);
digitalWrite(SEG_F,table[num][2]);
digitalWrite(SEG_G,table[num][1]);
digitalWrite(SEG_H,table[num][0]);
}
이 댓글은 게시물 작성자가 삭제하였습니다.
배선 문제 일거 같은디 - dc App