정보나눔

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

아두이노를 이용해서 특별한 서보모터도어락을 만들려고합니다.
조웅희 | 2016-10-18

안녕하세요 비밀번호 도어락을 만들려고 하는 전자과 학생입니다. 서브모터를 이용해서 하려고 하는데요 단순히 비밀번호를 인식하는 도어락을 만드는건 성공했는데 저희가 만들려고 하는 도어락은 비밀번호에 박자가 있는 도어락입니다. 예를들어 비밀번호가 1234이면 각 숫자사이에 시간차를 두어 1(2초후)2(1초후)3(2초후)4 이런식으로 만들어서 비밀번호 경우의수가 무한대인 도어락을 만들려고 하는데요. 어떻게 코드를 짜야하는지 정말 감이 안잡힙니다.  하드웨어적으로는 비밀번호 숫자를 하나 입력할 때마다 어느한 버튼에 불이 깜빡이게 해서 1초를 버튼이 한번깜빡이는 걸로 박자를 세려고 합니다.예를들면 비밀번호 1(2초후)2(1초후)3(2초후)4 이걸 만든다고 하면 1(두번깜빡)2(한번깜빡)3(2번깜빡)4 이런식으로 비밀번호를 구현하려고 합니다. 어떻게 코드를 짜야할지 힌트라도 좀 얻어보려고 질문올려봅니다.mills함수를 쓰고 시간값의 오차 허용범위를 둬야 한다는것은 알아냈는데, 비밀번호를 어떻게 mills함수를 써서 만들어야 할지 전혀 감이안잡힙니다.

#include <Servo.h>

 

Servo myservo;

char inByte;

String inString = "";

String password = "1234";

 


void setup()

{

  myservo.attach(9);  // attaches the servo on pin 9 to the servo object

  myservo.write(0);

  Serial.begin(9600);

}

 


void loop()

{

  if(Serial.available()){

    inByte = (char)Serial.read();

    if(inByte == '*'){

      inString = "";

    }else if(inByte == '#'){

      if(inString.indexOf(':') == -1){

        if(inString == password){

          myservo.write(180);

        }else{

          myservo.write(0);

        }

      }else{

        if(password == inString.substring(0,inString.indexOf(':'))){

          password = inString.substring(inString.indexOf(':')+1);

        }

      }

    }else{

      inString += inByte;

    }

  }

}

이건 저희가 인터넷에서 연구해서 구한 비밀번호 코드인데 여기다가 mills함수를 어떻게 적용해야할까요 ㅜ 그리고 mills함수의 자세한 사용법을 알 수 있는 사이트가 있을까요?

 

이전글   |    오렌지 보드가 블루투스 등록을 거절합니다.... 2016-10-17
다음글   |    아두이노 와이파이 쉴드 질문이요 2016-10-20