Show Posts
Pages: 1 ... 4 5 [6] 7 8
76  International / Español / hacer shields del arduino con el PROTEUS on: March 28, 2011, 08:46:40 am
Aquí os dejo una muestra de lo que se puede hacer con el PROTEUS:
- simular programas (este no lo cuelgo, no es de mi creación)
- dibujar los esquemas
- hacer la placa
Hombre, hay que saber usar el programa, pero una vez se sabe es muy práctico
77  International / Español / Re: Sonda temperatura y humedad DHT11 on: March 26, 2011, 02:55:33 am
adjunto documento pdf datasheet. En el aparado 5 habla de la parte entera y la parte decimal.
Pero por otros sitios ya he leido que no usa la parte decimal.
¿recomiendas otra sonda de temperatura y humedad algo mejor que esta?
78  International / Español / Sonda temperatura y humedad DHT11 on: March 25, 2011, 02:43:54 pm
Buenos días a todo,
tengo un par de consultas respecto a la sonda de temperatura y humedad DHT11
1) en la documentación técnica habla de un registro de un byte para la parte entera y otro para la decimal, pero el de la parte decimal siempre está a cero. ¿tiene o no lectuda de decimales

2) la comunicación en con ceros y unos por un pin del componente, pero en los *.PDE que he encontrado siempre se conecta a un puerto analógico. ¿tiene alguna ventaja?

Un saludo y gracias a todos.
79  International / Español / Control de puertos con ENC28J60 Ethernet Shield (servidor domotico) on: February 14, 2011, 05:32:43 pm
Bueno, a partir de un ejemplo y pidiédole algo más, he conseguido con la ethernet shield de nucleonic hacer lo siguiente:
1) poner una contraseña en la página de entrada para que no pueda entrar cualquiera (para el ejemplo la contraseña es 1234 y si fallas no te deja probar hasta dentro de 20 segundos). Al menos si alguien quiere entrar desde internet se tiene que armar de paciencia
2) activar 6 salidas y visualizar su estado (on/off)
3) visualizar los valore de las 6 entradas analógicas
Con las limitaciones de tamaño dle buffer, bastante he hecho. Yo al menos me siento orgulloso.
Dejo el PDE y la librería con la que funciona.
Lo he probado a usar desde internet a través de un router y funcionó (pena que la IP externa no siempre sea la misma).
Un saludo.
80  International / Software / Re: Multi tarea en arduino on: February 11, 2011, 04:52:46 pm
con un único procesador se puede hacer trabajar en multitarea. Como dicer IGOR lo que tiene que hacer el soft es repartir el procesador entre todo lo que quieres hacer. Se puede hacer con interrupciones, con prioridades,... o como quieras. Por supuesto, cuanto más cosas hagas al "mismo" tiempo, más lento irá todo.
81  International / Software / Re: Control domotico con servidor integrado en el arduino on: February 11, 2011, 04:47:52 pm
Yo acabo de conectar el arduino haciendo un bus RS485 con el integrado MAX485 (2,5€).
el el PC uso un coversor RS232-RS485.
He usado varias aplicaciones para monitorizar los puertos. Tambíen he conseguido comunicar el arduino con un software comercial de medición de consumos de energía de Circutor (Power Studio). Esta parte es la que más tiempo me ha llevado, porque aunque funcionaba el bus, no comunicaban. El problema es el Power Studio solo usaba la función 4 para leer el Arduino y esa función no estaba implementada. En el PDE cambié la función 3 por 4 y todo ha ido muy bien.
La ventaja del Modbus es que con 2 hilos sin muchas historias puede comunicar equipos a mucha distancia. En donde trabajo tengo equipos Circutor a distancias de 400m en un ambiente industrial sin problema.
82  International / Software / Re: Control domotio con servidor integrado en el arduino on: February 11, 2011, 01:45:34 pm
te dejo la misma versión del PDE pero modificada para que quede algo más clara:
- no le paso argumentos a la función print_webpage (son variable globales) así si modificas algo en el programa no tienes que estar cambiando la función.
- he quitado algún switch a cambio de ver variables analógicas
- le buffer lo he subido a 1600 (más de daba problemas)
- he puesto un debugger para ver si me paso o no en el tamaño del buffer

Me queda pendiente saber algo más de HTML. Si la página se hace más simple, se podrían ver más cosas.
En mi opinión es el mayor limitante

