Problema A. Duemilanove + Shield Ethernet (con SD)

Buenos días

Hace tiempo que me picaba meterme a investigar y aprender a hacer cosas en Arduino porque desde que salio siempre me ha parecido un proyecto bastante interesante.

Llevo aproximadamente un mes “Jugando” y hasta ahora no me he encontrado ningún problema serio que no pueda resolver, pero la verdad es que ahora estoy atascadísimo y acudo a vosotros a ver si alguno ha intentado hacer algo similar y me puede echar una mano.

Lo que intento hacer es registrar unas entradas y unas salidas (simuladas con unos pulsadores) y que todo el proceso quede logueado en la SD como ficheros “.csv” , a la vez que puedas visualizar esos logs desde un navegador Web.

Tengo todo prácticamente programado (ya que con los códigos de ejemplo no es demasiado difícil) queda darle forma. Pero me ha surgido un pequeño gran problema:

El log que me debería de ir guardando todos los eventos deja de loguear sin atender a ningún patrón ni de tiempo ni de tamaño del archivo, simplemente para y ya no va. En principio pensé que la placa se queda pillada en algún momento pero parece que me continua dejando navegar por los archivos de la SD (comprobado que no me sirva el navegador las paginas desde cache)

Los archivos quedan de la siguiente manera (ahora mismo simplemente escribo en ellos los segundos ya que en un principio pensé que podía ser algo relacionado con el reloj )
? LOGGER11.CSV 2268
? LOGGER12.CSV 585
? LOGGER13.CSV 90
? LOGGER14.CSV 2409
? LOGGER15.CSV 654
? LOGGER16.CSV 3355
? LOGGER17.CSV 447

He probado también ha desconectar todo de Arduino menos el reloj y el shield para ver si era algún extraño problema de consumo. Otra cosa que he notado bastante es que el el shield se calienta bastante pero por otra parte descarto que deje de funcionar por eso por continuar sirviéndome paginas.

Os dejo el código por si alguien me puede echar una mano o sugerir que es lo que puede estar fallando.

Como no me deja pegar todo el codigo en el post he subido el archivo pde a megaupload

http://www.megaupload.com/?d=R3K343F5

Hola buenos dias, oye se que estas desarrollando algo con una shield que usa ethenet y SD pero no comentas bien tu problemas o no das muchos detaller no sabes que tipo de shield estas usando porque se te calienta y todas esas cosas, hay que empezar a decartar y luego que se tenga ya claro cual es el verdadero problema ver de que manera se resuelve lo otro es que tu codigo no lo pude ver porque esta temporalmente supendido.

Saludos y cualquier cosa estoy seguire tus paso para ver en que se pude ayudar.
Atten.
Alexander Santana.
Venezuela-Barcelona.

Gracias por contestar tan rápido el shield ethernet que uso es el de Arduino:

el reloj es este:

En cuanto a las librerías que uso son
SD – sdfatlib - Google Code Archive - Long-term storage for Google Code Project Hosting.
Ethernet – La de Arduino
Reloj – Wire (Arduino)

Si tienes alguna duda más pregúntame por favor

ok en principio que colera que no pueda tener es shield para hacer mis practicas aca en mi pais todo el consumo electronico es muy escaso, en cuanto al reloj casualmente tengo el mismo y lo he usado con píc y me ha funcionado perfecto; ya seria cuestion te ver ahora si tu problema es codigo o hardware.

ahora siendo un poco curioso tu practica consistes en tener un reloj y segun la accion de unos pulsadores tomar ese tiempo en el cual fue pulsado y enviarlo via ethernet a un navegador. pero el fin cual seria hermano.

Saludos y disculpa mi inquietud.
Atten.
Alexander Santana.
Venezuela-Barcelona.

El objetivo es contar cuantos elementos entran y cuantos salen de un lugar especifico, y luego poder realizar unas graficas con los mismos

ok entiendo pero iagual me queda una duda el conteo lo haces con el reloj o con el mismo arduino y lo envias al navegador o en el navegador segun lo que le envies el lo cuenta no tengo claro eso.

Saludos.
Atten.
Alexander Santana.
Venezuela-Barcelona.

El recuento lo hago con Arduino, tengo dos pulsadores conectados a los pines digitales de arduino, el reloj como sabrás va conectado a los pines analógicos de arduino, y lo único para lo que lo uso es para obtener la hora y fecha para luego usarla en el log.

ok ahora si estoy mas claro grancias por tu informacion.

saludos.
Atten.
Alexander Santana.
Venezuela-Barcelona.

Nadie ha tenido problemas al intentar hacer algo parecido? yo continuo perdidisimo.

un saludo

Aquí viene lo más divertido, si acerco mi cara al shield ethernet y soplo, el log continua creciendo hasta que yo pare.. el archivo entonces puede llegar a tener unos pocos Mb.

Entonces yo pensé que claramente, sería un problema de calor, así que conseguí un ventilador grande soplando todo el tiempo, y el tamaño de los logs continuaban siendo menores que un Mb. (y la temperatura del W5100 era muy baja con este ventilador)

Es simplemente que la placa me está tomando el pelo?

he probado con la libreria Ethernet 2 y parece que el problema mejora algo, ahora tengo logs de unos 3 megas, siempre y cuando inicie el sistema y no le haga peticiones por http. Logro guardar logs más grandes, una de las cosas que andaba pensando es no escribir una entrada cada vez que se genera un nuevo evento, si no acumular unos cuantos en un buffer y guardarlos solo cada cierto tiempo o guardarlos cuando el buffer se llene, pero no se si eso puede afectar al rendimiento del programa en general.

Ya no se que hacer con el tema la verdad es que estoy bastante desesperado porque me tiene completamente parado.