Boa tarde, sou novato na área de eletrônica e semana passada comprei um Arduíno para realizar alguns testes e brincadeiras que vi na internet e gostei, fiz um programa para controlar LEDs acionando-os pelo teclado, sendo assim preciso que um dos LEDs fique aceso por 4 minutos e depois desligue, porém ele não desliga, fui testando com certos intervalos de tempo e percebi que qualquer tempo que eu coloque que seja menor que 30 segundos ele funciona normalmente, e qualquer tempo que seja maior que 30 segundos ele trava e não executa nenhuma outra função fazendo assim com que faça um reset manual no Arduíno, já aconteceu algum problema desse gênero com algum de vocês? Alguém sabe como me ajudar?

Grato.

Exibições: 456

Responder esta

Respostas a este tópico

Olá,

Faltou você postar o sketch que está usando...

Mas da forma como descreveu o problema, parece que alguma variável foi declarada de forma incorreta, tipo um int que deveria ser um long, mas sem ver o sketch fica difícil de ajudar mais.

Abraço.

Pronto, coloquei.

Amigo, acho que você errou em alguma coisa, contudo está aqui um código comparativo, para que você possa ver onde errou! Basta trocar os valores dos delays para obter o resultado que você busca.

int ledPin = 13;
void setup() {
pinMode (ledPin, OUTPUT);
}
void loop() {
digitalWrite (ledPin, HIGH);
delay (240000);
digitalWrite (ledPin, LOW);
delay (3000);
}

Eu não faria desta forma, eu faria da seguinte forma, de uma olhada no código posta no link abaixo:

https://gist.github.com/rodrigopmatias/25970d3b4f4109a878ff

Peço desculpas por não ter postado a sketch, segue ela, poderiam analisa-la e me dizer onde estou errando.

Grato

int ledPin13 = 13;
int ledPin11 = 11;
int ledPin9 = 9;
int ledPin7 = 7;
int ledPin5 = 5;

void setup() {

Serial.begin(9600);

pinMode(ledPin13, OUTPUT);
pinMode(ledPin11, OUTPUT);
pinMode(ledPin9, OUTPUT);
}

void loop()
{
char tecla;
tecla = Serial.read();
//se pressionado "q" liga o led1
if(tecla == 'q')
{
digitalWrite(ledPin13, HIGH);
Serial.print("Iniciando... \n");
delay(1000 * 3);
Serial.print("Analisador de Ar TECNOISO \n");
digitalWrite(ledPin13, LOW);
}
else
//Se pressionado "w" liga o led 2
if(tecla == 'w')
{
digitalWrite(ledPin11, HIGH);
Serial.print("Sanitizando... \n");
delay(1000 * 60 * 4);
Serial.print("Analisador de Ar TECNOISO \n");
digitalWrite(ledPin11, LOW);
}
else
//Se pressionado "s" desliga o led 2
if(tecla == 's')
{
digitalWrite(ledPin11, LOW);
Serial.print("Parando Sanitização... \n");
}
else
//Se pressionado "e" liga o led 3
if(tecla == 'e')
{
digitalWrite(ledPin9, HIGH);
Serial.print("Despressorizando... \n");
}
else
//Se pressionado "d" desliga o led 3
if(tecla == 'd')
{
digitalWrite(ledPin9, LOW);
Serial.print("Parando Despressorização... \n");
}
else
if(tecla == 'p')
{
digitalWrite(ledPin13, LOW);
digitalWrite(ledPin11, LOW);
digitalWrite(ledPin9, LOW);
Serial.print("Parando... \n");
}
delay(1000);
}

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço