BASIC4MCU | 질문게시판 | master님 질문있습니다.
페이지 정보
작성자 공병1 작성일2018-12-04 21:01 조회4,582회 댓글0건본문
#include
SoftwareSerial BTserial(4,5);
#define LED1_PIN 9
#define LED2_PIN 10
#define LED3_PIN 11int sensor=2;
int sensor_a=4;
int sensor_b=5;
int randNumber;void alloff(){
digitalWrite(LED1_PIN,LOW);
digitalWrite(LED2_PIN,LOW);
digitalWrite(LED3_PIN,LOW);
}
void setup() {
pinMode(LED1_PIN,OUTPUT);
pinMode(LED2_PIN,OUTPUT);
pinMode(LED3_PIN,OUTPUT);
pinMode(sensor,INPUT);
pinMode(sensor_a,INPUT);
pinMode(sensor_b,INPUT);
Serial.begin(9600);
BTserial.begin(9600);
randomSeed(analogRead(0));
}void loop() {
int data=digitalRead(sensor);
int data_1=digitalRead(sensor_a);
int data_2=digitalRead(sensor_b);
randNumber=random(1,4);
Serial.println(data);
Serial.println(data_1);
Serial.println(data_2);
Serial.println(randNumber);
alloff();if(BTserial.available()){
Serial.println(BTserial.read());
}while(data==HIGH || data_1==HIGH || data_2==HIGH)
{
digitalWrite(LED1_PIN,LOW);
digitalWrite(LED2_PIN,LOW);
digitalWrite(LED3_PIN,LOW);
delay(5000);
break;
}
while(data==LOW || data_1==LOW || data_2==LOW)
{
switch(randNumber){
case 1:
digitalWrite(LED1_PIN,HIGH);
break;
case 2:
digitalWrite(LED2_PIN,HIGH);
break;
case 3:
digitalWrite(LED3_PIN,HIGH);
break;
}
break;
}
Serial.print("Count: ");
Serial.println(data);
BTserial.print("Count: ");
BTserial.println(data);
delay(5000);
}
디버깅 4시간째, 저는 LED를 랜덤으로 켜지게 하다가 외부에 충격이 들어오면 충격감지센서를 통해 LED가 꺼지고 5초 정도 있다가 다시 LED가 랜덤으로 켜지는 코드를 구현하려고 합니다.
그러나 충격감지센서가 만지지 않았는데 HIGH(충격 on)을 실행하고 있습니다.
시리얼 모니터를 통해 제 멋대로 HIGH(1)이 나오고 있음을 확인할 수 있습니다.
왜 그런지 코드를 살펴봐도 잘 모르겠고 충격감지센서가 문제가 있는지 싶어 구매한 5개의 충격센서를 번갈아 test를 진행해봣음에도 똑같은 현상이 나타납니다. 코드 보시고 뭐가 문제인지 한번 봐주시고 사진 첨부했으니 보고 답변 달아주시면 감사하겠습니다.
댓글 0
조회수 4,582등록된 댓글이 없습니다.