Thinking Different




 

이번 시간에는 전란기를 제어하는 코드를 작성하도록 하겠습니다.

 

 

전란의 조건은 매 4시간마다 전란하며, 전란 시간은 30 ~ 40초 정도로 해주시면 됩니다.

 

 

 

 

전란틀 전란기 전란장치 병아리부화기 조류부화 자작부화기 만들기 재료 - 조류 부화용품 | 쿠팡

쿠팡에서 전란틀 전란기 전란장치 병아리부화기 조류부화 자작부화기 만들기 재료 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 조류 부화용품 제품도 바로 쿠팡에서 확인할 수 있습

www.coupang.com

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

 

 

코드를 보겠습니다.

 

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초 동안 전란기를 작동시켜주는 코드입니다.