BASIC4MCU | 질문게시판 | while 상태에서 피에조부저
페이지 정보
작성자 ALSLALSL2 작성일2021-06-02 05:03 조회8,899회 댓글5건본문
while 상태에서 피에조부저가 켰졌다가 꺼지게 할수있나요??
또한 PIR뿐만아니라 압력센서도 사용할 때
압력과 PIR이 둘다 없을 때 불빛이 깜박거리게 하고 둘중하나 라도 인지가 되면 작동을 안하게 바꿀수있을까요??
int counter;
int R = 12;
int G = 11;
int B = 10;
int piezoPin = 7;
void setup()
{
pinMode(R, OUTPUT);
pinMode(G, OUTPUT);
pinMode(B, OUTPUT);
pinMode(9,INPUT);
pinMode(7,INPUT);
}
void loop()
{
int readValue = digitalRead(9);
if(digitalRead(9) == HIGH){
digitalWrite(R, LOW);
digitalWrite(B, LOW);
digitalWrite(G, HIGH);
delay(5000);
for (counter = 0; counter<10; ++counter){
}
}
else{
noTone(piezoPin);
digitalWrite(R, HIGH);
delay(150);
digitalWrite(R, LOW);
digitalWrite(G, HIGH);
delay(150);
digitalWrite(G, LOW);
digitalWrite(B, HIGH);
delay(150);
digitalWrite(B, LOW);
digitalWrite(R, HIGH);
digitalWrite(G, HIGH);
delay(150);
digitalWrite(B, HIGH);
digitalWrite(R, HIGH);
digitalWrite(G, LOW);
delay(150);
digitalWrite(B, HIGH);
digitalWrite(R, LOW);
digitalWrite(G, HIGH);
delay(150);
digitalWrite(B, HIGH);
digitalWrite(R, HIGH);
digitalWrite(G, HIGH);
delay(150);
digitalWrite(B, LOW);
digitalWrite(R, LOW);
digitalWrite(G, LOW);
delay(150);
digitalWrite(R, HIGH);
delay(150);
digitalWrite(R, LOW);
digitalWrite(G, HIGH);
delay(150);
digitalWrite(G, LOW);
digitalWrite(B, HIGH);
delay(150);
digitalWrite(B, LOW);
digitalWrite(R, HIGH);
digitalWrite(G, HIGH);
delay(150);
digitalWrite(B, HIGH);
digitalWrite(R, HIGH);
digitalWrite(G, LOW);
delay(150);
digitalWrite(B, HIGH);
digitalWrite(R, LOW);
digitalWrite(G, HIGH);
delay(150);
digitalWrite(B, HIGH);
digitalWrite(R, HIGH);
digitalWrite(G, HIGH);
delay(150);
digitalWrite(B, LOW);
digitalWrite(R, LOW);
digitalWrite(G, LOW);
delay(150);
digitalWrite(R, HIGH);
delay(150);
digitalWrite(R, LOW);
digitalWrite(G, HIGH);
delay(150);
digitalWrite(G, LOW);
digitalWrite(B, HIGH);
delay(150);
digitalWrite(B, LOW);
digitalWrite(R, HIGH);
digitalWrite(G, HIGH);
delay(150);
digitalWrite(B, HIGH);
digitalWrite(R, HIGH);
digitalWrite(G, LOW);
delay(150);
digitalWrite(B, HIGH);
digitalWrite(R, LOW);
digitalWrite(G, HIGH);
delay(150);
digitalWrite(B, HIGH);
digitalWrite(R, HIGH);
digitalWrite(G, HIGH);
delay(150);
digitalWrite(B, LOW);
digitalWrite(R, LOW);
digitalWrite(G, LOW);
delay(150);
digitalWrite(R, HIGH);
delay(150);
digitalWrite(R, LOW);
digitalWrite(G, HIGH);
delay(150);
digitalWrite(G, LOW);
digitalWrite(B, HIGH);
delay(150);
digitalWrite(B, LOW);
digitalWrite(R, HIGH);
digitalWrite(G, HIGH);
delay(150);
digitalWrite(B, HIGH);
digitalWrite(R, HIGH);
digitalWrite(G, LOW);
delay(150);
digitalWrite(B, HIGH);
digitalWrite(R, LOW);
digitalWrite(G, HIGH);
delay(150);
digitalWrite(B, HIGH);
digitalWrite(R, HIGH);
digitalWrite(G, HIGH);
delay(150);
digitalWrite(B, LOW);
digitalWrite(R, LOW);
digitalWrite(G, LOW);
delay(150);
digitalWrite(R, HIGH);
delay(150);
digitalWrite(R, LOW);
digitalWrite(G, HIGH);
delay(150);
digitalWrite(G, LOW);
digitalWrite(B, HIGH);
delay(150);
digitalWrite(B, LOW);
digitalWrite(R, HIGH);
digitalWrite(G, HIGH);
delay(150);
digitalWrite(B, HIGH);
digitalWrite(R, HIGH);
digitalWrite(G, LOW);
delay(150);
digitalWrite(B, HIGH);
digitalWrite(R, LOW);
digitalWrite(G, HIGH);
delay(150);
digitalWrite(B, HIGH);
digitalWrite(R, HIGH);
digitalWrite(G, HIGH);
delay(150);
digitalWrite(B, LOW);
digitalWrite(R, LOW);
digitalWrite(G, LOW);
delay(150);
while(digitalRead(9) == LOW){
tone(piezoPin, 271, 500);
digitalWrite(B, LOW);
digitalWrite(R, LOW);
digitalWrite(G, LOW);
}
}
}
댓글 5
조회수 8,899master님의 댓글
master 작성일
int counter;
int R=12,G=11,B=10;
int piezoPin=7;
//
void setup(){
pinMode(R,OUTPUT); pinMode(G,OUTPUT); pinMode(B,OUTPUT);
pinMode(9,INPUT); pinMode(7,INPUT);
}
//
void loop(){
int PIR_Val=digitalRead(9);
int PRESS_Val=digitalRead(7);
if(PIR_Val){
digitalWrite(R,0); digitalWrite(B,0); digitalWrite(G,1); delay(5000);
for(counter=0;counter<10;++counter){}
}
else if(PRESS_Val){
digitalWrite(R,0); digitalWrite(B,1); digitalWrite(G,0); delay(5000);
for(counter=0;counter<10;++counter){}
}
else{ // digitalRead(9)==0 && digitalRead(7)==0
noTone(piezoPin);
digitalWrite(R,1); delay(150);
digitalWrite(R,0); digitalWrite(G,1); delay(150);
digitalWrite(G,0); digitalWrite(B,1); delay(150);
digitalWrite(B,0); digitalWrite(R,1); digitalWrite(G,1); delay(150);
digitalWrite(B,1); digitalWrite(R,1); digitalWrite(G,0); delay(150);
digitalWrite(B,1); digitalWrite(R,0); digitalWrite(G,1); delay(150);
digitalWrite(B,1); digitalWrite(R,1); digitalWrite(G,1); delay(150);
digitalWrite(B,0); digitalWrite(R,0); digitalWrite(G,0); delay(150);
digitalWrite(R,1); delay(150);
digitalWrite(R,0); digitalWrite(G,1); delay(150);
digitalWrite(G,0); digitalWrite(B,1); delay(150);
digitalWrite(B,0); digitalWrite(R,1); digitalWrite(G,1); delay(150);
digitalWrite(B,1); digitalWrite(R,1); digitalWrite(G,0); delay(150);
digitalWrite(B,1); digitalWrite(R,0); digitalWrite(G,1); delay(150);
digitalWrite(B,1); digitalWrite(R,1); digitalWrite(G,1); delay(150);
digitalWrite(B,0); digitalWrite(R,0); digitalWrite(G,0); delay(150);
digitalWrite(R,1); delay(150);
digitalWrite(R,0); digitalWrite(G,1); delay(150);
digitalWrite(G,0); digitalWrite(B,1); delay(150);
digitalWrite(B,0); digitalWrite(R,1); digitalWrite(G,1); delay(150);
digitalWrite(B,1); digitalWrite(R,1); digitalWrite(G,0); delay(150);
digitalWrite(B,1); digitalWrite(R,0); digitalWrite(G,1); delay(150);
digitalWrite(B,1); digitalWrite(R,1); digitalWrite(G,1); delay(150);
digitalWrite(B,0); digitalWrite(R,0); digitalWrite(G,0); delay(150);
digitalWrite(R,1); delay(150);
digitalWrite(R,0); digitalWrite(G,1); delay(150);
digitalWrite(G,0); digitalWrite(B,1); delay(150);
digitalWrite(B,0); digitalWrite(R,1); digitalWrite(G,1); delay(150);
digitalWrite(B,1); digitalWrite(R,1); digitalWrite(G,0); delay(150);
digitalWrite(B,1); digitalWrite(R,0); digitalWrite(G,1); delay(150);
digitalWrite(B,1); digitalWrite(R,1); digitalWrite(G,1); delay(150);
digitalWrite(B,0); digitalWrite(R,0); digitalWrite(G,0); delay(150);
digitalWrite(R,1); delay(150);
digitalWrite(R,0); digitalWrite(G,1); delay(150);
digitalWrite(G,0); digitalWrite(B,1); delay(150);
digitalWrite(B,0); digitalWrite(R,1); digitalWrite(G,1); delay(150);
digitalWrite(B,1); digitalWrite(R,1); digitalWrite(G,0); delay(150);
digitalWrite(B,1); digitalWrite(R,0); digitalWrite(G,1); delay(150);
digitalWrite(B,1); digitalWrite(R,1); digitalWrite(G,1); delay(150);
digitalWrite(B,0); digitalWrite(R,0); digitalWrite(G,0); delay(150);
digitalWrite(B,0); digitalWrite(R,0); digitalWrite(G,0);
while(digitalRead(9)==0){
tone(piezoPin,271,500); noTone(piezoPin); delay(500);
}
}
}
ALSLALSL2님의 댓글
ALSLALSL2 작성일깜박거리는 도중에 인체감지센서사 감지되면 멈췄다가 다시 시작하는 코딩을 추가하고싶은데 방법이 있을까요?
master님의 댓글
master
멈추는 것은 딜레이를 사용하면 됩니다.
ALSLALSL2님의 댓글
ALSLALSL2 작성일
압력센서 값이 계속 1이 떠았는 것은
혹시 뭐가 잘못 된것일까요??
master님의 댓글
master
압력센서 예제로 체크하세요