Boa tarde Amigos.
Tenho uma duvida que é muito básica, mas acaba atrapalhando um pouco em alguns projetos.
Quando coloco uma condição em um projeto tipo:
Faça tal coisa com "delay (250);" , mas se apertar o botão 1 faça tal coisa com com delay(2000);
Vou colocar um código exemplo mais pra baixo para ficar mais claro.
Como devo fazer nesses casos ??
#include <LiquidCrystal.h>
const int botaoMenu = 11; // Pino Botão Menu
const int sirene = 8;
int contador = 0;
int quantMenu = 3;
LiquidCrystal lcd(10, 9, 5, 4, 3, 2);
void setup(){
lcd.begin(16, 4);
pinMode(botaoMenu, INPUT);
pinMode(sirene, OUTPUT);
Serial.begin(9600);
digitalWrite(sirene, LOW);
}
void loop(){
if (digitalRead(botaoMenu) == HIGH) {
contador=contador+1;
Serial.println("Botao Menu Apertado");
Serial.println(contador);
}
if (contador>quantMenu){
contador=0;
}
if (contador == 2){
digitalWrite(sirene, HIGH);
delay (2000);
digitalWrite(sirene, LOW);
}
lcd.setCursor(0,0);
lcd.print(" Ola Mundo ! ");
lcd.setCursor(0,1);
lcd.print(" Menu Examplo ");
lcd.setCursor(0,2);
lcd.print(contador);
delay(250);
}
Obrigado, e grande abraço
Michael Araújo
Tags:
No caso, o que atrapalha? o delay né? Em qualquer microcontrolador qualquer delay que você coloca ele para de fazer todas suas funções e fica preso no delay. Como exemplo sua sirene vai tocar por 2 segundos e você não vai conseguir desligar ela ou mudar para outro estado até que os 2 segundos passem. Sempre por toda sua vida de programação tente fazer programas sem delays. Nesse caso seria legal fazer acionar a sirene por interrupção, ou seja, estude INTERRUPÇÕES.
Acredito que é essa sua dúvida.
Valeu!
Oi MA, boa noite,
use a função millis(), ao invés de delay.
https://www.arduino.cc/en/reference/millis
Rui
Mas a pergunta principal é:
Você quer fazer (forçar) a pausa ? se sim, use o delay(x)...
Só que nesse seu caso, quando contador for "2", além da pausa de 2 segundos, ele fara uma pausa de 250ms, também. Caso as pausas sejam condicionadas, eles devem ficar dentro de seus respectivos IFs.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por