아두이노 switch-case문 무한반복 하는법

아두이노 switch-case문 무한반복 하는법

작성일 2022.12.05댓글 1건
    게시물 수정 , 삭제는 로그인 필요

switch (r_data) {

  case 1:

    for(k=0; k<4; k++) {

      analogWrite(pin_LED[k], val2);

    }

    tone(11, 494, 1000);

    delay(1000);

  break;

  case 2:

    noTone(11);

    delay(1000);

   break; 

  }


블루투스로 값을 받은후


1이 들어오면 LED가 켜짐과 동시에 부저에서 소리가 1초 간격으로 울리는게 '무한반복'되도록 하며


2가 들어오면 종료되는걸 원합니다.


어떻게 하면 case 내에서 무한반복을 할 수 있을까요?


답변 부탁드립니다. 감사합니다!



profile_image 익명 작성일 -

case 문안에서 무한 반복을 하면 그곳에서 빠져나오지를 못합니다 . 그렇게 되면 r_data라는 값을 읽지를 못합니다 .

다시 말해 r_data가 1이 되면 case1으로 들어가 beep소리가 나는 것 까지는 좋은데 그곳에서 무한 루프로 들어가면 다시는 r_data값을 읽지 못하게 된다는 것이죠.

그러므로 현재 상태로 그냥 두고 굳이 1초 마다 beep소리를 반복하고 싶다면

tone(11, 494, 1000);

delay(1000);

noTone(11);

delay(1000);

case1일때의 위와 같이 해주면 1초 마다 beep가 On,OFF됩니다.

만약 r_data가 잠깐만 1이 되고, 잠시뒤 다른 값이 된다면 이런식으로 하세요.

int beep;

switch (r_data) {

case 1:

beep = 1;

break;

case 2:

beep = 0;

break;

}

if(beep) {

for(k=0; k<4; k++) {

analogWrite(pin_LED[k], val2);

}

tone(11, 494, 1000);

delay(1000);

noTone(11);

delay(1000);

} else {

noTone(11);

}

참고하세요.

아두이노 Switch case 문 질문입니다.

... 1만번 반복하는 도중에 Switch Case 문을 탈출하고 Void loop() 로 다시 복귀... 요약 하자면 Switch Case 문 안에서 for 등을 이용해서 1만번...

switch case 문무한루프가 돌게...

... 무한루프 도는 문제점만 제 방식대로 해결해 드렸습니다. scanf( )를 쓰시고도 해결하는 법이... continue; } switch (choice){ case INPUT: printf("이름...

아두이노 switch문 default가 자꾸...

... switch(a) { case '1': digitalWrite(13,HIGH); Serial.... 해야 하는 것만 문제네요. (저것 때문에 값... 아두이노IDE에서 시리얼 통신창을 띄우시면...

c언어 switchcase 합치는법

c언어 switch문에서 case가 0이든1이든2이든3이든 모두 0으로 가게하는법이 있나요? switch (테스트()) { case 0: 1 break; case 1: 2 break; case 2: 3 break; case 3: 4...