Estoy viendo otras liberías que haces más amigable programar la ethershield, pero cada una tiene sus "pijadas" y no hay tiempo para todo.
83  International / Software / Re: Pantalla standard Hitachi HD44780 on: January 31, 2011, 04:34:49 pm
a mí si me pasa de vez en cuando. En mi opinión es por un mal contacto en alguno de los cables.
Cuando pasa es necesario hacer 2 cosas: o reiniciar el arduino o de vez en cuando lanzar la instrucción  lcd.begin(16, 2);
Con ello se soluciona. lo malo es que se aprecia un parpadeo en la pantalla.
84  International / Software / Re: Sensor de Luz (LDR) on: January 29, 2011, 06:29:09 pm
aqui te dejo las funciones para manejar la eprom con INT.
Code:
void borra_EEPROM(){
  for (int i = 0; i < 512; i++)
    EEPROM.write(i, 0);
}

void Escribe_EEPROM(int Direccion, byte Dato){
  EEPROM.write(Direccion, Dato);
  Direccion = Direccion + 1;
  if (Direccion == 512) Direccion = 0;
  delay(100);
}

byte Lee_EEPROM(int Direccion){
  byte value = EEPROM.read(Direccion);
  delay(100);
  Direccion = Direccion + 1;
  if (Direccion == 512) Direccion = 0;
  return value;
}
/////////////////////////////////////////////////////////////////////////
     
int eeprom_read_int(int eeaddress ) {
   int rdata;
   rdata = rdata | Lee_EEPROM(eeaddress);
   rdata = rdata | Lee_EEPROM(eeaddress+1)<<8;
   return rdata; } 
   
void eeprom_write_int(int eeaddress, int data ) {
  Escribe_EEPROM(eeaddress, (data & 0xFF)) ; // parte baja un INT tiene una longitud de 2 bytes
  Escribe_EEPROM(eeaddress+1,((data >> 8) & 0xFF)); // parte alta
   }
espero que te ayude.
85  International / Software / Re: noTone on: January 29, 2011, 06:24:34 pm
ojo con las mayúsculas:
no es lo mismo
    noTOne(speaker);
    noTone(speaker);
