Bom dia a todos,
Comecei com o Arduino há pouco tempo, para não dizer ontem.
Hoje tentei fazer uma gambiarra para testar o Rele e começou a ocorrer alguns situações estranhas.
Eu testei usando um Cooler (de computador mesmo, padrão). Então, coloquei 5V na entrada AN e liguei o Cooler no C. Depois fiz as ligações normais (VCC, IN, GND) com o Arduino. Liguei o cooler também no GND.
Bem, acho que não há nada de errado.
Mas, os bugs começaram...
O TX fica piscando por padrão, então, acredito que deva sempre ficar piscando. Mas, de uma hora para outra o TX desligou, o sistema funciona, isso é, desliga o Relê com o sensor de luz e liga na presença de luz. Mas, o TX não dava nenhum sinal de vida. :|
Depois, reenviei o código ao Arduino, ele rodou e depois de algum tempo travou aceso.
Para repetir, desliguei ele do USB (que é a única alimentação) e tentei ligar. Neste momento quase morri, o sensor de luz não respondia e o TX desligado, além disso não consegui enviar nada ao Arduino, simplesmente dava erro. Mas, dei um Reset e viveu novamente.
Agora...
O que o TX representa? Há alguma informação quando o TX trava ligado ou desligado? Há algum problema, curto sei lá, no sistema que está fazendo isso? Porque o sistema continua funcionando, mesmo depois do TX não responder?
Tags:
Olá Lucas,
Não da para entender bem como fez as ligações, note que existem limites de corrente na saídas das portas do Arduino, 40mA máximo, um cooler mesmo pequeno, consome as vezes mais que isso, o que nos obriga a usar uma fonte externa, quando você se refere a entrada AN e C não fica claro pra mim, se puder envie o esquema da ligação feita, pode ser a mão livre, ou uma foto das ligações, talvez esteja utilizando as saídas além de sua capacidade, e como a placa tem uma proteção contra curto ou sobrecarga, as vezes ele pode deixar de funcionar adequadamente por proteção, e depois voltar a funcionar após um reset, quanto ao led tx é normal ele ficar acesso quando exista um código de comunicação por exemplo que use as portas tx rx.
Abs.
Bem, como disse estou começando e o problema não está nem relacionado ao Relê ou nada do tipo.
O TX, pelo que vi, é basicamente um LED que informa se há troca de dados entre o Arduino e o USB.
O que está causando problema é o "Serial.println".
Quando eu ligo o console ele funciona normalmente, "para sempre". Entretanto, quando não ligo aquele controle lá, ele simplesmente trava aceso depois de algum tempo.
Eu havia feito algo assim:
Serial.println("Luz");
Serial.println(valor);
Serial.println("Infravermelho");
Serial.println(infra);
Serial.println("Temperatura");
Serial.println(temperatura);
Dessa forma, rapidamente ele travava com LED aceso, quando eu não ligava o "Monitor Serial".
Então, resolvi tirar os "comentários", deixando somente os valores.
Isso é, deixei assim:
Serial.println(valor);
Serial.println(infra);
Serial.println(temperatura);
Isso fez com que ele 'aguentasse' mais tempo, mas, depois de algumas horas ele travou aceso novamente.
Minha pergunta é, porque isso ocorre?
Embora haja uma solução simples: "remover o Serial.println" ou acrescentar alguma variavel para saber se o Monitor Serial está ativo ou não, não sei se existe. Ainda resta a duvida...
Porque e como posso evitar, de uma vez, que isso ocorra?
Se você esta convencido que o problema é o que você descreve, eu testaria colocar o código que estou colando aqui e ver se tem o mesmo problema, por outra parte seria bom se colasse seu código completo para analisar.
/*
Uses a FOR loop for data and prints a number in various formats.
*/
int x = 0; // variable
void setup() {
Serial.begin(9600); // open the serial port at 9600 bps:
}
void loop() {
// print labels
Serial.print("NO FORMAT"); // prints a label
Serial.print("\t"); // prints a tab
Serial.print("DEC");
Serial.print("\t");
Serial.print("HEX");
Serial.print("\t");
Serial.print("OCT");
Serial.print("\t");
Serial.print("BIN");
Serial.print("\t");
for(x=0; x/span> 64; x++){ // only part of the ASCII chart, change to suit
// print it out in many formats:
Serial.print(x); // print as an ASCII-encoded decimal - same as "DEC"
Serial.print("\t"); // prints a tab
Serial.print(x, DEC); // print as an ASCII-encoded decimal
Serial.print("\t"); // prints a tab
Serial.print(x, HEX); // print as an ASCII-encoded hexadecimal
Serial.print("\t"); // prints a tab
Serial.print(x, OCT); // print as an ASCII-encoded octal
Serial.print("\t"); // prints a tab
Serial.println(x, BIN); // print as an ASCII-encoded binary
// then adds the carriage return with "println"
delay(200); // delay 200 milliseconds
}
Serial.println(""); // prints another carriage return
}
Abs.
Lucas bom dia.
O Carlos está fazendo um grande esforço para ajuda-lo, mas se voce postar o esquema e o código do
seu projeto, ficaria bem mais fácil para ele te ajudar, e talvez outros tenham possibilidade de ajuda-lo também.
Faça isto, ajude-nos a ajudá-lo.
Rui
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por