Hola a todos/as
Estoy desarrollando un sistema que cuenta con un arduino UNO, un ethernet shield y un modulo rele.
El arduino y el shield estan alimentados por una fuente de 9v 1amp y el modulo rele con una fuente de 5v 500ma.
El tema es el siguiente, estoy teniendo problemas con los parametros de red. Si le doy energia por el puerto USB a la placa, todo funciona de diez y la placa levanta los parametros de red bien y se puede comunicar sin problemas. Si en cambio lo alimento con la fuente de 9v que les decia, desconectando el cable usb, no carga los parametros de red excepto que aprete el boton de reinicio fisico, si apreto el boton, el equipo se reincia y levanta los parametros de red todo bien y permite comunicacion perfecta.
A alguien se le ocurre que esta pasando?
Los parametros de red se los doy antes del setup() como variables globales, y el servidor lo inicio en el setup.
por si sirve para que se entienda mejor dejo parte del codigo....
/* Main.ino file generated by New Project wizard
*
* Created: mar feb 28 2017
* Processor: ATmega328P
* Compiler: Arduino AVR
*/
#define rele1 2
#define rele2 3
#define rele3 5
#define rele4 6
#include <SPI.h>
#include <Ethernet.h>
#include <SD.h>
File Archivo;
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // mac address
byte ip[] = { 10, 0, 0, 35 }; // ip
byte gateway[] = { 10, 0, 0, 2 }; // IP de nuestro router
byte subnet[] = { 255, 255, 0, 0 }; //máscara de subred
byte address[4];
byte address_sub[4];
byte address_gt[4];
int port = 80;
EthernetServer server(port); //puerto de escucha
EthernetClient client;
String readString;
String estadoR1="Activado";
String estadoR2="Activado";
String estadoR3="Activado";
String estadoR4="Activado";
void setup()
{ // put your setup code here, to run once:
Serial.begin(9600);
SD.begin(4);
pinMode(rele1, OUTPUT);
pinMode(rele2, OUTPUT);
pinMode(rele3, OUTPUT);
pinMode(rele4, OUTPUT);
pinMode(10, OUTPUT);
if(SD.exists("ip.txt")){
Serial.println("Entro al if");
port = contArch("port.txt").toInt();
server = EthernetServer(port);
recortar((contArch("ip.txt")),ip);
recortar((contArch("subnet.txt")),subnet);
recortar((contArch("gw.txt")),gateway);
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
}else{
Serial.println("Entro al else");
EthernetServer server(port);
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
}
Intente agregar delays en distintas partes del codigo para ver si era una cuestino de tiempo en levantar los datos, pero no hubo caso.
Desde ya muchas gracias.