정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

아두이노로 FND제어 및 인터럽트를 통한 LED 제어 코딩 질문드립니다.
byeonggyu24 | 2019-08-30

1. 프로젝트 사용한 보드 종류

  아두이노 UNO

 

 

2. 사용한 개발 프로그램명

  아두이노 IDE

 

 

3. 사용한 센서 모델명

  2 digit FND, LED, SW

 

 

4. 연결한 회로 설명 (또는 이미지)

 

 

5. 소스코드 (주석 필수)

 

#include
#ifdef __AVR__
  #include
#endif

#define A 3
#define B 4
#define C 8
#define D 10
#define E 9
#define F 7
#define G 11

#define digit1 6
#define digit2 5
#define buttonPin      2
#define ledPin  13

int buttonState = 0;
int k=0;
int j=0;
int i=0;

const int segs[7]={A,B,C,D,E,F,G};
const int numbers[10][7]={{1,1,1,1,1,1,0},{0,1,1,0,0,0,0},{1,1,0,1,1,0,1},{1,1,1,1,0,0,1},{0,1,1,0,0,1,1},{1,0,1,1,0,1,1},{1,0,1,1,1,1,1},{1,1,1,0,0,1,0},{1,1,1,1,1,1,1},{1,1,1,1,0,1,1},};

int randomNum = 0;

void setup(){
  Serial.begin(9600);

  pinMode(buttonPin, INPUT_PULLUP);
 
  for(int i=0;i<7;i++){
    pinMode(segs[i],OUTPUT);
  }
  pinMode(digit1,OUTPUT);
  pinMode(digit2,OUTPUT);
  pinMode(ledPin, OUTPUT);
}

void loop(){
  if(Serial.available())
  {
    randomNum = Serial.read();
  }
  lightnumber1(randomNum);
  delay(10);
  lightnumber2(randomNum/10);
  delay(10);
 
  buttonState=digitalRead(buttonPin);
 
 
 
  if(buttonState==LOW)
  {
    randomNum=0;
    for(j=0;j<5;j++)
    {
      for(k=0;k<3;k++)
      {
        digitalWrite(ledPin, HIGH);
        delay(500);
        digitalWrite(ledPin, LOW);
        delay(500);
      }
    }
  }
}

void lightnumber1(int num1){
  digitalWrite(digit1,LOW);
  digitalWrite(digit2,HIGH);
  for(int i=0;i<7;i++){
    digitalWrite(segs[i],numbers[num1][i]);
  }
}
void lightnumber2(int num2){
  digitalWrite(digit1,HIGH);
  digitalWrite(digit2,LOW);
  for(int i=0;i<7;i++){
    digitalWrite(segs[i],numbers[num2][i]);
  }
}

 

 

6. 문제점 및 에러 내용

  버튼을 누르면 FND의 1의 자리 숫자가 꺼집니다 뭐가 문제일까요 도와주세요ㅠ

 

이전글   |    아두이노 블루투스 2019-08-29
다음글   |    블루투스 2대 페어링과 동시에 신호 자동 입력 가능한가요...?... 2019-08-30