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
Tags:
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.
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...
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por