Boa tarde amigos!
Estou começando na programaçao do arduino. Consegui fazer (depois de ver e analizar muitos tutorias e exemplos) com que ele leia e imprima num LCD16x2 os dados de 1 sensor de vazao. Agora quero colocar outro na mesma placa. Mas não consigo entender como separar as informaçoes de um e outro.
O codigo para leitura de 1 sensor:
void setup()
{
Serial.begin(9600);
pinMode(2, INPUT);
attachInterrupt(0, incpulso, RISING);
}
void loop ()
{
contaPulso = 0;
sei();
delay (1000);
cli();
vazao = (contaPulso * 10.6327); //Converte para Ml/min
Desde já agradeço a ajuda. Já estou quase comprando outro arduino e fazendo o mesmo para o outro sensor. kkkkk
Tags:
Ola, eu nunca trabalhei com sensor de vazãao, mas segundo seu codigo seria algo do tipo:
Você deve criar uma funçao para cada com o void, assim ficam independentes.
EX:
#include <LiquidCrystal.h>
int PinSensor1 = 2;
int PinSensor2 = 3;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
lcd.begin(16, 2);
Serial.begin(9600);
pinMode(PinSensor1 , INPUT);
pinMode(PinSensor1 , INPUT);
attachInterrupt(0, incpulso, RISING);
}
void sensor1() {
contaPulso = 0;
sei();
delay (1000);
cli();
vazao = (contaPulso * 10.6327);
}
void sensor2() {
contaPulso = 0;
sei();
delay (1000);
cli();
vazao = (contaPulso * 10.6327);
}
void loop ()
{
lcd.setCursor(0,0);
lcd.print(sensor1); // chama a função voide
lcd.setCursor(0,1);
lcd.print(sensor2); // chama a função voide
}
Obrigada! Já vou fazer as alteraçoes com essa ideia de duas voids... faz muito sentido. Vamos ver como roda! Muito grata pela ajuda!
Me parece que o codigo que você postou está incompleto, por exemplo, as funções "incpulso", "sei" e "cli" estão sendo usadas mas não vejo nenhum definição delas.
Posta o codigo completo (se for grande usa o codebin)
o Programa é pequeno. Olha só... consigo ver as informaçoes que preciso de um sensor. Se conseguir colocar os dois em um arduino, vou ver um LCD maior e imprimir a mesma informaçao dos dois.
As informaçoes que uso é Ml/Min Instantaneo, a média ml/min a cada 60 segundos e o total de litros.
#include <LiquidCrystal.h>
float vazao;
float media = 0;
int contaPulso;
int i = 0;
int Min = 00;
float Litros = 0;
float MiliLitros = 0;
LiquidCrystal lcd(8, 7, 6, 5, 4, 3);
void setup()
{
Serial.begin(9600);
lcd.begin(16, 2);
lcd.setCursor( 0, 0);
lcd.print("FLUXO VAZAO DE");
lcd.setCursor( 0, 1);
lcd.print("VENENO");
delay(3000);
lcd.clear();
pinMode(2, INPUT);
attachInterrupt(0, incpulso, RISING);
}
void loop ()
{
contaPulso = 0;
sei();
delay (1000);
cli();
vazao = (contaPulso * 10.6327);
media = media + vazao;
i++;
lcd.setCursor(0, 0);
lcd.print(vazao);
lcd.setCursor(8,0);
lcd.print("ml/m");
lcd.setCursor(14, 0);
lcd.print(i);
MiliLitros = vazao/60/1000;
Litros = Litros + MiliLitros;
lcd.setCursor(0,1);
lcd.print(Litros);
lcd.print("L");
if (i == 60)
{
Min++;
if (Min >= 60)
{
Min = 0;
}
media = media / 60;
lcd.setCursor( 9, 1);
lcd.print("Md=");
lcd.print(media);
media = 0;
i = 0;
}
}
void incpulso ()
{
contaPulso++; //Incrementa a variável de pulsos
}
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por