BASIC4MCU | 질문게시판 | 아두이노 전자 금고 컴파일 오류 질문
페이지 정보
작성자 master 작성일2019-05-16 21:26 조회6,363회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=8629
본문
#include<LiquidCrystal.h>
#include<EEPROM.h>
LiquidCrystal_I2C lcd(0x3F,16,2);
char password[4];
char initial_password[4],new_password[4];
int i=0;
int relay_pin = 10;
char key_pressed=0;
const byte rows = 4;
const byte columns = 4;
char hexaKeys[rows][columns] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte row_pins[rows] = {A0,A1,A2,A3};
byte column_pins[columns] = {5,4,3,2};
Keypad keypad_key = Keypad( makeKeymap(hexaKeys), row_pins, column_pins, rows, columns);
void setup()
{
pinMode(relay_pin, OUTPUT);
liquid_crystal_display.begin(16,2);
liquid_crystal_display.print(" DIYhacking.com");
liquid_crystal_display.setCursor(0,1);
liquid_crystal_display.print("Electronic Lock ");
delay(2000);
liquid_crystal_display.clear();
liquid_crystal_display.print("Enter Password");
liquid_crystal_display.setCursor(0,1);
initialpassword();
}
void loop()
{
digitalWrite(relay_pin, HIGH);
key_pressed = keypad_key.getKey();
if(key_pressed=='#')
change();
if (key_pressed)
{
password[i++]=key_pressed;
liquid_crystal_display.print(key_pressed);
}
if(i==4)
{
delay(200);
for(int j=0;j<4;j++)
initial_password[j]=EEPROM.read(j);
if(!(strncmp(password, initial_password,4)))
{
liquid_crystal_display.clear();
liquid_crystal_display.print("Pass Accepted");
digitalWrite(relay_pin, LOW);
delay(2000);
liquid_crystal_display.setCursor(0,1);
liquid_crystal_display.print("Pres # to change");
delay(2000);
liquid_crystal_display.clear();
liquid_crystal_display.print("Enter Password:");
liquid_crystal_display.setCursor(0,1);
i=0;
}
else
{
digitalWrite(relay_pin, HIGH);
liquid_crystal_display.clear();
liquid_crystal_display.print("Wrong Password");
liquid_crystal_display.setCursor(0,1);
liquid_crystal_display.print("Pres # to Change");
delay(2000);
liquid_crystal_display.clear();
liquid_crystal_display.print("Enter Password");
liquid_crystal_display.setCursor(0,1);
i=0;
}
}
}
void change()
{
int j=0;
liquid_crystal_display.clear();
liquid_crystal_display.print("Current Password");
liquid_crystal_display.setCursor(0,1);
while(j<4)
{
char key=keypad_key.getKey();
if(key)
{
new_password[j++]=key;
liquid_crystal_display.print(key);
}
key=0;
}
delay(500);
if((strncmp(new_password, initial_password, 4)))
{
liquid_crystal_display.clear();
liquid_crystal_display.print("Wrong Password");
liquid_crystal_display.setCursor(0,1);
liquid_crystal_display.print("Try Again");
delay(1000);
}
else
{
j=0;
liquid_crystal_display.clear();
liquid_crystal_display.print("New Password:");
liquid_crystal_display.setCursor(0,1);
while(j<4)
{
char key=keypad_key.getKey();
if(key)
{
initial_password[j]=key;
liquid_crystal_display.print(key);
EEPROM.write(j,key);
j++;
}
}
liquid_crystal_display.print("Pass Changed");
delay(1000);
}
liquid_crystal_display.clear();
liquid_crystal_display.print("Enter Password");
liquid_crystal_display.setCursor(0,1);
key_pressed=0;
}
void initialpassword(){
for(int j=0;j<4;j++)
EEPROM.write(j, j+49);
for(int j=0;j<4;j++)
initial_password[j]=EEPROM.read(j);
}
여기까지 짰는데 오류가 밑에 처럼 떴습니다. 해결책 좀 알려주세요.
C:\Users\zobab\Documents\Arduino\sketch_oct31a\sketch_oct31a.ino: In function 'void setup()':
sketch_oct31a:50:3: error: 'liquid_crystal_I2C' was not declared in this scope
liquid_crystal_I2C display.begin(16,2);
^
sketch_oct31a:52:22: error: expected ';' before 'display'
liquid_crystal_I2C display.print(" DIYhacking.com");
^
sketch_oct31a:54:22: error: expected ';' before 'display'
liquid_crystal_I2C display.setCursor(0,1);
^
sketch_oct31a:56:22: error: expected ';' before 'display'
liquid_crystal_I2C display.print("Electronic Lock ");
^
sketch_oct31a:60:22: error: expected ';' before 'display'
liquid_crystal_I2C display.clear();
^
sketch_oct31a:62:22: error: expected ';' before 'display'
liquid_crystal_I2C display.print("Enter Password");
^
sketch_oct31a:64:22: error: expected ';' before 'display'
liquid_crystal_I2C display.setCursor(0,1);
^
C:\Users\zobab\Documents\Arduino\sketch_oct31a\sketch_oct31a.ino: In function 'void loop()':
sketch_oct31a:91:5: error: 'liquid_crystal_I2C' was not declared in this scope
liquid_crystal_I2C display.print(key_pressed);
^
sketch_oct31a:109:7: error: 'liquid_crystal_I2C' was not declared in this scope
liquid_crystal_I2C display.clear();
^
sketch_oct31a:111:26: error: expected ';' before 'display'
liquid_crystal_I2C display.print("Pass Accepted");
^
sketch_oct31a:117:26: error: expected ';' before 'display'
liquid_crystal_I2C display.setCursor(0,1);
^
sketch_oct31a:119:26: error: expected ';' before 'display'
liquid_crystal_I2C display.print("Pres # to change");
^
sketch_oct31a:123:26: error: expected ';' before 'display'
liquid_crystal_I2C display.clear();
^
sketch_oct31a:125:26: error: expected ';' before 'display'
liquid_crystal_I2C display.print("Enter Password:");
^
sketch_oct31a:127:26: error: expected ';' before 'display'
liquid_crystal_I2C display.setCursor(0,1);
^
sketch_oct31a:145:7: error: 'liquid_crystal_I2C' was not declared in this scope
liquid_crystal_I2C display.clear();
^
sketch_oct31a:147:26: error: expected ';' before 'display'
liquid_crystal_I2C display.print("Wrong Password");
^
sketch_oct31a:149:26: error: expected ';' before 'display'
liquid_crystal_I2C display.setCursor(0,1);
^
sketch_oct31a:151:26: error: expected ';' before 'display'
liquid_crystal_I2C display.print("Pres # to Change");
^
sketch_oct31a:155:26: error: expected ';' before 'display'
liquid_crystal_I2C display.clear();
^
sketch_oct31a:157:26: error: expected ';' before 'display'
liquid_crystal_I2C display.print("Enter Password");
^
sketch_oct31a:159:26: error: expected ';' before 'display'
liquid_crystal_I2C display.setCursor(0,1);
^
C:\Users\zobab\Documents\Arduino\sketch_oct31a\sketch_oct31a.ino: In function 'void change()':
sketch_oct31a:178:3: error: 'liquid_crystal_I2C' was not declared in this scope
liquid_crystal_I2C; display.lear();
^
sketch_oct31a:178:23: error: 'display' was not declared in this scope
liquid_crystal_I2C; display.lear();
^
sketch_oct31a:196:26: error: expected ';' before 'display'
liquid_crystal_I2C display.print(key);
^
sketch_oct31a:215:24: error: expected ';' before 'display'
liquid_crystal_I2C display.clear();
^
sketch_oct31a:217:24: error: expected ';' before 'display'
liquid_crystal_I2C display.print("Wrong Password");
^
sketch_oct31a:219:24: error: expected ';' before 'display'
liquid_crystal_I2C display.setCursor(0,1);
^
sketch_oct31a:221:24: error: expected ';' before 'display'
liquid_crystal_I2C display.print("Try Again");
^
sketch_oct31a:233:24: error: expected ';' before 'display'
liquid_crystal_I2C display.clear();
^
sketch_oct31a:235:24: error: expected ';' before 'display'
liquid_crystal_I2C display.print("New Password:");
^
sketch_oct31a:237:24: error: expected ';' before 'display'
liquid_crystal_I2C display.setCursor(0,1);
^
sketch_oct31a:251:28: error: expected ';' before 'display'
liquid_crystal_I2C display.print(key);
^
sketch_oct31a:263:24: error: expected ';' before 'display'
liquid_crystal_I2C display.print("Pass Changed");
^
sketch_oct31a:269:22: error: expected ';' before 'display'
liquid_crystal_I2C display.clear();
^
sketch_oct31a:271:22: error: expected ';' before 'display'
liquid_crystal_I2C display.print("Enter Password");
^
sketch_oct31a:273:22: error: expected ';' before 'display'
liquid_crystal_I2C display.setCursor(0,1);
^
exit status 1
'liquid_crystal_I2C' was not declared in this scope
// DateTime : 2018-11-15 오전 4:11:33// by Ok-Hyun Park//#include <LiquidCrystal_I2C.h>LiquidCrystal_I2C lcd(0x3F,16,2);#include <Keypad.h>#include <EEPROM.h>char password[4];char initial_password[4],new_password[4];int i=0;int relay_pin=10;char key_pressed=0;const byte rows=4;const byte columns=4;char hexaKeys[rows][columns]={{ '1','2','3','A'},{ '4','5','6','B'},{ '7','8','9','C'},{ '*','0','#','D'}};byte row_pins[rows]={ A0,A1,A2,A3};byte column_pins[columns]={ 5,4,3,2};Keypad keypad_key=Keypad(makeKeymap(hexaKeys),row_pins,column_pins,rows,columns);//void setup(){pinMode(relay_pin,OUTPUT);lcd.begin(16,2); lcd.print(" DIYhacking.com");lcd.setCursor(0,1); lcd.print("Electronic Lock ");delay(2000);lcd.clear(); lcd.print("Enter Password");lcd.setCursor(0,1);initialpassword();}//void loop(){digitalWrite(relay_pin,HIGH);key_pressed=keypad_key.getKey();//if(key_pressed=='#')change();//if(key_pressed){ password[i++]=key_pressed; lcd.print(key_pressed); }//if(i==4){delay(200);for(int j=0; j<4; j++)initial_password[j]=EEPROM.read(j);//if(!(strncmp(password,initial_password,4))){digitalWrite(relay_pin,LOW);lcd.clear(); lcd.print("Pass Accepted"); delay(2000);lcd.setCursor(0,1); lcd.print("Pres#to change"); delay(2000);lcd.clear(); lcd.print("Enter Password: ");lcd.setCursor(0,1);i=0;}else{digitalWrite(relay_pin,HIGH);lcd.clear(); lcd.print("Wrong Password");lcd.setCursor(0,1); lcd.print("Pres#to Change");delay(2000);lcd.clear(); lcd.print("Enter Password");lcd.setCursor(0,1);i=0;}}}//void change(){int j=0;lcd.clear(); lcd.print("Current Password");lcd.setCursor(0,1);//while(j<4){char key=keypad_key.getKey();if(key){ new_password[j++]=key; lcd.print(key); }key=0;}delay(500);//if((strncmp(new_password,initial_password,4))){lcd.clear(); lcd.print("Wrong Password");lcd.setCursor(0,1); lcd.print("Try Again");delay(1000);}else{j=0;lcd.clear(); lcd.print("New Password: ");lcd.setCursor(0,1);while(j<4){char key=keypad_key.getKey();if(key){ initial_password[j]=key; lcd.print(key); EEPROM.write(j,key); j++; }}lcd.print("Pass Changed");delay(1000);}lcd.clear(); lcd.print("Enter Password");lcd.setCursor(0,1);key_pressed=0;}//void initialpassword(){for(int j=0; j<4; j++)EEPROM.write(j,j+49);for(int j=0; j<4; j++)initial_password[j]=EEPROM.read(j);}
댓글 0
조회수 6,363등록된 댓글이 없습니다.