[color=#333333]Eae pessoal, tudo bem ? então eu estou desenvolvendo um projeto de hidrometro digital para o meu T[url=https://www.robocore.net/modules.php?name=Forums&file=viewtopic&t=1069]C[/url]C só que estou com problemas na parte da programação, o que acontece é o seguinte, eu ja tenho a programação do projeto sem o display pronta e quando tento colocar a programação referente ao display ele meio que entra em conflito e o display n funciona, mas se eu apago por exemplo a programaçao do T[url=https://www.robocore.net/modules.php?name=Forums&file=viewtopic&t=1069]C[/url] e deixo so a parte do display ele funciona normalmente
o codigo que estou usando é o seguinte
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
double calculoVazao;
volatile int contador;
float fluxoAcumulado =0;
float metroCubico = 0;
float ContaAgua = 0;
LiquidCrystal_I2[url=https://www.robocore.net/modules.php?name=Forums&file=viewtopic&t=1069]C[/url] lcd(0x27,16,2);
void setup() {
lcd.begin(16,2);
pinMode(2,INPUT);
attachInterrupt(0,Vazao,RISING);
Serial.begin(9600);
}
void loop() {
contador = 0;
interrupts();
delay(1000);
noInterrupts();
calculoVazao= (contador * 2.25);
fluxoAcumulado = fluxoAcumulado + (calculoVazao / 1000);
metroCubico = fluxoAcumulado / 1000;
ContaAgua = metroCubico * 3,59;
calculoVazao = calculoVazao * 60;
calculoVazao = calculoVazao / 1000;
Serial.println("Litros por minuto : ");
Serial.println(calculoVazao);
Serial.println("Gasto total L :");
Serial.println(fluxoAcumulado);
Serial.println("Metros cubicos totais : ");
Serial.println(metroCubico);
Serial.println("R$ : ");
Serial.println(ContaAgua);
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Litros p/m");
lcd.print(calculoVazao);
}
void Vazao()
{
contador ++;
}[/color]
E o teu problema é???
acho que a msg nao foi toda mas falei o seguinte
"Eae pessoal, tudo bem ? então eu estou desenvolvendo um projeto de hidrometro digital para o meu TCC só que estou com problemas na parte da programação, o que acontece é o seguinte, eu ja tenho a programação do projeto sem o display pronta e quando tento colocar a programação referente ao display ele meio que entra em conflito e o display n funciona, mas se eu apago por exemplo a programação do TCC e deixo só a parte do display ele funciona normalmente
o código que estou usando é o seguinte"
Ok.
Um dos problemas que vais ter é que o delay causa problemas no cálculo da vazão. Então aconselharia a mudares a maneira como fazes o código e em vez de teres desta forma fazer algo deste género:
unsigned long tempo = 0; //isto fora de qualquer função.
void loop(){
if (millis() - tempo >=1000) { //passou um segundo.
tempo = millis();
//coloca aqui o resto do teu código.
}
}
Outro problema que tens no teu código é estares sempre a inicializar o display.
Se passares o lcd.init(); para a função setup() as coisas vão funcionar melhor.
Uma coisa que podes fazer também em vez de escreveres o ecrã todo sempre que tens um valor novo é escreveres o texto "lcd.print("Litros p/m");" no setup e depois para fazer update do valor metes o cursor no sítio correcto com o método setCursor e escreves uma string vazia, recolocas o cursor e voltas a escrever o texto. Isto torna as coisas um pouco melhores no LCD e demora menos tempo.