a ver si el fallo es ese.
86  Forum 2005-2010 (read only) / Español / Re: ethernet enc28j60 tutorial on: January 20, 2011, 05:47:29 pm
para que funcione tienes que meter las librerías adecuadas. esta tarjeta no funciona con las shield standard. bájalas de nucleonics.
yo al menos fue el fallo que tuve al principio.
87  Forum 2005-2010 (read only) / Español / Re: Servidor domotico con ethernet shield on: September 22, 2010, 04:25:26 pm
para pasar más letras cambia por ejemplo:
if (*strbuf < 0x4f && *strbuf > 0x40){  
a esto:
if (*strbuf < 0x58 && *strbuf > 0x40){
con esto tienes hasta la "V")
¿hasta cuanto puedes crecer el buffer? ¿por qué es tan crítico?
88  Forum 2005-2010 (read only) / Español / Re: Servidor domotico con ethernet shield on: September 22, 2010, 03:49:30 am
codigo 2/2
Code:
  // The returned value is stored in the global var strbuf
    uint8_t find_key_val(char *str,char *key)
    {
            uint8_t found=0;
            uint8_t i=0;
            char *kp;
            kp=key;
            while(*str &&  *str!=' ' && found==0){
                    if (*str == *kp){
                            kp++;
                            if (*kp == '\0'){
                                    str++;
                                    kp=key;
                                    if (*str == '='){ found=1;}
                            }
                    }else{kp=key;}
                    str++;
            }
            if (found==1){
                    // copy the value to a buffer and terminate it with '\0'
                    while(*str &&  *str!=' ' && *str!='&' && i<STR_BUFFER_SIZE){
                            strbuf[i]=*str;
                            i++;
                            str++;}
                    strbuf[i]='\0';
            }
            return(found);
}


int8_t analyse_cmd(char *str)
{      int8_t r=-1;
         if (find_key_val(str,"cmd")){
                if (*strbuf < 0x4f && *strbuf > 0x40){   //PACO antes era:   if (*strbuf < 0x3a && *strbuf > 0x2f) ahora permito de la 'A' a la 'N'
                        // is a ASCII number, return it
                        r=*strbuf;               // PACO antes era:   r=(*strbuf-0x30);  ahora esto 40 A->0 ; B -> 1 ; ....
                }
        }
        return r;
}


uint16_t print_webpage(uint8_t *buf, byte on_off1, byte on_off2, byte on_off3, byte on_off4, byte on_off5, byte on_off6)
{       int i=0;
        uint16_t plen;
        plen=es.ES_fill_tcp_data_p(buf,0,PSTR("HTTP/1.0 200 OK\r\nContent-Type: text/html\r\n\r\n"));
        plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<FONT FACE=\"arial\"><center><p><A HREF=\"/\"><b>SERVIDOR DOMOTICO</b></A></p>"));
        plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<table bgcolor=\"#f7f7f7\"><tr><td align=center>"));
 switch (on_off1) {
          case 1:
               plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("Out 1: <font color=\"#00FF00\">On</font><br>"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<form METHOD=get action=\""));
              plen=es.ES_fill_tcp_data(buf,plen,baseurl);
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("\">"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<input type=hidden name=cmd value=B>")); // B apaga; A enciende
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<input type=submit value=\"Switch off\"></form>"));
                break;
          case 0:
               plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("Out 1: <font color=\"#CC0000\">Off</font><br>"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<form METHOD=get action=\""));
              plen=es.ES_fill_tcp_data(buf,plen,baseurl);
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("\">"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<input type=hidden name=cmd value=A>"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<input type=submit value=\"Switch on\"></form>"));
                break;
          }
        plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("</td><td align=center>"));
 switch (on_off2) {
          case 1:
               plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("Out 2: <font color=\"#00FF00\">On</font><br>"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<form METHOD=get action=\""));
              plen=es.ES_fill_tcp_data(buf,plen,baseurl);
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("\">"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<input type=hidden name=cmd value=D>"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<input type=submit value=\"Switch off\"></form>"));
                break;
          case 0:
               plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("Out 2: <font color=\"#CC0000\">Off</font><br>"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<form METHOD=get action=\""));
              plen=es.ES_fill_tcp_data(buf,plen,baseurl);
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("\">"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<input type=hidden name=cmd value=C>"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<input type=submit value=\"Switch on\"></form>"));
                break;
          }
        plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("</td></tr><tr><td align=center>"));
 switch (on_off3) {
          case 1:
               plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("Out 3: <font color=\"#00FF00\">On</font><br>"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<form METHOD=get action=\""));
              plen=es.ES_fill_tcp_data(buf,plen,baseurl);
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("\">"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<input type=hidden name=cmd value=F>"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<input type=submit value=\"Switch off\"></form>"));
                break;
          case 0:
               plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("Out 3: <font color=\"#CC0000\">Off</font><br>"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<form METHOD=get action=\""));
              plen=es.ES_fill_tcp_data(buf,plen,baseurl);
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("\">"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<input type=hidden name=cmd value=E>"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<input type=submit value=\"Switch on\"></form>"));
                break;
          }
        plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("</td><td align=center>"));
 switch (on_off4) {
          case 1:
               plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("Out 4: <font color=\"#00FF00\">On</font><br>"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<form METHOD=get action=\""));
              plen=es.ES_fill_tcp_data(buf,plen,baseurl);
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("\">"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<input type=hidden name=cmd value=H>"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<input type=submit value=\"Switch off\"></form>"));
                break;
          case 0:
               plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("Out 4: <font color=\"#CC0000\">Off</font><br>"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<form METHOD=get action=\""));
              plen=es.ES_fill_tcp_data(buf,plen,baseurl);
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("\">"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<input type=hidden name=cmd value=G>"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<input type=submit value=\"Switch on\"></form>"));
                break;
          }
        plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("</td></tr><tr><td align=center>"));
 switch (on_off5) {
          case 1:
               plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("Out 5: <font color=\"#00FF00\">On</font><br>"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<form METHOD=get action=\""));
              plen=es.ES_fill_tcp_data(buf,plen,baseurl);
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("\">"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<input type=hidden name=cmd value=J>"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<input type=submit value=\"Switch off\"></form>"));
                break;
          case 0:
               plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("Out 5: <font color=\"#CC0000\">Off</font><br>"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<form METHOD=get action=\""));
              plen=es.ES_fill_tcp_data(buf,plen,baseurl);
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("\">"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<input type=hidden name=cmd value=I>"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<input type=submit value=\"Switch on\"></form>"));
                break;
          }
        plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("</td><td align=center>"));
 switch (on_off6) {
          case 1:
               plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("Out 6: <font color=\"#00FF00\">On</font><br>"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<form METHOD=get action=\""));
              plen=es.ES_fill_tcp_data(buf,plen,baseurl);
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("\">"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<input type=hidden name=cmd value=L>"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<input type=submit value=\"Switch off\"></form>"));
                break;
          case 0:
               plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("Out 6: <font color=\"#CC0000\">Off</font><br>"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<form METHOD=get action=\""));
              plen=es.ES_fill_tcp_data(buf,plen,baseurl);
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("\">"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<input type=hidden name=cmd value=K>"));
              plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<input type=submit value=\"Switch on\"></form>"));
                break;
          }
        plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("</td></tr></table></center><hr>Ethernet Shield Arduino 1.0"));

        return(plen);
}
89  Forum 2005-2010 (read only) / Español / Re: Servidor domotico con ethernet shield on: September 22, 2010, 03:48:32 am
Adjunco codigo Dricote modificado para que funcionen los 6 botones
¿alquien me dice como pasar también valores analógicos del arduino a la página web y viceversa.
codigo 1/2
Code:
#include "etherShield.h"

