아두이노 코드 여쭤볼 수 있을까요??
조회수 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 답변
-
digitalWrite(j, clearsegment); 가 아니라 digitalWrite(j, 0); 이 되야하지 않을까요?
댓글 입력