질문게시판 > 답변 : 키패드 led 인체감지 질문

TODAY995 TOTAL2,271,399
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | 질문게시판 | 답변 : 키패드 led 인체감지 질문

페이지 정보

작성자 master 작성일2022-06-02 15:12 조회1,013회 댓글3건

본문

	

지금 도어락 코딩중인데 지금까지 구현한게

1.키패드로 비밀번호 입력하면 서보모터 동작

2.앱인벤터로 앱 개발해서 앱으로도 비밀번호 입력하면 서보모터 동작

3.인체감지센서 hc-sr501 사용해서 문 앞에 인체감지되면 앱인벤터로 푸시알람 보내기+uvc led 꺼짐(8초)

입니다

여기서 문제가 uvc led가 꺼져있는 8초동안에는 키패드랑 앱인벤터 비밀번호 입력이 안됩니다

어떻게 고쳐야할지 감이 안옵니다 ㅠㅠ

led꺼짐과 키패드 비밀번호 입력이 동시에 가능한건가요?

아두이노 우노 사용중입니다

//앱이랑 키패드로 문열기 알림감지

//

#include <Keypad.h>

#include <Servo.h>            // 서보모터를 위한 Servo.h 라이브러리를 포함한다.

#include <SoftwareSerial.h>   // SoftwareSerial을 통해 블루투스와 데이터 전송

SoftwareSerial BTserial(2,3); //  Tx2 Rx3

Servo myservo;

//

#define Sensing_pin A2        // 센서 신호선 핀 설정입니다.

#define UVC         A3        // UVC 핀 설정입니다.

//

char PW[]={"2222"}; //비밀번호

String str_data="";

const byte ROWS=4; 

const byte COLS=3; 

byte rowPins[ROWS]={10,9,8,7}; 

byte colPins[COLS]={6,5,4}; 

char keys[ROWS][COLS]={ 

  {'1','2','3'},

  {'4','5','6'},

  {'7','8','9'},

  {'*','0','#'}

};

int num=10000;

int b=0; 

int tru=0; // 비밀번호가 맞는지 확인

int count=0;

int led_cnt=0;

//

Keypad keypad=Keypad( makeKeymap(keys),rowPins,colPins,ROWS,COLS );

//

void setup(){

  myservo.attach(A1); // A1번핀에 서보모터 연결

  Serial.begin(9600); 

  BTserial.begin(9600); // 9600 속도로 블루투스시리얼(소프트웨어시리얼)통신을 시작한다

  delay(100);

}

//

