아두이노

2진수를 10진수로 변환하는 시간이 초과하면 초과표시

내동 2018. 9. 25. 13:46

 int pins [ ] ={5,6 7,8,10 11,12,13};

 String buffer;

 int state;

 int Timeout = 20;

 unsigned long time_start, time_current;

 

void setup() {

for( int i= 0; i<8; i++){

pinMode( pins[ i ], OUTPUT);

}

Serial.begin(9600);

buffer =" ";

state = 0 ;

randomSeed ( analogRead(A5));

}

 

void loop() {

int number = random( 1, 256);

for( int i= 0; i< 8; i++){

boolean on_off = bitRead( number, i);

digitalWrite( pins[i], on_off);

}

Serial.println();

Serial.println( "Now, start to guess...." );

time_start = millis();

while( true){

time_current = millis();

if (( time_current - time_start)/1000> Timeout){

state = -1;

break;

}

while(Serial.available()>0){

char data = Serial.read();

if(data == '\n'){

state = 1;

break;

}

else{

buffer += data;}}

if ( state == 1){

int guess = buffer.toInt();

state = 0;

buffer = "";

Serial.println(" You entered" +String(guess));

 

if ( guess == number){

Serial.println(" Okay, you are right ");

}

else{

Serial.println( "Sorry, do some more match ");

}

break;

}

}

if( state == -1){

state = 0;

buffer = " ";

Serial.println(" Time out !!! Hurry up!!!");

}

}

'아두이노' 카테고리의 다른 글

양솔밸브 실린더 시퀸스 제어  (0) 2018.09.28
금속판 절단  (0) 2018.09.26
2진수를 10진수로 변환하는 게임  (0) 2018.09.25
4관절로봇제어  (0) 2018.03.17
온습도 표시기  (0) 2017.11.06