정보나눔

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

error compiling for board arduino/genuino mega or mega 2560. 이란 오류가 나옵니다 ㅠㅠ
MortHock | 2019-06-07

 

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

  아두이노 메가 2560

 

 

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

  아두이노 IDE

 

 

3. 사용한 센서 모델명

 LCD Key, 4x4 Keypad.

 

 

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

 

 

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

  #include <LiquidCrystal.h>

 

 

 

 

 

void  Encoder_san();

//==============================================

//Set Encoder pin

//==============================================

const int Encoder_A =  3;            // Incremental Encoder singal A is PD3 

const int Encoder_B =  2;            // Incremental Encoder singal B is PD2 

//const int ledPin    =  13;  

unsigned int Encoder_number=0;

 int state=0;

 

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);  

// define some values used by the panel and buttons

int lcd_key     = 0;

int adc_key_in  = 0;

#define btnRIGHT  0

#define btnUP     1 

#define btnDOWN   2 

#define btnLEFT   3

#define btnSELECT 4

#define btnNONE   5   

#define btnEncodeOK  6 

// read the buttons

int read_LCD_buttons() 

{  

adc_key_in = analogRead(0);      

// read the value from the sensor  

// my buttons when read are centered at these valies: 0, 144, 329, 504, 741  

// we add approx 50 to those values and check to see if we are close  

//if(digitalRead(11)==0) return EncodeOK;

if (adc_key_in > 1000) return btnNONE; 

// We make this the 1st option for speed reasons since it will be the most likely result  

// For V1.1 us this threshold  

if (adc_key_in < 50)   return btnLEFT;   

if (adc_key_in < 150)  return btnUP;   

if (adc_key_in < 250)  return btnRIGHT;   

if (adc_key_in < 450)  return btnSELECT;   

if (adc_key_in < 700)  return btnDOWN;     

if (adc_key_in < 850)  return btnEncodeOK;

// For V1.0 comment the other threshold and use the one below: 

/*  if (adc_key_in < 50)   return btnRIGHT;    

if (adc_key_in < 195)  return btnUP;  

if (adc_key_in < 380)  return btnDOWN;  

if (adc_key_in < 555)  return btnLEFT;   

if (adc_key_in < 790)  return btnSELECT;    

*/    

return btnNONE;  // when all others fail, return this... 

}   

 

 

 

//Keypad PIN 22~37

const int KeyPin[16] = {22, 23, 24, 25,

                        26, 27, 28, 29,

                        30, 31, 32, 33,

                        34, 35, 36, 37};

//read Keypad Data

unsigned int InputKey=0;

 

void setup()

{ Serial.begin(115200);

for(int i=0;i< 16;i++) //Setting Keypad pinMode

pinMode(KeyPin[i], INPUT);

 

{lcd.begin(16, 2);   // start the library  

pinMode(10,OUTPUT);

digitalWrite(10, 1);

lcd.setCursor(0,0);  

lcd.print("Push the buttons"); // print a simple message 

//========================================

 //pinMode(11,INPUT);

// digitalWrite(11, 1);

 //========================================

  pinMode(Encoder_A, INPUT); 

  pinMode(Encoder_B, INPUT); 

  digitalWrite(Encoder_A, 1);

  digitalWrite(Encoder_B, 1);

  //========================================

  attachInterrupt(1, Encoder_san, FALLING);        //interrupts: numbers 0 (on digital pin 2) and 1 (on digital pin 3).

}

}

 

 

     

 

void loop()

{ InputKey=readkey();

if(InputKey>0)

{ Serial.print(InputKey); //Print pushed button number

Serial.println(" Pushed");

 }

}

 

int readkey()

{ int readVal=0, pushBtn=0;

for(int i=0;i<16;i++)

  if(digitalRead(KeyPin[i])==LOW)

   { readVal+=1;

    pushBtn=i+1;

    }

   }

  if(readVal>1) //Error:more 2 Button Pushed

return 0;

else if(readVal==1){ //1 Button Pushed

delay(200);

return pushBtn;

}

else //No Pushed

return 0;

}

 

 

6. 문제점 및 에러 내용

 현재 키패드하고 LCD 키 패널을 동시에 사용하는 코드를 짜고 있는데 error compiling for board arduino/genuino mega or mega 2560.라는 에러가 떠서 검색을 해보니 헤더파일이 추가가 되지 않은 경우라 하여 LiquidCrystal.h를 추가하였으나 계속 이런 오류가 발생하네요 ㅠㅠㅠ 그냥 LCD패널만 연결할 때는 오류가 뜨지 않는데 혹시 도와주실 수 있으신가요? ㅠㅠㅠㅠ

이전글   |    DFPlayer 작동이 안됩니다!! Help me!! 2019-06-07
다음글   |    아두이노 심박수 블루투스 2019-06-07