Duvida como fazer rolagem de pagina para leituras diferentes

Fiz dois programas separados, e não sei como integrá-los em um só, para que alterne a tela a cada 3s.

Se alguém poder ajudar agradeço. 

segue o primeiro code.

 

#include <LiquidCrystal.h>
#define length 16.0
int Apito = 6;
double percent=100.0;
unsigned char b;
unsigned int peace;

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
byte p1[8] = {
B1000,
B1000,
B1000,
B1000,
B1000,
B1000,
B1000,
B1000};

byte p2[8] = {
B11000,
B11000,
B11000,
B11000,
B11000,
B11000,
B11000,
B11000};

byte p3[8] = {
B11100,
B11100,
B11100,
B11100,
B11100,
B11100,
B11100,
B11100};

byte p4[8] = {
B11110,
B11110,
B11110,
B11110,
B11110,
B11110,
B11110,
B11110};

byte p5[8] = {
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111};

void setup(){ {

pinMode(Apito,OUTPUT);
lcd.begin(16, 2);
lcd.setCursor(4,0);
lcd.print("Hallmeter");
lcd.setCursor(0,1);
lcd.print("----------------");
delay(5000);
lcd.clear();

}


delay(100);
lcd.createChar(0, p1);
lcd.createChar(1, p2);
lcd.createChar(2, p3);
lcd.createChar(3, p4);
lcd.createChar(4, p5);

lcd.begin(16, 2);

}

void loop()
{
lcd.setCursor(0,0);
unsigned int value = analogRead(0);
percent = value*5.00/1024.0*1000;
lcd.print ("Sonda");
lcd.print ("-");
lcd.print(percent);
lcd.print(" mV ");

lcd.setCursor(0,1);

double a=length/1000*percent;


if ((analogRead(0)*5.00/1023.00) <0.20){
tone(Apito,2500); // Ligando o Apito com uma frequencia de 4000 hz.
{
delay(50); // Duração do Apito
}
noTone(Apito); // Desliga o apito
}

// drawing black rectangles on LC
if (a>=1) {

for (int i=1;i<a;i++) {
lcd.write(4);
b=i;
}

a=a-b;

}

peace=a*5;

// drawing character's colums

switch (peace) {

case 0:

break;

case 1:
lcd.print((char)0);
break;

case 2:
lcd.write(1);
break;

case 3:
lcd.write(2);
break;

case 4:
lcd.write(3);
break;

}

//clearing line
for (int i =0;i<(length-b);i++) {
lcd.print(" ");
}
;
}

e o segundo code.

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

int pinoSensor = 0;
int valorLido = 0;
float temperatura = 0;
float temperatura2 = 0;

void setup() {
lcd.begin(16, 2);
}

void loop() {

valorLido = analogRead(A3);
temperatura = (valorLido * 0.00488);
temperatura = temperatura * 100;

valorLido = analogRead(A4);
temperatura2 = (valorLido * 0.00488);
temperatura2 = temperatura2 * 100;

lcd.setCursor(0,0);
lcd.print ("Temp agu/");

lcd.setCursor(9,0);
lcd.print ("Temp ar");

lcd.setCursor(0,1);
lcd.print(temperatura);

lcd.setCursor(11,1);
lcd.print(temperatura2);

delay(100);
}

Exibições: 279

Responder esta

Respostas a este tópico

Maurício,

Minha sugestão é que os comandos do segundo código sejam incorporados ao primeiro em uma função, exemplo: void exibe_temp() { "comandos aqui" }.
Eu faria uma função para o cálculo também, tipo: float calcula_temp() { "calculos" } retornando o valor da temperatura.

Depois da primeira função, lembre-se de retornar o cursor ao ponto inicial para não bagunçar a exibição no primeiro código.

Boa sorte!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço