Arduino + ENC28J60 Shield
Hace poco mas de un año que hice mi último post acá, bueno mas que nada por no encontrar algo que meresca uno (La red es muy grande, se encuentra de todo).
Ultimamente he estado jugando con Arduino, compré un Arduino Uno y un shield con ethernet para empezar a aprender, cuando llegaron a casa de su largo viaje desde Hong Kong me puse a investigar y como ya es típico el hola mundo con leds jaja
(Adelante el módulo con ENC28J60 y atras Arduino Uno)

Como mi conocimiento en Arduino era nulo cuando compré las placas, no tenía idea que el shield que compré con soporte ethernet era muy poco común y casi no tenia soporte de la comunidad así que mas ganas me dieron de aprender que tenía entre manos! Por suerte encontré una librería ya desarrollada para este módulo con soporte básico para TCP/DNS/DHCP entre otros lo que me aceleró el proceso de aprendizaje y de desarrollo obviamente.
Pero los problemas vinieron cuando traté de hacer funcionar el chip en cuestion (ENC28J60): No iniciaba. Eso, simplemente Arduino parecía no tener contacto con el módulo, y entre prueba y prueba funcionó asi que quede feliz, pero cuando reinicié al Arduino, dejó de funcionar nuevamente. Luego descubrí que a veces encendía el chip y a veces no, mayoritariamente no y pensé “Demonios, venía fallado” ya que no encontré nada con respecto a esto en internet.
Con intenciones de averiguar cual era el procedimiento que no funcionaba, me puse a depurar el código y descubrí que Arduino si se comunicaba con el chip y que si lo iniciaba, solo que este se iniciaba mal o despues dejaba de funcionar no tengo idea en realidad jaja, hasta que en un momento de lucidez me puse a mirar la placa del módulo y observé que este utilizaba dos pines del Arduino, uno iba conectado a la circuitería del ENC28J60 y otro a un slot de microsd que había olvidado que estaba ahi!
(A la izquierda Arduino Uno y a la derecha el módulo con ENC28J60, notese el lector de microSD)

El pin en cuestion es el 4 digital, así que en la función setup() del Arduino lo desactivé y paf! el ENC28J60 comenzó a funcionar sin problemas! Pero esto acarreaba un problema, me quedaría sin tarjeta sd D: así que en lugar de desactivarlo lo activé y el modulo ethernet funcionaba igualmente, así que finalmente probé estableciendo el pin 4 digital como OUTPUT (sin activarlo ni desactivarlo) y maravilla, tenia mi módulo con soporte ethernet y microsd!
(Modulo ethernet montado sobre Arduino Uno)

Para quien aun no sabe la solución, solo basta con añadir esta linea al principio de la función setup():
pinMode(4, OUTPUT);
Enjoy!
Aun no hay comentarios.