Problemas con un Arduino Uno y un ENC28J60

Hola :slight_smile: buenos d铆as, recientemente compre un ENC28J60 y lo he estado probando con este tutorial Tutorial M贸dulo Ethernet ENC28J60 y Arduino. B谩sicamente es para encender y apagar un led y registrar los cambios en un potenci贸metro desde un navegador web, lo he estado conectando en el moden de mi casa, me carga bien la pagina pero el problema es que no me deja controlar el led ni registra los cambios en el potenci贸metro tiene alguna idea de porque y como lo puedo solucionar?

Porque necesitas refrezcar la p谩gina o usar algo que se llama Ajax que soluciona ese problema.
Te recomiendo que veas esta p谩gina y uses el tutorial para mejorar la actualizaci贸n.

Part 7: Reading a Switch using AJAX

tambi茅n mira este

Part 9: Reading an Analog Input and Switches using AJAX

surbyte:
Porque necesitas refrezcar la p谩gina o usar algo que se llama Ajax que soluciona ese problema.
Te recomiendo que veas esta p谩gina y uses el tutorial para mejorar la actualizaci贸n.

Ya he estado refrescando la pagina y aun as铆 no funciona, revisare eso de "Ajax" a ver si soluciona el problema, gracias

Si refrezcas y no funciona esta mal hecha.
Deja de hablar en el aire y postea tu c贸digo asi alguien puede aconsejarte.

surbyte:
Si refrezcas y no funciona esta mal hecha.
Deja de hablar en el aire y postea tu c贸digo asi alguien puede aconsejarte.

Ok lo har茅 aun que el c贸digo esta en el link del tutorial que deje arriba

#include <EtherCard.h>

static byte mymac[] = {0xDD,0xDD,0xDD,0x00,0x01,0x05};
static byte myip[] = {192,168,1,177};
byte Ethernet::buffer[700];

const int ledPin = 2;

char* EstadoLed="OFF";

void setup () {
 
  Serial.begin(9600);
  Serial.println("Test del Modulo  ENC28J60");
 
  if (!ether.begin(sizeof Ethernet::buffer, mymac, 10))
    Serial.println( "No se ha podido acceder a la controlador Ethernet");
 else
   Serial.println("Controlador Ethernet inicializado");
 
  if (!ether.staticSetup(myip))
    Serial.println("No se pudo establecer la direcci贸n IP");

  Serial.println();
  
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
}

static word homePage() {
  
 BufferFiller bfill = ether.tcpOffset();
 bfill.emit_p(PSTR("HTTP/1.0 200 OK\r\n"
      "Content-Type: text/htmlrnPragma: no-cachernRefresh: 5\r\n\r\n"
      "<html><head><title>Naylamp Mechatronics</title></head>"
      "<body>"
      "<div style='text-align:center;'>"
      "<h1>Test del M贸dulo  ENC28J60</h1>"      
      "Tiempo transcurrido : $L segundos"
      "

Estado del LED: $S
"      
      "<a href=\"/?status=ON\"><input type=\"button\" value=\"ON\"></a>"
      "<a href=\"/?status=OFF\"><input type=\"button\" value=\"OFF\"></a>"
      "

Potenci贸metro: $D (resoluci贸n de 1024)"
      "

"
      "<a href='http://www.naylampmechatronics.com/'>www.naylampmechatronics.com</a>"
      "</body></html>"      
      ),millis()/1000,EstadoLed,analogRead(0));
     
  return bfill.position();
}
  
void loop() {
 
  word len = ether.packetReceive();
  word pos = ether.packetLoop(len);
  
  if(pos) {
    
    if(strstr((char *)Ethernet::buffer + pos, "GET /?status=ON") != 0) {
      Serial.println("Comando ON recivido");
      digitalWrite(ledPin, HIGH);
      EstadoLed = "ON";
    }

    if(strstr((char *)Ethernet::buffer + pos, "GET /?status=OFF") != 0) {
      Serial.println("Comando OFF recivido");
      digitalWrite(ledPin, LOW);
       EstadoLed= "OFF";
    }        
    ether.httpServerReply(homePage()); // se envia p谩gina Web
  }
}

Hi,
Para ver si tienes comunicacion corristes el programa de ejemplo que te dice el IP address de la tarjeta y si se puedes cominicararte con el modulo del ethernet. Ajunto un link de una libreria que tiene un ejemplo de verificar si tines comunicaccion con la tarjeta. Tambien tiene varios ekjemplos de como usarla.

tauro0221:
Hi,
Para ver si tienes comunicacion corristes el programa de ejemplo que te dice el IP address de la tarjeta y si se puedes cominicararte con el modulo del ethernet. Ajunto un link de una libreria que tiene un ejemplo de verificar

Ok lo probare gracias :slight_smile: a como se llama el ejemplo para verificar la comunicaci贸n?

Hi,
Una vez que bajes el folder abrelo y selecciona el folder que tiene una listas de ejemplos y selecciona testDHCP.ino. Si se puede comunicar con tu tarjeta te va a dar el IP address de la tarjeta.

tauro0221:
Hi,
Una vez que bajes el folder abrelo y selecciona el folder que tiene una listas de ejemplos

Listo ya lo hice y me aparece que el "Setting up DHCP" "DHCP failed", entonces solo tendria que habilitar esa cosa del DHCP para que funcione ? o hay algo mas que le tanga que hacer

Hi,
Posiblemente el problema esta en el MAC "address" o el IP "address". Yo no tengo muy claro como se selecciona/asigna estos "addresses". El MAC address se supone que ya la tarjeta lo tenga assignado como el esp8266. Cuando la das el flash aparece que mac address tiene asignado. Segun las tutorias tu le asignas estas pero creo que no debe ser asi pues puede ser que tengas un module con la misma addresses. Yo no tengo uno a mano pero algunos de los miembors del forum que ya tiene uno funcionando puede ayudarte explicando como lo hicieron funcionar.

En general estos dispositivos no tienen un MAC Address y lo mejor es leer el MAC address del router de tu hogar y modificar los ultimos dos digitos Hexadecimales por otro valor.

Hi,
Surbyte gracias por aclarar lo de del mac. Eso quire decir que puedes usar el mismo procedimento para el address del IP. No

tauro0221:
Hi,
Surbyte gracias por aclarar lo de del mac. Eso quire decir que puedes usar el mismo procedimento para el address del IP. No

Ok entonces lo que tendria que hacer es ver la direcci贸n MAC de mi router, ponerla y modificar la ultima parte de esta linea del primer c贸digo que sub铆 (les dejo la linea a la que me refiero abajo) ?

static byte mymac[] = {0xDD,0xDD,0xDD,0x00,0x01,0x05};
static byte myip[] = {192,168,1,177};

Hi,
Cambiala y corre el test. Ahora no debes definir los adresses como mymac[6] y el del myIP[4] .

tauro0221:
Hi,
Cambiala y corre el test. Ahora no debes definir los adresses como mymac[6] y el del myIP[4] .

Ok entoces los cambio por algo asi?
static byte mymac[] = { 0x76,0x65,0x65,0x2D,0x32,0x30 };