Bom dia,

Fiz (copiei) programa para acessar o releshield de 2 portas na estrutura Arduino + Ethernet + ReleShield, conectados nesta ordem. Quando ligo uma de cada e desligo antes de ligar a segunda funciona bem, porém quando ligo as duas ela trava com os 2 reles acionados e nao consigo desligar nenhuma delas, o que percebi foi que, quando aciono (via browser) os dois reles apagam se todos os leds que tem na placa do Ethernet Shield e depois elas voltam a piscar...parece que ligou e desligou, e os 2 leds do Rele Shield nao apagam. A impressão que tenho é que houve uma drenagem súbita de energia na placa do ethernet quando ligo os dois reles.

Será que é um problema da placa de rele? Ela é nova e experimentei retirar a placa do rele shield e rodei o programa só com o arduino + ethernet shield, ai funciona bem com as duas portas acionadas. Consigo ver pelo browser (ligado1 e ligado2) que estão com os dois reles acionados apesar que não ter a placa do rele:

/*
Web Server Demo
thrown together by Randy Sarafan

Allows you to turn on and off an LED by entering different urls.

To turn it on:
http://your-IP-address/$1

To turn it off:
http://your-IP-address/$2

Circuit:
* Ethernet shield attached to pins 10, 11, 12, 13
* Connect an LED to pin D2 and put it in series with a 220 ohm resistor to ground

Based almost entirely upon Web Server by Tom Igoe and David Mellis

Edit history:
created 18 Dec 2009
by David A. Mellis
modified 4 Sep 2010
by Tom Igoe
modified 18 Aug 2012 in order to use with Relay Shield +
Ethernet Shield + Arduino UNO by Marcos M Yoshida.

*/

#include <SPI.h>
#include <Ethernet.h>

boolean incoming = 0;

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x83, 0xEA };
IPAddress ip(192,168,0,130); //< ENTER YOUR IP ADDRESS HERE!!!
//byte ip[]={192,168,0,130};
byte gateway[] = { 192, 168, 0, 1 };
byte subnet[] = { 255, 255, 255, 0 };
// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(85);

void setup()
{
// start the Ethernet connection and the server:
Ethernet.begin(mac, ip);
server.begin();
Serial.begin(9600);

pinMode(8, OUTPUT);
digitalWrite(8, LOW);
pinMode(7, OUTPUT);
digitalWrite(7, LOW);
}
int varOnOff1 = 0;
int varOnOff2 = 0;

void loop()
{
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
// an http request ends with a blank line
boolean currentLineIsBlank = true;
String vars1;
while (client.connected()) {
if (client.available()) {
char c = client.read();

vars1.concat(c);

if(vars1.endsWith("/1on")) varOnOff1 =1;
else if(vars1.endsWith("/1off")) varOnOff1 =0;
if(vars1.endsWith("/2on")) varOnOff2 =1;
else if(vars1.endsWith("/2off")) varOnOff2 =0;

if (c == '\n' && currentLineIsBlank) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
if(varOnOff1 == 1)
{
client.println("ligado1" );
digitalWrite(7, HIGH);
}
else if (varOnOff1 ==0)
{
client.println("desligado1" );
digitalWrite(7, LOW);
}
if(varOnOff2 == 1)
{
client.println("ligado2" );
digitalWrite(8, HIGH);
}
else if (varOnOff2 ==0)
{
client.println("desligado2" );
digitalWrite(8, LOW);
}
else
{
client.println("Bem Vindo" );
}
break;
}
if (c == '\n') {
currentLineIsBlank = true;
}
else if (c != '\r') {
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(1);
// close the connection:
client.stop();
}
}

Obrigado,

Marcos

Exibições: 4660

Responder esta

Respostas a este tópico

Marcos,

Sua programação parece estar ok. Vamos testar essa montagem no lab e verificar o que pode estar acontecendo.

O ehernet shield que você está usando é o original da Arduino?

Fica tranquilo, se for problema na placa a gente troca para você.

Abraço!!

Marcelo,

Comprei os três ( arduino, ethernet e o rele) ai na loja do LdG sábado passado, o ethernet é original sim.

Tks,

Marcos

Oi Marcos, fizemos um tutorial baseado na sua dúvida. Dá uma olhada: http://labdegaragem.com/profiles/blogs/tutorial-utilizando-o-relesh...

Você pode estar tendo problema na alimentação do Arduino. Como você está alimentando?? Talvez a fonte não esteja aguentando no momento do acionamento do relé. Aqui fizemos a mesma montagem que você e está funcionando normalmente.

Equipe LdG.

Mudei a fonte, tentei sub do note e uma outra fonte mas não foi.
Abs
Marcos

Oi Marcos,

Estranho, pois testamos aqui conectado ao cabo USB do PC e com uma fonte externa de 9V e 650mA.

Você falou que os shields estão funcionando perfeitamente, certo? Então não é DEFEITO das shields. 

Agora não sei o que pode estar acontecendo... Experimenta passar a programação de novo sem os shields.

Se você não conseguir, poste aqui que entraremos em contato!

Equipe LdG.

Marcos,

Já que foram feitos vários testes e não foi detectado o problema, peço que você nos envie os produtos envolvidos no projeto, assim poderemos pesquisar a causa do não funcionamento ou se preferir compareça no LdG.

Caso seja necessário nos trocaremos os produtos.

Fico a disposição para maiores informações

Att.

mauricio.ortega@labdegaragem.com

ola,

me parece q o problema esta aki:

if(vars1.endsWith("/1on")) varOnOff1 =1;
else if(vars1.endsWith("/1off")) varOnOff1 =0;
if(vars1.endsWith("/2on")) varOnOff2 =1;
else if(vars1.endsWith("/2off")) varOnOff2 =0;

 

tire os ( else).

favor me avisar se deu certo ou errado

obrigado

Marcos, recebemos sua placa e aqui está o resultado. Utilizamos o mesmo código que você postou aqui no fórum. Tudo está funcionando perfeitamente.

Mais uma vez acreditamos que seja a fonte de alimentação que você está utilizando ou a USB do seu computador.

Boa tarde,

E como ficaria esse projeto sendo acionado pelo RFID da Sparkfun?

Tenho uma idéia de usar o mesmo sistema, porém queria "salvar" os dados de entrada do cartão, ou seja, data e hora que foi acionado.

Uma vez lido o cartão, na internet verificar o fluxo.

Se alguém tiver links ou tutoriais que possam ajudar, estou por aqui.

bom pelo vídeo parece q funciona. Amanhã vou ver se vou aí pessoalmente ou vou ter q pedir p mensageiro buscar, neste caso te ligo avisando, d qqr forma, obrigado

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço