Preciso de ajuda o arduino esta resetando sozinho não sei se é no código mais se for e se alguém poder me ajudar o código é esse:

/*
HelloWorld.ino - Sample Code consuming Library for Ethernet ENC29J60 Module.
Prints Html page with one button for activating Arduino ports
Created by Renato Aloi, August, 2013.
Released into the public domain.
*/

#include <EtherEncLib.h>

int PinoLed1 = 9;
int PinoLed2 = 8;
int PinoLed3 = 7;
int PinoLed4 = 6;
int PinoLed5 = 5;

EtherEncLib lib(80);

static unsigned char ipaddr[] = { 192, 168, 0, 125 };
static unsigned char macaddr[] = { 0x54, 0x55, 0x58, 0x10, 0x00, 0x25 };

void setup()
{
Serial.begin(115200);

lib.begin(ipaddr, macaddr);

pinMode(PinoLed1, OUTPUT);
pinMode(PinoLed2, OUTPUT);
pinMode(PinoLed3, OUTPUT);
pinMode(PinoLed4, OUTPUT);
pinMode(PinoLed5, OUTPUT);
digitalWrite(PinoLed1, HIGH);
digitalWrite(PinoLed2, HIGH);
digitalWrite(PinoLed3, HIGH);
digitalWrite(PinoLed4, HIGH);
digitalWrite(PinoLed5, HIGH);

Serial.println("EtherEncLib.h started!");
}

void loop()
{

if (lib.available())
{

char *params = lib.getParams();

Serial.print("Params: ");
Serial.println(params);

lib.print("<HTML>");
lib.print("<HEAD><TITLE>Automacao Wellington</TITLE></HEAD>");
lib.print("<BODY>");

lib.print("<h3>Pronto para uso!</h3>");


// LED1 ACENDE
if (strcmp(params, "?led=cozinhaon") == 0){
digitalWrite(PinoLed1, LOW);

}
// LED2 ACENDE
else if(strcmp(params, "?led=areaon") == 0){
digitalWrite(PinoLed2, LOW);

}
// LED3 ACENDE
else if(strcmp(params, "?led=quartoon") == 0){
digitalWrite(PinoLed3, LOW);

}
// LED4 ACENDE
else if(strcmp(params, "?led=banheiroon") == 0){
digitalWrite(PinoLed4, LOW);

}
// LED5 ACENDE
else if(strcmp(params, "?led=vetiladoron") == 0){
digitalWrite(PinoLed5, LOW);

}
// APAGAR TODOS OS LEDS
else if(strcmp(params, "?led=todosoff") == 0){
digitalWrite(PinoLed1, HIGH);
delay(1000);
digitalWrite(PinoLed2, HIGH);
delay(1000);
digitalWrite(PinoLed3, HIGH);
delay(1000);
digitalWrite(PinoLed4, HIGH);
delay(1000);
digitalWrite(PinoLed5, HIGH);


}
// ACENDER TODOS OS LEDS
else if(strcmp(params, "?led=todoson") == 0){
digitalWrite(PinoLed1, LOW);
delay(1000);
digitalWrite(PinoLed2, LOW);
delay(1000);
digitalWrite(PinoLed3, LOW);
delay(1000);
digitalWrite(PinoLed4, LOW);
delay(1000);
digitalWrite(PinoLed5, LOW);



}
// APAGAR LED1
else if(strcmp(params, "?led=cozinhaoff") == 0){
digitalWrite(PinoLed1, HIGH);
}
// APAGAR LED2
else if(strcmp(params, "?led=areaoff") == 0){
digitalWrite(PinoLed2, HIGH);
}
// APAGAR LED3
else if(strcmp(params, "?led=quartooff") == 0){
digitalWrite(PinoLed3, HIGH);
}
// APAGAR LED4
else if(strcmp(params, "?led=banheirooff") == 0){
digitalWrite(PinoLed4, HIGH);
}
// APAGAR LED5
else if(strcmp(params, "?led=ventiladoroff") == 0){
digitalWrite(PinoLed5, HIGH);
}

lib.print("</BODY>");
lib.print("</HTML>");

lib.close();
}
}

Estou usando enc28j60 e aduino uno 

Exibições: 1207

Responder esta

Respostas a este tópico

esta usando rele? qual eh a sua fonte? isso acontece no usb tb?

Willian, boa noite. Já conseguiu a resposta ? Alguma dica ? eu montei um projeto de termometro com display 5110 que ficava resentando na porta USB (José vc referiu a porta ?aconteceu comigo) porque ? corrente não pode ter sido ? Fiquei na dúvida.

Abçs

Ainda não resolvi mais acho que já descobri o problema ! meu modulo rele é de 8 canais de 5v e esta sendo alimentado pelo pino 5v do arduino na minha opinião o arduino não vai consegui acionar mais do que 2 reles  com 5v sem resetar acho que o problema é a corrente mesmo que o pino 5v esta mandando é pouco pra acionar todos os reles

Terei então de investigar o meu projeto e ver o que estava resetando.

Valeu

opa,

colocaria umas fichas que sua porta USB não está fornecendo corrente suficiente, já experimentou usar uma fonte 5v externa, alimentando os periféricos? 

lembre sempre de comutar os negativos.

uhm sei não. Um display 5110 um lm 35 e o Uno somente, sei não.

Valeu

vale testar, faz muito tempo que mexi com display e foi por muito pouco tempo, mas lembro que tive varios problemas alimentando-o pelo arduino, 

não me recordo especificamente de resetar o arduino, mas lembro que ele ficava piscando....

Tb tô apostando q o problema é esse.

Minha sugestão é usar transistores comuns como chaves,  pra ativar os relês, alimentando transistores e relês externamente, ligando o arduino somente à base do transistor para ativa-lo

Recentemente recebi uma placa  de 16 reles, q tinha um problema parecido: pelo projeto da placa, o relê é ativado ligando no ground o pino relativo a esse relê.

O Wiechert me aconselhou a fazer isso usando um digitalWrite em LOW, mas nao funcionou, acredito que pelo mesmo motivo.

Fiz 2 placas com 8 transistores cada, alimentados externamente, e os coloquei como chaves pros transistores. Daí os relês funcionaram normalmente.

Deu certo aqui alimentei os reles externamente com uma fonte comun 5v liguei os gnd deu certo esta funcionando td blz o problema é ter que ligar em duas tomadas  só não tenho certeza que assim é seguro.

Assim funfa?

Depende o módulo. No meu não funfou.

Faz um teste: injeta uma tensão da fonte naquele fio que vem do arduino, mas sem o Arduino. Chamamos isso de teste de bancada. Faćo muito isso, se o circuito funcionar acionando 5V naquele ponto, vai acionar quando o pino do arduino estiver em HIGH.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço