정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

아두이노로 온도센서 기울기센서 부저 led 제어 오류...
그롬 | 2018-09-30

시뮬레이션 프로그램으로 일단 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);
  }
}

이전글   |    아두이노 컴파일러는 이상이없어서 프로테우스로 돌려 볼려고 했는데 시뮬이 안되네요ㅠㅠ... 2018-09-30
다음글   |    아두이노 블루투스 연결에 질문이 있습니다!... 2018-10-01