정보나눔

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

아두이노 우노 스위치센서 관련 소스질문입니다.
우당탕탕 | 2018-06-10

제가 만들려고 하는 작품은 LCD에 현재 온습도와 적정 습도를 표시하고 적정 습도를 50%로 기준으로 하여 스위치를 한번 누를때마다 습도 값이 10%씩 증가하고 100%이상이되면 다시 0%로 돌아가는 소스를 추가해야하는데요.. 여기 소스에서 무엇을  추가해야 하는지 아무리 추가해봐도 되질않네요..ㅜ 도움 좀 받을 수 있을까요?

 

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT11.h>

LiquidCrystal_I2C lcd(0x27,20,4); 
int button=2;
int buttonPushCnt = 6;
int buttonState = 0;
int lastButtonState = 0;
int relay = 7;
int state = LOW;
int pin=3;
DHT11 dht11(pin);
 
void setup()
{
  Serial.begin(9600);
  lcd.init();
  pinMode(button, INPUT);
  pinMode(relay, OUTPUT);
}

boolean debounce(boolean last, int BUT){
  boolean current = digitalRead(BUT);
  if(last!=current)
  {
    delay(5);
    current=digitalRead(BUT);
  }
  return current;
}
 
void loop()
{
  buttonState=debounce(lastButtonState, button);
  if(lastButtonState==0&&buttonState==1&&buttonPushCnt<=10) {buttonPushCnt++;}
  else if(buttonPushCnt>10){buttonPushCnt=0;}
 
  lastButtonState=buttonState;

  lcd.setCursor(1,2);
  lcd.print("Value: ");
  lcd.print(buttonPushCnt*10);
  lcd.print("  %");
  lcd.print("                    ");
 
  int err;
  float temp, humi;
 
   if((err=dht11.read(humi, temp))==0)
  {
      if (humi>(buttonPushCnt*10)) { state = LOW;}
      else {state = HIGH;}
     digitalWrite(relay, state);

    lcd.backlight();
    lcd.display();
    lcd.setCursor(1,0);
    lcd.print("TEMP: ");
    lcd.print(temp);
    lcd.print(" C");

    lcd.setCursor(1,1);
    lcd.print("HUMI: ");
    lcd.print(humi);
    lcd.print(" %");

    Serial.print(" temp: ");
    Serial.print(temp);
    Serial.print(" humi: ");
    Serial.print(humi);
    Serial.println();
   
   delay(5000);
  lcd.clear();
  }
  else
  {
    lcd.backlight();
    lcd.display();
    lcd.print("ERROR NO.: ");
    lcd.print(err);
  }
 
            
  }

이전글   |    산소포화도 센서와 블루투스 연결간 질문입니다.... 2018-06-10
다음글   |    아두이노 컴파일오류 2018-06-10