Problemas con la ejecución de varias tareas simultaneas

Hola a todos...

Les explico a groso modo de que se trata mi proyecto y los problemas q me han surgido.

La idea es tomar lecturas de un sensor de humedad y uno de temp, el dispositivo estara a la intemperie, por lo que lo debo alimentar con una bateria. Esas lecturas, las meto a una ecucacion dentro de la programacion y el resultado, mostrarlo en un display. Por aquello de la bateria, quiero que el consumo de potencia sea minimo, luego debo meterlo en sleep mode, pero quiero que me tome los datos 1 vez cada hora. Además, en el display necesito mostrar los valores y un aviso en palabras, pero no simultaneamente por cada 5 seg. cada uno.
Tengo problemas con los tiempos de la toma de los datos y lo que se muestra en el display, ademas no se como hacer, para que cada hora que necesite el dato, el arduino se encienda todo y realice las operaciones pertinentes.
También necesito almacenarlos en una memoria (circuito externo) y luego transmitirlos a un pc para hacer estadistica al oprimir un boton teniendo por puerto usb conectado el pc.
Las preguntas son, 1) como hago lo de los tiempos?, no puedo usar muchos delays, porq el programa q tengo es algo robusto o me equivoco?, 2) como se usa bien el sleep mode?, 3)como es la forma de usar el I2C?

Que pena si es mucho lo q necesito, pero es que soy principiante con este dispositivo y apesar de haber leido mucho en internet, aun hay cosas q no entiendo....

Muchas Gracias a todos

Si es que entendi bien tu problema. Los tiempos los podrías resolver utilizando la función "millis()" la cual te va a regresar en milisegundos el tiempo que la arduino lleva prendida, así podrás realizar el código con relación al tiempo que lleva prendido.

Y para el almacenamiento creo que seria una buena opción, utilizar una memoria SD generando un archivo de texto para que no te veas en la necesidad de conectar a tu pc y sea más eficiente por así decirlo. Solo necesitas un slot de SD y conectarlo conforme a este link y utilizar la libreria SD.
http://arduino.cc/playground/Learning/SDMMC

Si quieres que el consumo de energía sea mínimo, deberás plantearte el uso del display, ya que es, por mucho, la parte que más te va a consumir si pretendes cambiar/actualizar el mensaje cada 5 segundos, ya que no solo tienes el display encendido en todo momento (con o sin backlight) sino que fuerzas al micro a salir del modo de bajo consumo cada vez que quieres utilizarlo.

Para el almacenamiento de datos, la opción que te ha propuesto andres.tr de utilizar una SD externa es más optima (no requiere que lleves el equipo hasta un PC o al revés, no tienes problemas de espacio, y no te afecta si el equipo ha podido perder la alimentación en algún momento o directamente se han agotado las baterías).

Una vez que te decidas en el estos temas, es cuando te tienes que plantear si tienes que usar y cómo temporizadores/delays/modos de bajo consumo/...

En cuanto al uso del SPI, hay una librería incluida en el IDE del Arduino, wire.h, con sus correspondientes ejemplos, que tendrías que mirar y adaptar a los sensores que utilizas.