• amigos estou precisando de ajuda com meu arduino mega

  • 2560

  • liguei ele a um banco de relés e ele fica ativando e desativando os relés sem que eu dê comandos

  • primeiro achei que fosse o ethernet shiel mais tirei ele e ficou fazendo a mesma coisa

Exibições: 598

Responder esta

Respostas a este tópico

Porque não envia o código pela USB outra vez?

Poste seu código para ver se não tem erros

o codigo que estou utilizando.

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

byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x36 };
byte ip[] = { 10, 10, 1, 157 };
EthernetServer server(8080);

int led1 = 22;

String readString = String(30);

String statusLed;

void setup () {
Ethernet.begin(mac, ip);
pinMode(led1, OUTPUT);
}

void loop () {

EthernetClient client = server.available();

if(client)
{
while(client.connected())
{
if (client.available())
{
char c = client.read();

if(readString.length() <30) {
readString += (c);
}

if(c == '\n')
{

if(readString.indexOf("led1") >= 0) {
digitalWrite(led1, !digitalRead(led1));
}

// cabeçalho http padrão
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();

client.println("<!doctype html>");
client.println("<html>");
client.println("<head>");
client.println("<title>Acedendo Lâmpada</title>");
client.println("<meta name=\"viewport\" content=\"width=320\">");
client.println("<meta name=\"viewport\" content=\"width=device-width\">");
client.println("<meta charset=\"utf-8\">");
client.println("<meta name=\"viewport\" content=\"initial-scale=1.0, user-scalable=no\">");
client.println("</head>");
client.println("<body>");
client.println("<center>");

client.println("<font size=\"5\" face=\"verdana\" color=\"green\">Android</font>");
client.println("<font size=\"3\" face=\"verdana\" color=\"red\"> & </font>");
client.println("<font size=\"5\" face=\"verdana\" color=\"blue\">Arduino</font><br />");

if(digitalRead(led1)) {
statusLed = "Ligado";
} else {
statusLed = "Desligado";
}

client.println("<form action=\"led1\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Led 1 - "+statusLed+"</button");
client.println("</form> <br />");

client.println("</center>");
client.println("</body>");
client.println("</html>");

readString = "";

client.stop();
}
}

}
}

}

Aparentemente no meu ponto de vista esta tudo certo, e não existe conflito com os pinos do Shield Ethernet, nem erro que possa estar causando o problema que você descreve, resta ver se na logica de implementação esta tudo certo, ligação dos reles, fonte externa etc. poderia descrever como esta o circuito, uma fonte para os reles? como estão sendo acionados? os pinos de acionamento dos reles tem resistor? (pull down ou pull up) a falta deles pode causar disparos erráticos, e as vezes por falha humana ligados em pinos diferentes, pode causar erro também desta natureza, se você carrega o código não aparece nenhum erro na IDE?

Também creio de bom senso usar um dos varios codigos da IDE de exemplo, como blink e fade por exemplo usando o pino 13, e ver se funciona normalmente a placa com o led integrado.

Abraço.

Não estou utilizando fonte. estão sendo acionados pela web, ip fornecido pelo arduino. Não tem resistor nos pinos do relé.

Poderia me mostrar um exemplo a respeito desse codigo? Também creio de bom senso usar um dos varios codigos da IDE de exemplo, como blink e fade por exemplo usando o pino 13, e ver se funciona normalmente a placa com o led integrado.

// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}

Acho melhor você enviar uma foto ou um esquema, esta um pouco confusa sua resposta.

Abs.

ta aí o meu esquema.

Ok, pelo que vejo você adquiriu uma solução pronta, apenas ligou tudo e esta testando, certo? então pergunta básica, você transferiu o código para o Arduíno via IDE, pergunto isso porque quando falei para você carregar o blink para teste você pediu um exemplo, dai a pergunta o código que você nos mostrou acima, foi transferido pela IDE para o Arduíno? 

transferi pela USB

Quando dou os comandos na web funciona direitinho, mais de vez em quando ele ativa e desativa o rele sozinho, ou seja, acende e apaga a lampada sem que eu dê nenhum comando

Sou Eletricista, trabalho em uma Universidade Federal e fiquei curioso ao conhecer o arduino, e resolvi aprender automação.

Eu acho que o problema então é de disparos erraticos aleatorios por falta de resistor de pull down, desde o pino de saida, coloque um resistor de 10K conectado entre pino de saída e GND, desta forma sua saida sempre estara con nivel logico 0 na saida, evitando disparos aleatorios, e somente acionara o rele quando vier o pulso HIGH. Abaixo um exemplo.

Da uma olhadinha no video, esse é o problema que está acontecendo.https://drive.google.com/file/d/0B0seJsC3fkNMWmhFT2g0OUhkXzA/view?u...

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço