아두이노 코드 여쭤볼 수 있을까요??

조회수 532회
#include <SoftwareSerial.h>
#define FND_A 2 // 핀 매치, A는 2번핀
#define FND_DP 9 // 핀 매치, DP는 9번핀

int TxPin = 11;              // 블루투스 TX핀 2번핀에 연결
int RxPin = 10;             // 블루투스 RX핀 3번핀 연결
SoftwareSerial BTSerial(TxPin, RxPin); 
int Sound_Sensor = A0;     //소리 감지 센서 A0핀 연결
int OUTPUT_pin = 13;        //LED연결한 릴레이모듈 6번 핀에 연결
int i,j,q,m;                     //반복문, 7세그먼트 제어 위해  변수 선언

void setup(){
 Serial.begin(9600);
  BTSerial.begin(9600);;
  pinMode(Sound_Sensor,INPUT);      //소리 감지 센서를 입력으로 설정
  pinMode(OUTPUT_pin,OUTPUT);       //릴레이 모듈에 연결된 핀을 출력으로 설정
  for (j=FND_A; j<=FND_DP; j++) // 핀 번호가 연속적으로 할당되어 있으므로 가능
pinMode(j, OUTPUT); // pin2 ~ pin9 까지 모두 출력으로 세팅
}

void loop(){
  if(BTSerial.available())      
    {
      char cmd = (char)BTSerial.read();
      if(cmd=='1'){                       //어플상 전등 켜기 누르면 켜짐
        digitalWrite(OUTPUT_pin,HIGH);
      }else if(cmd=='0'){                 //어플상 전등 끄기 누르면 꺼짐
        digitalWrite(OUTPUT_pin,LOW);  
      }
}
  boolean digit[11][8] = {
{1, 1, 1, 0, 0, 1, 1, 0}, // 숫자 ‘9’에 대응
{1, 1, 1, 1, 1, 1, 1, 1}, // 숫자 ‘8’에 대응
{1, 1, 1, 0, 0, 0, 0, 1}, // 숫자 ‘7’에 대응
{1, 0, 1, 1, 1, 1, 1, 0}, // 숫자 ‘6’에 대응
{1, 0, 1, 1, 0, 1, 1, 0}, // 숫자 ‘5’에 대응
{0, 1, 1, 0, 0, 1, 1, 0}, // 숫자 ‘4’에 대응
{1, 1, 1, 1, 0, 0, 1, 0}, // 숫자 ‘3’에 대응
{1, 1, 0, 1, 1, 0, 1, 0}, // 숫자 ‘2’에 대응
{0, 1, 1, 0, 0, 0, 0, 0}, // 숫자 ‘1’에 대응
{1, 1, 1, 1, 1, 1, 0, 0}, // 숫자 ‘0’에 대응
{0,0,0,0,0,0,0}}; 

boolean clearsegment[] = {0,0,0,0,0,0,0,0};

  if(analogRead(Sound_Sensor)>700){    // 소리 감지 센서에서 700이상 감지시 동작
    for (q=0; q<=10; q++){ // 숫자가 0~9까지 10개이므로 10번 루프
      for (j=FND_A; j<= FND_DP; j++){ // 정해진 한 개의 숫자 디스플레이
       digitalWrite(j, digit[q][j-2]); // 각 핀에 대응되는 1, 0 값을 Write
       digitalWrite(OUTPUT_pin,HIGH); //LED켜짐
       }
       delay(500);
       digitalWrite(OUTPUT_pin,LOW); //LED꺼짐
       delay(500);
    if(BTSerial.available())              
    {
      char cmd = (char)BTSerial.read();
      if(cmd=='3') {          //어플 상에서 알람 확인 누르면 브레이크
        for (j=FND_A; j<= FND_DP; j++){
          digitalWrite(j, clearsegment);
        }
      break;}
    }
    }
    }
   else {
    digitalWrite(OUTPUT_pin,LOW);  //시간 지나면 꺼짐
  }
}

위의 코드에서 if(cmd=='3') { //어플 상에서 알람 확인 누르면 브레이크 for (j=FND_A; j<= FND_DP; j++){ digitalWrite(j, clearsegment); } break;} 이 조건이 실행되면 7세그먼트 화면이 꺼지면서 코드가 중지되게 하고 싶은데 LED는 멈추는데 7세그먼트는 그 숫자에서 멈추더군요... 이 때 7세그먼트가 아예 꺼지게 하고 싶은데 방법을 모르겠습니다...

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)