Bom dia.
Estou tentando fazer a leitura de temperatura e pressão barométrica em um Display 16x2 com Arduíno uno, porém está com erro na impressão no LCD. Apenas imprime a leitura do modo setup, ou seja , apenas uma vez.Quando entra no modo void loop aparece letras na impressão da pressão barométrica,e na leitura da temperatura mostra a temperatura mas não altera a impressão . Já coloquei "delay" mas não resolveu, fiz a mesma configuração da impressão do LCD em outro código e funciona normalmente, porém Nesse código que funciona , não tem variáveis "if" . Pode ser alguma coisa relacionada com a variável,if, que está causando o erro, ou oque pode ser.
Alguém saberia e poderia ajudar. Desde já agradeço.

Exibições: 969

Responder esta

Respostas a este tópico

Oi AFV, bom dia.

Anexe um arquivo com seu code para podermos identificar onde pode estar o problema.

Com certeza é uma questão de lógica.

Rui

Ola Rui consegui resolver o problema da impressão do no LCD, porém se puder me ajudar com outra questão. A questão que não posso usar a função delay para a impressão dos valores de Temperatura Pressão e Altitude  , devido o tempo que para de execução do restante do COD. Então  Como poderia fazer . Poderia mostrar no cod  em anexo.

http://pastebin.com/rrSxJ8yr

Grato. 

Boa noite, fiz uma biblioteca q facilita isso e pode ajudar em outras coisas tbm, nao usa delay e resume bem o código, qualquer duvida sobre ela so falar

Anexos

so pra exemplificar mais um pouco um uso simples seria

#include <Pulse.h>

Pulse feedlcd;

void setup(){

Serial.begin(9600);

}

void loop(){

if(feedlcd.pulse_milli(500)){

Serial.println("retorna essa msg na serial a cada meio segundo");

}

}

So retificando o cod pois quando testei o que mandei ocorreu algo um pouco diferente, para um led isso funciona normal porem para o uso da serial o mais correto seria:

#include <Pulse.h>

Pulse feedlcd;

bool Final_msg1;

void setup(){

Serial.begin(9600);

}

void loop(){

bool atual=feedlcd.pulse_milli(500);

if(atual != Final_msg1){

Serial.println("retorna essa msg na serial a cada meio segundo");

Final_msg1=atual; //isso faz que a execução termine aqui e espera ate o próximo intervalo

}

}/*

Pois no exemplo que dei acima ele vai atualizar a serial durante 0,5segundos(podendo mandar varios resultados de uma vez) e depois espera mais 0,5segundos para atualizar, ja dessa forma ele joga somente um resutado a cada 0,5segundos, bons projetos! */

Grato. Testei e funcionou.

Oi AFV, boa noite.

Experimente estre code:

http://pastebin.com/N1P3pXGU

é bem mais simples

Só precisa baixar a biblioteca    Adafruit_BMP085.h.

Rui

Ok. Rui 

Foi possivel fazer os ajustes.Inseri a lógica do Romario também.

Grato.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço