[아두이노] 39. 병아리 부화기 및 육추기 겸용 만들기 (7) 전란기 소스 코드
임베디드/아두이노2024. 5. 28. 13:36
이번 시간에는 전란기를 제어하는 코드를 작성하도록 하겠습니다.
전란의 조건은 매 4시간마다 전란하며, 전란 시간은 30 ~ 40초 정도로 해주시면 됩니다.
코드를 보겠습니다.
Incubator_Main.ino
...
#define EGG_MOVER 10 // 전란기 (220v 릴레이)
...
...
extern unsigned long EggMoveTime;
...
void setup()
{
...
pinMode(EGG_MOVER, OUTPUT); // 전란기
...
}
void loop()
{
...
if(millis()-beforeTime>=1000)
{
nowTime++;
EggMoveTime++; // 전란 시간 카운터
beforeTime = millis();
...
// 전란기 가동
CheckEggMove();
...
}
}
메인 함수 내에 전란기에 관련된 코드를 추가합니다.
_eggRotate.ino
const int EGG_STEP_TIME = (60*60*4); // 전란 시간 간격 (4시간 마다)
unsigned long EggMoveTime = 0;
#define EGG_TIME 40 // 전란기 움직이는 시간 (초)
// 전란기 가동
void CheckEggMove()
{
// 4시간 체크 후 전란기 움직이는 시간동안 HIGH 하여 전란기 작동
if(EggMoveTime >= EGG_STEP_TIME && EggMoveTime <= EGG_STEP_TIME + EGG_TIME)
{
digitalWrite(EGG_MOVER, HIGH);
}
else
{
// 전란이 끝나면 LOW로 작동을 멈추고 전란 시간 카운터를 리셋함
digitalWrite(EGG_MOVER, LOW);
if(EggMoveTime >= EGG_STEP_TIME + EGG_TIME)
EggMoveTime = 0;
}
}
전란기 시간을 체크하고 4시간마다 40초 동안 전란기를 작동시켜주는 코드입니다.
'임베디드 > 아두이노' 카테고리의 다른 글
[아두이노] 41. 병아리 부화기 및 육추기 겸용 만들기 (9) 가습&팬 소스코드 (0) | 2024.05.30 |
---|---|
[아두이노] 40. 병아리 부화기 및 육추기 겸용 만들기 (8) 전구 HEAT 소스 코드 (0) | 2024.05.29 |
[아두이노] 38. 병아리 부화기 및 육추기 겸용 만들기 (6) 초기화 및 온습도 소스 코드 (0) | 2024.05.27 |
[아두이노] 37. 병아리 부화기 및 육추기 겸용 만들기 (5) 모듈 배치 회로도 (0) | 2024.05.26 |
[아두이노] 36. 병아리 부화기 및 육추기 겸용 만들기 (4) LCD & Nano (0) | 2024.05.23 |