아두이노 키패드 도어락 질문
페이지 정보
작성자 master 작성일18-12-07 19:00 조회5,167회 댓글0건본문
#include <Keypad.h>
int buzzerPin = 8; //부저핀
int ledPin = 13; //led핀
int analogPin = 4; //진동핀
int inputPin = 7; //pir센서
int pirState = LOW; //pir센서
int val = 0;
int tru=0;
int count=0;
char PW[4]={'1','2','3','8'};
const byte ROWS = 4;
const byte COLS = 4;
byte rowPins[ROWS] = {12, 11, 10, 9};
byte colPins[COLS] = {8, 7, 6, 5};
char keys[ROWS][COLS] = {
{'1','2','3', 'A'},
{'4','5','6', 'B'},
{'7','8','9', 'C'},
{'*','0','#', 'D'}
};
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup(){
pinMode(ledPin,OUTPUT);
pinMode(analogPin,OUTPUT);
pinMode(buzzerPin,OUTPUT);
pinMode(inputPin,INPUT);
Serial.begin(9600);
}
void loop(){
char key = keypad.getKey();
if (key)
{
Serial.println(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()
{
digitalWrite(ledPin,HIGH);
digitalWrite(analogPin,0);delay(1000);
Serial.println("END");
pirState = LOW;
}
void Fa()
{
digitalWrite(ledPin,LOW);
digitalWrite(analogPin,1);delay(1000);
Serial.println("BREAK IN!");
pirState = HIGH;
}
void re()
{
digitalWrite(ledPin,LOW);
tru=0;
count=0;
Serial.println("reset");
}
void playTone(long duration,int freq) {
duration *= 1000;
int period = (1.0/freq) * 100000;
long elapsed_time = 0;
while(elapsed_time<duration){
digitalWrite(buzzerPin,HIGH);
delayMicroseconds(period/2);
digitalWrite(buzzerPin,LOW);
delayMicroseconds(period/2);
elapsed_time+=(period);
}
}
암호가 틀리면 pir센서가 작동하게하고 동시에 소리가울리고
암호가 맞으면 pir센서가 작동하지않고 동시에 소리가 울리지 않게 하고싶은데 어떻게 코드를 구상해야할까요? 지금 현재 상태는 키패드암호가 틀리면 led에 불이 켜지고 진동이 발생하는단계까진 했는데 소리와 pir센서가 인식이 안됩니다..도와주세요!
//
댓글 : 0
조회수 : 5,167
등록된 댓글이 없습니다.