Então quero ver se eu consigo ajuda nessa parte, não sei se estou no lugar certo, mas me pareceu correto postar aqui.

 

Meu problema é:

 

Vou utilizar de um relogio no arduino, que conte do zero, ou seja eu ligo ele começa contar segundo e minutos no formato de um relógio (00:00), no código ele usa os seguintes textos:

#include <Time.h> 
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()  {
  lcd.begin(16, 2);
}

void loop(){
  digitalClockDisplay(); 
  delay(1000);
}

void digitalClockDisplay(){
  lcd.setCursor(0, 0);
  lcd.print(minute());
  printDigits(second());
}

void printDigits(int digits){
  lcd.print(":");
  if(digits < 10)
    lcd.print('0');
  lcd.print(digits);
}

 

mas no MEU programa eu tenho um código no loop então eu não posso usar delay! Já tentei algo similar ao Blink Without delay e não funcionou direito, ele deixou o numero do minuto em branco e o segundos funcionaram normalmente.

Alguem tem alguma idéia de como posso solucionar isso???

Obrigado! 

Exibições: 209

As respostas para este tópico estão encerradas.

Respostas a este tópico

cara, da uma olhada nesses comandos:

millis

micros

Victor

 

Dá uma olhada no tópico que eu postei faz um bom tempo.

 

http://labdegaragem.com/forum/topics/multitarefa-para?commentId=622...

 

Sempre uso qdo quero fazer as coisas sem delay, aliás, quase nunca uso delay.

 

Abraços

unsigned int ultimaVezClockDisplay = 0 ;

void loop(){

unsigned int currentMillis = millis() ;

if (currentMillis - ultimaVezClockDisplay > 1000) //delay(1000);

{
digitalClockDisplay();

ultimaVezClockDisplay = currentMillis ;

}

// Seu codigo que esta no loop entra aqui.

// ...
}

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço