Select Page

En las bibliotecas de Arduino ya encontramos una librería ethernet, el problema es que esta librería esta diseñada para operar con un módulo diferente, el WIZnet W5100, es el chip del Ethernet Shield; por lo que no es compatible, despues de probar varias opciones al fin encontre una que funcionó sin problemas y que se puede descargar desde la sig. liga:

http://www.open-electronics.org/wp-content/uploads/2012/06/EtherCard.zip

Esto es la libreria y programa que nos funciono a nosotros. Investigando un poco se pueden encontrar otras librerias y ejemplos de funcionamiento. Lo que no cambia es la conexion de los pines. Tambien podes adaptar los ejemplos para el uso particular que quieras darle. Como decimos en la mayoria de nuestros posts, con un poco de tiempo e investigacion el unico limite es la imaginacion!
Bueno empezaremos cableando el módulo ethernet al Arduino, para esto usamos el siguiente diagrama:

 

 

 

Cabe mencionar que la comunicacion entre el módulo ethernet y el arduino se lleva acabo utilizando un protocolo que se llama SPI o Serial Peripheral Interface
SPI es un protocolo serial sincrono que se utiliza para comunicar un microcontrolador con otro y con periféricos a distancias cortas.

Para hacer una conexion SPI siempre habrá un dispositivo maestro (usualmente un microcontrolador) que controlará uno o varios periféricos (esclavos), se utilizan por lo generar 3 lineas de conexión  y una de selección que son:

* SO o MISO (Master In Slave Out). La linea que utiliza el esclavo para enviar datos al maestro
* SI o MOSI (Master Out Slave In). Datos del maestro al esclavo.
* SCK (Serial clock). Pulsos de reloj para sincronizar la comunicación
* CS o Select. Se usa por el master para habilitar o deshabilitar un determinado periférico

Los microcontroladores atmel incluyen las 4 lineas para usar protocolo SPI las cuales obviamente están presentes en los pines del arduino, para el arduino uno se deben usar: Pin digital 10 para CS, Pin digital 11 para SI, Pin digital 12 para SO y Pin digital 13 para SCK, en el caso del arduino mega se usaría los sig. pines: 50 (MISO), 51 (MOSI), 52 (SCK), and 53 (CS).
La alimentación del módulo puede ser a 3.3 o 5V, yo usé ambos para las pruebas y no encontré ninguna diferencia así que lo deje puesto a 3.3V.

 

Ahora descargamos la libreria y cargamos el programa de ejemplo pingsStaticIP

 

 

En las variables myip y gwip colocamos primero la ip que querramos asignar al arduino (en mi caso 192.168.1.188) y después la ip de nuestra puerta de enlace o gateway,  en mi casa 192.168.1.1
Una vez hecho este pequeño cambio cargamos el sketch al arduino y abrimos el monitor serial.
Deberiamos ver algo como esto(pueden variar los valores de los numero segun region):

Lo que hace este programa es obtener via dns la direccion ip del dominio www.google.com y se queda enviándole pings, en el monitor vemos los tiempos de respuesta del servidor de google (Esta parte solo funcionará si estamos conectados a internet).


Si abrimos una ventana de comandos y hacemos ping a la dirección ip del arduino debemos ver una respuesta como la de abajo, en la pantalla del monitor serial tambíen podemos ver las solicitudes de ping enviadas por la pc y recibidas por el arduino.

 

Materiales Necesarios:

Datasheet.

Shematic.