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);
}
Tags:
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!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por