static uint8_t mymac[6] = {0x54,0x55,0x58,0x10,0x00,0x24};
static uint8_t myip[4] = {192,168,2,205};
static char baseurl[]="http://192.168.2.205/";
static uint16_t mywwwport =80; // listen port for tcp/www (max range 1-254)

// Relay status. Start Off.
byte on_off1;
byte on_off2;
byte on_off3;
byte on_off4;
byte on_off5;
byte on_off6;

#define BUFFER_SIZE 1500
static uint8_t buf[BUFFER_SIZE+1];
#define STR_BUFFER_SIZE 22
static char strbuf[STR_BUFFER_SIZE+1];

EtherShield es=EtherShield();

// prepare the webpage by writing the data to the tcp send buffer
uint16_t print_webpage(uint8_t *buf, byte on_off1, byte on_off2, byte on_off3, byte on_off4, byte on_off5, byte on_off6);
int8_t analyse_cmd(char *str);

// 6 relays connected to output
#define SW1  2
#define SW2  3
#define SW3  4
#define SW4  5
#define SW5  6
#define SW6  7

void setup(){
Serial.begin(9600); //PACO para depurar el programa
  /*initialize enc28j60*/
   es.ES_enc28j60Init(mymac);
   es.ES_enc28j60clkout(2);
   delay(10);
        es.ES_enc28j60PhyWrite(PHLCON,0x880);
      delay(250);
      es.ES_enc28j60PhyWrite(PHLCON,0x990);
      delay(250);
      es.ES_enc28j60PhyWrite(PHLCON,0x880);
      delay(250);
      es.ES_enc28j60PhyWrite(PHLCON,0x990);
      delay(250);
        delay(100);
  //init the ethernet/ip layer:
  es.ES_init_ip_arp_udp_tcp(mymac,myip,mywwwport);
  // Init outputs
       pinMode(SW1, OUTPUT);
       digitalWrite(SW1, LOW);  // switch off LED
       pinMode(SW2, OUTPUT);
       digitalWrite(SW2, LOW);  // switch off LED
        pinMode(SW3, OUTPUT);
       digitalWrite(SW3, LOW);  // switch off LED
        pinMode(SW4, OUTPUT);
       digitalWrite(SW4, LOW);  // switch off LED
        pinMode(SW5, OUTPUT);
       digitalWrite(SW5, LOW);  // switch off LED
        pinMode(SW6, OUTPUT);
       digitalWrite(SW6, LOW);  // switch off LED
}

void loop(){
  uint16_t plen, dat_p;
  int8_t cmd;

// Ethernet Mode
  plen = es.ES_enc28j60PacketReceive(BUFFER_SIZE, buf);

  if(plen!=0){  /*plen will ne unequal to zero if there is a valid packet (without crc error) */
              // arp is broadcast if unknown but a host may also verify the mac address by sending it to a unicast address.
            if(es.ES_eth_type_is_arp_and_my_ip(buf,plen)){
              es.ES_make_arp_answer_from_request(buf);
              return;    }
            // check if ip packets are for us:
            if(es.ES_eth_type_is_ip_and_my_ip(buf,plen)==0){return;}
            if(buf[IP_PROTO_P]==IP_PROTO_ICMP_V && buf[ICMP_TYPE_P]==ICMP_TYPE_ECHOREQUEST_V){
                    es.ES_make_echo_reply_from_request(buf,plen);
                    return;    }
            
            // tcp port www start, compare only the lower byte
      if (buf[IP_PROTO_P]==IP_PROTO_TCP_V&&buf[TCP_DST_PORT_H_P]==0&&buf[TCP_DST_PORT_L_P]==mywwwport){
             if (buf[TCP_FLAGS_P] & TCP_FLAGS_SYN_V){
                     es.ES_make_tcp_synack_from_syn(buf); // make_tcp_synack_from_syn does already send the syn,ack
                     return;}
             if (buf[TCP_FLAGS_P] & TCP_FLAGS_ACK_V){
                    es.ES_init_len_info(buf); // init some data structures
                    dat_p=es.ES_get_tcp_data_pointer();
                    if (dat_p==0){ // we can possibly have no data, just ack:
                            if (buf[TCP_FLAGS_P] & TCP_FLAGS_FIN_V){es.ES_make_tcp_ack_from_any(buf);}
                            return;}
                    if (strncmp("GET ",(char *)&(buf[dat_p]),4)!=0){
                            // head, post and other methods for possible status codes see: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
                            plen=es.ES_fill_tcp_data_p(buf,0,PSTR("HTTP/1.0 200 OK\r\nContent-Type: text/html\r\n\r\n<h1>200 OK</h1>"));
                            goto SENDTCP;}
                    // If "get /" without parameters
                       if (strncmp("/ ",(char *)&(buf[dat_p+4]),2)==0){
                            plen=print_webpage(buf, on_off1, on_off2, on_off3, on_off4, on_off5, on_off6);
                            goto SENDTCP;}
                    cmd=analyse_cmd((char *)&(buf[dat_p+5]));
                    
                    // Process commands
                    switch (cmd) {
                    case 'A':      //PACO: cambio los números por letras
                            on_off1=1;
                              digitalWrite(SW1, HIGH);  // switch on LED1
                            break;
                    case 'B':
                            on_off1=0;
                                 digitalWrite(SW1, LOW);  // switch off LED1
                            break;
                    case 'C':
                            on_off2=1;
                              digitalWrite(SW2, HIGH);  // switch on LED2
                            break;
                    case 'D':
                            on_off2=0;
                              digitalWrite(SW2, LOW);  // switch off LED2
                            break;
                    case 'E':
                            on_off3=1;
                              digitalWrite(SW3, HIGH);  // switch on LED3
                            break;
                    case 'F':
                            on_off3=0;
                              digitalWrite(SW3, LOW);  // switch off LED3
                            break;
                    case 'G':
                            on_off4=1;
                              digitalWrite(SW4, HIGH);  // switch on LED4
                            break;
                    case 'H':
                            on_off4=0;
                              digitalWrite(SW4, LOW);  // switch off LED4
                            break;
                    case 'I':
                            on_off5=1;
                              digitalWrite(SW5, HIGH);  // switch on LED5
                            break;
                    case 'J':
                            on_off5=0;
                              digitalWrite(SW5, LOW);  // switch off LED5
                            break;
                    case 'K':
                            on_off6=1;
                              digitalWrite(SW6, HIGH);  // switch on LED6
                            break;
                    case 'L':
                            on_off6=0;
                              digitalWrite(SW6, LOW);  // switch off LED6
                            break;                
                        }
                    plen=print_webpage(buf, on_off1, on_off2, on_off3, on_off4, on_off5, on_off6);
                    
          SENDTCP:  es.ES_make_tcp_ack_from_any(buf); // send ack for http get
                    es.ES_make_tcp_ack_with_data(buf,plen); // send data      
    } } } }
90  Forum 2005-2010 (read only) / Español / Re: Servidor domotico con ethernet shield on: September 15, 2010, 03:03:07 am
buscando por internet he encontrado varias librecerías modificadas para funcionar con la tarjeta basada en el enc28j60.
En algunas de ellas la programación es similar a la tarjeta standar.
Lo malo es que siempre hay alguna instrucción no compatible entre unas librerías y otras y los ejemplos que funcionan con una librería hay que depurarlos para que funcionen con otra y en este punto me pierdo.
El problema es que la mayoría modifica la librería y se sigue llamando "etherShield" por lo que no puedes tenerlas simultáneamente en la ruta de búsqueda.
Por ejemplo en OpenEnergyMonitor hay ejemplos.


Pages: 1 ... 4 5 [6] 7 8