2017-10-31 5 views
-2

Arduino 메가를 사용하고 있으며 Arduino 용 블루투스 터미널 앱으로 블루투스로 제어됩니다. 내가 원하는 것은, 시작시에, setup-에서 사용자에게 4 자리 PIN을 물어보고, 일단 사용자가 핀을 입력하고 히트를 보내면 프로그램이 그 전에 진행되어야한다는 것이다. . 이것이 내가 시도한 것입니다.설치 프로그램의 직렬()에서 문자 배열을 읽고 사용자가 보내기를 기다릴만큼 길게 기다리는 방법은 무엇입니까?

unsigned char buff[4]; 

void getPassword() { 

    int j = 0; 

    Serial1.println("Enter the PIN: "); 

    for (;;) { 
    while (Serial1.available() > 0) { 
     buff[j] = Serial1.read(); 
     j++; 
    } 

    if (j >= 3) { 

     break; 
    } 
    } 
} 

void setup() { 

getPassword(); 
} 

전혀 작동하지 않는 것 같습니다. 이것을 어떻게 성취합니까?

+1

"전혀 작동하지 않습니다"를 정의 할 수 있습니까? Arduino가 아무것도하지 않는다는 것을 의미합니까? 즉, 코드를 올바르게 업로드하지 않았을 수 있습니다. 아니면 우리에게 줄 수있는 더 구체적인 증상이 있습니까? –

답변

0

암호 버퍼의 길이가 4 자임을 알게되었습니다. 하지만 당신은 시리얼에서 3 문자를 읽고 있습니다. 실제로 암호는 3 또는 4 자 길이입니까? 길이가 4 자이면 j가 3 일 때 해당 루프를 종료 할 시간이 아닙니다. j가 3 일 때 네 번째 문자를 기다리고 있습니다. 네 번째 문자를 읽은 후에 종료하고 싶습니다. j가 다시 증가하여 4가됩니다.