Arduino Progetto Flussometro e altro

Capitano di Fregata
marcop20 (autore)
8 Mi piace
- 1/457
Per molto tempo ho cercato dei flussometri tipo navman o lowrance, ma considerando i costi e la quasi impossibilità nel reperirli ho pensato di costruirmelo da solo.

Inizio col dire che ho acquistato un comunissimo sensore di flusso con segnale in uscita ad onda quadra
Le sue specifiche sono:

Capacità di lettura da 0.03 a 1.8 litri per minuto
8500 impulsi per litro
funzionamento da 5V a 24V
precisione con errore massimo del 2%
Ripetibilità dell' errore pari allo 0.5%
Pressione massima sopportabile di 10Bar
funzionamento tra -20°C e +80°C

Se mi è concesso pubblico anche il sito dove l'ho acquistato.
Capitano di Fregata
marcop20 (autore)
Mi piace
- 2/457
Ho interfacciato tutto su Arduino Uno e il suo shield LCD 16X2

Ho scritto anche due righe di codice prendendo spunto da terze parti per le funzioni di lettura e visualizzazione dati

Premetto che ad ora in questa versione molto beta funziona tutto ma ovviamente non essendo un genio, ma solo uno che si diletta chiedo il vostro aiuto per perfezionare tutto e aggiungere nuove funzioni

Allo stato attuale ho solo due dati
Consumo istantaneo in L/h e consumo totale in L fino allo spegnimento di Arduino
Capitano di Fregata
marcop20 (autore)
1 Mi piace
- 3/457
Allego il codice che sto usando

#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
volatile float time = 0;
volatile float time_last = 0;
volatile int impulsi_array[5] = {0,0,0,0,0};


//All'accensione imposto a 0 le variabili
int impulsi = 0;
int litri_tot = 0;



void setup()
{

//Pin 2 impostato come ingrsso digitale interrupt
attachInterrupt(0, fan_interrupt, FALLING);

//Impostazione LCD
lcd.begin(16, 2);

lcd.setCursor(0, 1);
lcd.print("Istantaneo");

lcd.setCursor(0, 0);
lcd.print("litri tot.");

// abilito una resistenza di pull up sul pin 2
digitalWrite(2, HIGH);
}

//Main Loop
void loop()
{
int consumo_istantaneo = 0;

while(1){

//Slow Down The LCD Display Updates
delay(400);

litri_tot = (impulsi/8500);

//Visualizzo su LCD i litri totali consumati
lcd.setCursor(11, 0);
lcd.print(litri_tot);

//Visualizzo su LCD il consumo istantaneo
lcd.setCursor(11, 1);
lcd.print(" ");
lcd.setCursor(11, 1);
lcd.print(consumo_istantaneo);

//Aggiorno il consumo_istantaneo
if(time > 0)
{
//5 array per calcolare la media del cosumo istantaneo
impulsi_array[0] = impulsi_array[1];
impulsi_array[1] = impulsi_array[2];
impulsi_array[2] = impulsi_array[3];
impulsi_array[3] = impulsi_array[4];
impulsi_array[4] = 60*(8500/(time));

consumo_istantaneo = (impulsi_array[0] + impulsi_array[1] + impulsi_array[2] + impulsi_array[3] + impulsi_array[4]) / 5;
}

} //chiusura while
}

//Lettuara degli interrupt
void fan_interrupt()
{
impulsi = impulsi ++;
time = (micros() - time_last);
time_last = micros();
}
Capitano di Fregata
marcop20 (autore)
Mi piace
- 4/457
Prima di proseguire attendo dei commenti in merito Wink
Capitano di Corvetta
gianpippo
Mi piace
- 5/457
Ciao, la cosa è molto molto molto interessante. Se non vuoi scriverlo qui, mi manderesti il link al minuratore di flusso in privato? Ho un arduino UNO che uso solo per "giocare" e il desiderio di avere un flussometro a buon prezzo. Chissà che non riesca anche io a coniugare le due cose Felice

--
G
Comune di 1° Classe
gianluca88
Mi piace
- 6/457
Mi accodo anche io alla richiesta del link.
Ciao e grazie.
Capitano di Corvetta
gianpippo
Mi piace
- 7/457
Una domanda a tutto il forum e in particolare a te che lo stai usando: ho letto che il sistema di rilevazione del flusso è "a turbina", non è che questo influisce sul flusso di benzina come un restringimento?

--
G.
Capitano di Fregata
marcop20 (autore)
Mi piace
- 8/457
beh.... Restringimento......
Tieni presente che lascia passare 1,8 litri per minuto

Neanche una ferrari da F1 consuma così tanto Wink

e poi.... è lo stesso principio di funzionamento che adottano i più blasonati flussometri prodotti da Lowrance, Navman, Northstar ecc.....
Tenente di Vascello
tanomanci
Mi piace
- 9/457
Quanto costerebbe anche così comè ? Rolling Eyes
scuba , traina
Capitano di Fregata
marcop20 (autore)
Mi piace
- 10/457
per quanto riguarda il link, considerando che me lo chiedete in molti...
eccolo.... https://www.conrad.it/ce/it/product/150392/Flussometro-Misuratore-di-flusso-FCH-m-POM-LC-003-30-lmin-BIO-TECH-eK-FCH-M-POM-LC-AD-6-MM-con-ugello-16-mm?ref=searchDetail

Non credo di infrangere alcuna regola del forum in quanto la mia non è pubblicità, ma solo il modello che io ho acquistato per fare le mie prove.
Se così non fosse chiedo scusa ai moderatori e si può oscurare
Sailornet