Long Duration Timer for Egg Incubator

I am a newbie to Arduino so please excuse my total ignorance.

I am constructing an egg incubator and now find that I need to control a timed function. This is my problem. Chicken eggs need to be turned a minimum of twice a day for 18 days then not turned for the last 3 days. The temperature must be controlled at 100deg F for the 21 day period. In addition, for the first 18 days the best circulated air humidity is 50 to 55 percent relative humidity then raised for last 3 days to 60 to 65 percent.

I will use a very low rpm motor, a stepping motor or servo to move the eggs in a turning tray. I already have a controlled temp air circulation system in place.

Can anyone suggest a preassembled board and set of instructions to control the egg turning. I would like to learn more about Arduino but most pressing issue is to get this incubator functioning.

I'd use a real-time clock. A very accurate one that isn't too expensive and is also preassembled is the Chronodot.

Also learn to use the Time library to interface to the RTC and to trigger on those times when something needs to be done like turning the eggs.

Are you asking for someone to write the code for you?

With your avr, you can easily program it to produce a clock good for that kind of timing.

It doesn't sounds as if the real time requirements are particularly tight here since they are basically to do something a couple of times a day for a few days - I think the Arduino's own timing would give you enough accuracy for what you need without the complexity of an external RTC.

You need to decide whether you need any feedback about what it's doing (how far through the program is it, what is the actual temperature - that sort of thing). If you can leave it attached to a PC then you could just print status messages on the serial port and do without any separate display.

It seems to me that the hardest requirements here are the mechanism to turn the egg (the solution to that will determine whether you need a servo or a stepper motor - they are both easy to use) and some method to read and control the humidity.

If this sequence can be predefined and just start when you power up the Arduino, you don't need any controls. But if you may need to reset the Arduino and resume the sequence then you would need some way to tell it where to resume the sequence from. Again, if you can afford to leave it attached to a PC you could do that by sending commands over the serial connection, otherwise you would need to give your Arduino a display and some buttons to tell it what to do. The software to drive the display and buttons is quite simple, but all adds to the complexity and if you're in a hurry you'd do well to avoid them.

An external, battery-backed RTC of some sort would be a good idea, though extreme accuracy isn't needed. The main reason is that if the power drops out for a couple minutes or someone trips over a power cord, the Arduino will lose track of whatever time has passed. 21 days is a long time to assume that something will have 100% reliable power, especially when so many lives are on the line XD

Yeah, a $9 RTC seems like a safe bet to me.

Chicken eggs need to be turned a minimum of twice a day for 18 days then not turned for the last 3 days.

You need a clock for this. Without it, if you have to reboot the processor for any reason, how does it know if it is the last 3 days or not?

It would be possible to use EEPROM to keep track of progress through the program. I don't see that the RTC solves anything really - you would still need to know when the program started in order to figure out where you were up to from the current time. If you need to have a persistent store to record when the sequence was supposed to start/end (and then have some way to program and display that) then you might just as well have the sketch store the time remaining when it was told to start and then count down as time elapsed. Given the low timing resolution needed it would only need to count down the number of hours remaining, so I don't see EEPROM life being an issue.

Good point, Peter. Clearly recording in EEPROM the date/time you started this batch would be essential. But without a RTC, if you lose power, you don't know how much time elapsed before it came back.

If you run the thing off a battery, and are certain you won't lose power, just counting up from the start point could be adequate. However it's not as if RTCs are expensive or hard to use.

That's true, and I was assuming that the duration of any outages was negligible compared to the accuracy required for the overall sequence. Granted that RTCs are well known things, but the OP is evidently an Arduino novice working against the clock, and I would have thought that any complexity that could be avoided should be.