Go Down

Topic: arduino + shield W5100 travando (Read 8489 times) previous topic - next topic

jsalnet

Ok, eu acha que estavamos falando de mem. rom.

Coloquei o flush, ta em teste. Em relaçao ao resto da programaçao esta ok? (pois vc disse que o problema poderia ser a programaçao)

Em outro forum de indicaram os seguintes teste: (pode me disser se cabe fazer realmente algum desses teste)

- Outro arduino de outro lote;
- Incluir um capacitor maior na entrada da placa, por ex 470uF eletrolitico com 100nF ceramico em paralelo;
- Verificar com teste de continuidade se seu cabo esta bom. Ja vi cabo com 1 fio aberto comunicar mas provocar travamento do roteador depois de um tempo;
- Procurar por funçoes de watchdog, que resetariam automaticamente o hardware se ele travar;
- Trocar o hub. Se ele trava ja ta errado, nao poderia travar em nenhuma condiçao.

bubulindo

O condensador é a única que me parece realmente poder causar o que vês... o watchdog está desactivado de certeza.
This... is a hobby.

patrickcassaro

Galera estou com o seguinte problema:

O meu Ethernet Shield está travando e não sei o motivo, estou monitorando o Arduino através de rede local com o Zabbix.
Observe no gráfico do zabbix as falhas de conexão:




Se alguém puder ajudar, eu envio o código utilizado...Obrigado.

patrickcassaro

Galera estou com o seguinte problema:

O meu Ethernet Shield está travando e não sei o motivo, estou monitorando o Arduino através de rede local com o Zabbix.
Observe no gráfico do zabbix as falhas de conexão:




Se alguém puder ajudar, eu envio o código utilizado...Obrigado.
//Programa : Arduino Ethernet Shield W5100 e HC-SR04
//Alteracoes e adaptacoes : FILIPEFLOP
//
//Baseado no programa exemplo de
//by David A. Mellis e Tom Igoe

#include <SPI.h>
#include <Ethernet.h>
#define MAX_CMD_LENGTH 25

//Definicoes de IP, mascara de rede e gateway
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,25,64);          //Define o endereco IP
IPAddress gateway(192,168,25,1);     //Define o gateway
IPAddress subnet(255,255,255,0); //Define a máscara de rede

//Inicializa o servidor web na porta 10050
EthernetServer servidor(10051);
EthernetClient cliente;

String cmd; //Recebe o comando do zabbix
boolean conectado=false;
float contador=0;
float pinoPluviometro=13;
int pinoLed=7;


void setup()
{
 pinMode(13, INPUT);
 //Inicializa a interface de rede
 Ethernet.begin(mac, ip, gateway, subnet);
 
 servidor.begin();
 Serial.begin(9600);
 
}

void loop() {
 
 //Aguarda conexao do browser
 cliente = servidor.available();
 calcularChuva();
 if (cliente) {
   if(!conectado){
     cliente.flush();
     conectado=true;
     Serial.println("Conectado");
   }
   
   if(cliente.available()>0){
     recebeComando(cliente.read());
     
   }
 }
}

void calcularChuva(){
 if (digitalRead(pinoPluviometro)==HIGH) {
   Serial.println("Calculando chuva");
   if (digitalRead(pinoPluviometro)==LOW){
     contador += 0.28;
     delay(100);
     
   }
 }
}
     
void recebeComando(char c){
 if(cmd.length() == MAX_CMD_LENGTH) {
   cmd = "";
 }
 cmd += c;
 if(c == '\n') {
   if(cmd.length() > 2) {
     // remove \r and \n from the string
     Serial.println(cmd);
     cmd = cmd.substring(0,cmd.length() - 1);
     tratarComando();
     
   }
 }
}
     
void tratarComando(){
//  if(cmd.equals("agent.ping")){
//    servidor.println("1");
//    Serial.println("Ping: 1");
//    cliente.stop();
//  }      
//  else if(cmd.equals("version")){
//    servidor.println("1.1");
//    cliente.stop();
//  }
   if(cmd.equals("chuva")){
   Serial.println("String recebida !");
   float c = contador;
   //servidor.println(contador);
   servidor.println(c);
   Serial.println(c);
   Serial.println("mm");
   
   cliente.stop();
   delay(100);
 }
 else {
   servidor.println("ZBX_NOTSUPPORTED");
   cliente.stop();
   Serial.println("ZBX_NOTSUPPORTED");
   Serial.println(cmd);
 }
 cmd="";
}





Edson_Wind

Consegui resolver meu problema com o W5100 travando da seguinte forma, baixando a velocidade de comunicação ICSP entre o arduino e o W5100 mudei de 14MHz para 8MHz é so alterar o arquivo W5100.h #define SPI_ETHERNET_SETTINGS SPISettings(8000000, MSBFIRST, SPI_MODE0) dentro da biblioteca ETHERNET na IDE do arduino.

Go Up