임베디드/아두이노
[아두이노] 41. 병아리 부화기 및 육추기 겸용 만들기 (9) 가습&팬 소스코드
copynull
2024. 5. 30. 11:37
부화기에 필요한 습도를 공급하기 위해서는 물을 사발에 떠 놓아도 되지만 자동으로 컨트롤 되는 가습기 모듈을 사용하여 제어할 수 있습니다.
다음은 소스 코드입니다.
Incubator_Main.ino
...
#define HUMIDITIER 7 // 가습기
...
void setup()
{
...
pinMode(HUMIDITIER, OUTPUT); // 가습기 ON OFF
...
}
void loop()
{
if(millis()-beforeTime>=1000)
{
...
// 습도 체크 및 가습기 팬 가동
Check_Humidity();
...
}
...
}
_fan_humi.ino
// 습도 체크 및 가습기, FAN 가동 여부
void Check_Humidity()
{
if(mode == 0) // 부화기모드
{
if(day >=0 && day <= 17) // 18일까지 65% +- 5%
{
if(humidity <= 60)
{
digitalWrite(HUMIDITIER, HIGH);
}
else if(humidity >= 65)
{
digitalWrite(HUMIDITIER, LOW);
}
}
else if(day > 17 && day <= 20) // 19 ~ 21일 75% +- %
{
if(humidity <= 70)
{
digitalWrite(HUMIDITIER, HIGH);
}
else if(humidity >= 75)
{
digitalWrite(HUMIDITIER, LOW);
}
}
else
{
digitalWrite(HUMIDITIER, LOW);
}
}
else // 육추기 모드
{
if(day >=0 && day <= 9) // 10일까지 60%
{
if(humidity <= 55)
{
digitalWrite(FAN, LOW);
digitalWrite(HUMIDITIER, HIGH);
}
else if(humidity >= 60)
{
digitalWrite(FAN, HIGH);
digitalWrite(HUMIDITIER, LOW);
}
}
else if(day >= 10)
{
if(humidity <= 45)
{
digitalWrite(FAN, LOW);
digitalWrite(HUMIDITIER, HIGH);
}
else if(humidity >= 50)
{
digitalWrite(FAN, HIGH);
digitalWrite(HUMIDITIER, LOW);
}
}
}
}