void loop(){

  if(led_cnt){

    if(--led_cnt==0){

      digitalWrite(A3,1); // UVC ON

      myservo.attach(A1); // A1번핀에 서보모터 연결

    }

  }

  else{

    if(++num>=100){ num=0;  // 100ms 마다 실행

      if(digitalRead(Sensing_pin)==HIGH){

        BTserial.println("블루투스감지됨"); // 움직임이 감지됐어요!

        Serial.println("감지되었습니다");

        digitalWrite(A3,0); //UVC OFF

        myservo.detach();

        led_cnt=8000;

      }

    }

  }

  //

  if(BTserial.available()){ // 블루투스를 통해 수신된 데이터가 있으면 

    str_data=getStringdata();

    Serial.println(str_data);

    if(str_data==PW){ myservo.write(180); Serial.println("open "); BTserial.print('o'); delay(15); }

    else            { myservo.write(  0); Serial.println("close"); BTserial.print('x'); }

  }

  //

  char key=keypad.getKey(); // 키패드 입력받는 부분

  if(key){ 

    Serial.println(key);

    if(key==PW[count]){ tru++; } //입력번호와 비밀번호가 맞을시 tru++

    count++;

    //

    if(count==4){ //count개수가 비밀번호 개수와 같을 시

        if(tru==4)Su();//성공함수

        else      Fa();//실패함수

        tru=0; count=0;

    }

  } 

  //

  delay(1);

//

String getStringdata(){

  String str="";                 // str 를 String(문자열형)으로 선언

  while(BTserial.available()){   // 블루투스가 실행되는 동안

    str +=(char)BTserial.read(); // 블루투스에서 읽어드리는값을 char 형으로 변환 하면서 str에 합치기 

    delay(5);

  }

  return str; // 합쳐진 문자열형 반환 

}

//

void Su(){ myservo.write(180); Serial.println("open the door "); } // 성공했을시 모터를 돌려주며 성공메세지 보내기

void Fa(){ myservo.write(  0); Serial.println("close the door"); } // 실패했을시 모터를 돌려주며 실패메세지 보내기


  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글 3

조회수 1,013

면지지님의 댓글

면지지 작성일

답변 감사드립니다
코드를 적용해 봤는데 문제가

1. uvc led는 인체감지 최소 1번은 되야 켜짐 ->평소에는 계속 켜져있거나 오래 작동 시키고싶음
2. 서보모터가 0도(잠김)상태에서 인체감지되면 혼자 40도 정도 움직이다가 감지시간 풀리니 다시 되돌아옴
3. 감지되있는동안 키패드,앱 비밀번호 입력은 되지만 서보모터 작동이 안됨

입니다 ㅠㅠ

master님의 댓글

master 댓글의 댓글 작성일

1. uvc led는 인체감지 최소 1번은 되야 켜짐 ->평소에는 계속 켜져있거나 오래 작동 시키고싶음
digitalWrite(A3,1); // UVC ON
이 코드를 셋업함수 마지막에 넣어두면 처음부터 켜진채로 시작합니다.

2. 서보모터가 0도(잠김)상태에서 인체감지되면 혼자 40도 정도 움직이다가 감지시간 풀리니 다시 되돌아옴
      myservo.detach();
감지되면 서보모터 전류를 흘리지 않습니다.
40도가 움직이는 것은 서보모터에 달린 부하의 무게 때문에 모터 축이 움직인 것일까요?

3. 감지되있는동안 키패드,앱 비밀번호 입력은 되지만 서보모터 작동이 안됨
      myservo.detach();
감지 되면 모터 전류를 풀어서 모터가 제어가 안되는 겁니다.
질문에서 모터 제어를 풀었는데 안된다고 하시면 해당 코드를 삭제하면 되겠죠
      myservo.attach(A1); // A1번핀에 서보모터 연결
루프함수에 있는 이 코드도 함께 삭제하세요

면지지님의 댓글

면지지 댓글의 댓글 작성일

많은 도움 됬습니다 정말 감사합니다

질문게시판HOME > 질문게시판 목록

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
질문 아두이노 우노 온습도센서와 LED댓글[7] 이미지 체펠리 22-06-08 3342
질문 아두이노 푸쉬버튼 질문입니다.댓글[2] 이미지첨부파일 홍머생 22-06-08 1028
질문 아두이노 lcd 카운트다운 ghost45 22-06-08 1049
답변 답변글 답변 : 아두이노 lcd 카운트다운 master 22-06-08 1231
질문 블루투스 간 통신 질문입니다 새벽효 22-06-08 958
답변 답변글 답변 : 블루투스 간 통신 질문입니다 master 22-06-08 849
질문 atmega128에서 초음파 센서(HC-SR04)를 통해 부저 소리를 내려합니다. seung 22-06-08 1140
답변 답변글 답변 : atmega128에서 초음파 센서(HC-SR04)를 통해 부저 소리를 내려합니다.댓글[1] master 22-06-08 1455
질문 stm32 pwm구동 여부 질문입니다.댓글[6] 손문일 22-06-08 2388
질문 Atmaga128 인터럽트를 사용한 main문 재실행 질문입니다.댓글[5] 나욜렌 22-06-08 1388
질문 Atmega128 코딩 도와주세요,,! 이미지첨부파일 화니뿌뿌 22-06-07 1276
답변 답변글 답변 : Atmega128 코딩 도와주세요,,!댓글[3] master 22-06-08 1384
질문 스템모터 연동질문 초보코디러 22-06-07 583
답변 답변글 답변 : 스템모터 연동질문 master 22-06-07 741
질문 서보모터 질문댓글[2] 죠르디 22-06-07 1079
질문 atmega128 코드 질문있습니다 콜뚜기 22-06-07 1078
답변 답변글 답변 : atmega128 코드 질문있습니다댓글[3] master 22-06-07 1408
질문 AVR 128 -> 2560으로 변경하는 법좀 알려주세요ㅠㅠ댓글[2] tnwls 22-06-07 1433
질문 보드레이트 관련 질문댓글[1] 죠르디 22-06-07 1009
답변 답변글 답변 : 보드레이트 관련 질문 죠르디 22-06-07 1342
답변 답변글 답변 : 답변 : 보드레이트 관련 질문댓글[1] master 22-06-07 1195
답변 답변글 답변 : 답변 : 답변 : 보드레이트 관련 질문댓글[1] 죠르디 22-06-16 792
질문 우노 하드웨어 시리얼 전환댓글[7] 면지지 22-06-06 1679
질문 ATMEGA128질문입니다.댓글[1] suid82 22-06-06 1228
질문 스텝모터2개 + 초음파센서댓글[1] 공천 22-06-06 1098
질문 시리얼 통신 블루투스 질문입니다.댓글[2] 이미지첨부파일 현두이노 22-06-06 994
질문 아두이노 서보모터 2개제어댓글[1] 아드초 22-06-06 1113
질문 아두이노 서보모터 질문드립니다. 아드초 22-06-06 873
답변 답변글 답변 : 아두이노 서보모터 질문드립니다.댓글[1] master 22-06-06 1405
질문 신호를 받아서 진동울리기댓글[4] 메론맛드링크 22-06-06 1332
게시물 검색

2022년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2021년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2020년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2020
모바일버전으로보기