시뮬레이션 프로그램으로 일단 70도 이상이 올라가면 빨간 led는 점등 되는것이 확인이 됩니다.
근데 빨간 led점등된 상태에서 기울기센서가 안기울때 부저가 울리지 않습니다.
혹시몰라서 if문을 이중으로 사용해서도 해보았지만 똑같이 부저가 울리지 않습니다.
부저가 문제가 있나싶어서 led조건없이 기울기 조건만 달고 부저를 작동하면 부저는 정상적으로 작동됩니다.
AND연산자는 한개써도 안되고 두개를 써도 안됩니다 ㅜㅜ
해결 방법좀 알려주세요 ㅠㅠ

int RED_LED = 12;
int GREEN_LED = 11;
int piezo = 10;
int del = 200;
float temsensor = 0;
float voltage = 0;
float celsius = 0;
void setup() {
pinMode(RED_LED, OUTPUT); // RED LED를 12핀으로 설정
pinMode(GREEN_LED, OUTPUT); // GREEN LED를 11핀으로 설정
pinMode(piezo, OUTPUT); // 피에조 부저 10번 핀 사용
Serial.begin(9600); // 통신속도 9600으로 설정
}
// setup() 함수가 호출된 이후, loop() 함수가 호출되며, 블록 안의 코드를 무한히 반복 실행
void loop() {
int tilt = digitalRead(A0); // 기울기 센서의 센서 값을 받아옴
temsensor = analogRead(A1); // 온도센서로 부터 온도 값을 받아옴
voltage = (temsensor * 5000.0) / 1024.0; // 입력 받은 자료 값을 섭씨 온도로 변환
celsius = (voltage - 500) / 10.0;
if(celsius>70)
{
digitalWrite(RED_LED,HIGH);
digitalWrite(GREEN_LED,LOW);
}
else{
digitalWrite(GREEN_LED,HIGH);
digitalWrite(RED_LED,LOW);
}
delay(500);
if (RED_LED == HIGH && tilt == HIGH) { // 빨간 led점등 and 기울기 센서가 기울이지 않을때
analogWrite(piezo, 128); // PWM 50% 적용
delay(del); // 0.4초 대기
analogWrite(piezo, 64); // PWM 25% 적용
delay(del); // 0.4초 대기
}
else {
analogWrite(piezo, 0);
delay(del);
}
}
|