BASIC4MCU | 질문게시판 | 아두이노 키패드모듈을 이용한 랜덤 비밀번호에 대해서 질문합니다.
페이지 정보
작성자 켯속 작성일2019-11-28 14:11 조회4,361회 댓글0건본문
안녕하세요 아두이노 도어락을 만드는 중 해결법이 안보여 질문드립니다.
밑에 있는 예제를 통해서 블루투스 연결과 임의로 설정한 비밀번호인 1,2,3,4를 입력했을 때
서브모터가 동작하는것을 확인하였는데요, 이 비밀번호를 지정이 아닌 랜덤 숫자 비밀번호로(4자리)
매번 바꿔서 시리얼 모니터에 띄우고 싶은데 도저히 모르겠습니다.
밑에 예제에서 이런코드도 추가했었습니다.
int ONE=random(9);
int TWO=random(9);
int THREE=random(9);
int FOUR=random(9);//4자리 암호 설정
Serial.print(ONE);
Serial.print(TWO);
Serial.print(THREE);Serial.println(FOUR);//4자리 암호 시리얼 모니터에 출력
하지만 해결이 안되어 방법을 물어봅니다.
사용부품:아두이노UNO, HC-06, 4X4키패드, SG-90서브모터
예제
#include
#include
#include
SoftwareSerial hc06(11,12);
int tru=0;
int count=0;
char PW[4]={'1','2','3','4'};
const byte ROWS = 4;
const byte COLS = 4;
byte rowPins[ROWS]={8,7,6,5};
byte colPins[COLS]={4,3,2,1};
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'},
};
Servo myservo;
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup() {
Serial.begin(9600);
hc06.begin(9600);
myservo.attach(13);
}
void loop() {
char key = keypad.getKey();
if(Serial.available()){
hc06.write(Serial.read());
}
if(key){
if(key==PW[count])
{
count++;
tru++;
}
else if(key!=PW[count]){
count++;
}
if(key=='#')
re();
if(count==4)
{
if(tru==4)
Su();
else
Fa();
tru=0;
count=0;
}
}
}
void Su()
{
myservo.write(1000);
}
void Fa() {
myservo.write(0);
}
void re()
{
tru=0;
count=0;
}
댓글 0
조회수 4,361등록된 댓글이 없습니다.