Arduino Progetto Flussometro e altro [pag. 2]

Capitano di Fregata
marcop20 (autore)
Mi piace
- 11/466
Mi servirebbe un aiutino Wink

Allo stato attuale nel momento in cui tolgo l'alimentazione il consumo totale riparte da 0
Vorrei inserire il risultato di quella variabile nella eeprom interna
Ammiraglio di squadra
Gulliver
Mi piace
- 12/466
Questo topic è fantastico.

Smile
Capitano di Fregata
marcop20 (autore)
Mi piace
- 13/466
Wink
Il progetto anche se a rilento va avanti
Appena ho modifiche rilevanti posto tutto
Ammiraglio di squadra
Gulliver
Mi piace
- 14/466
Marco non sono informatico e ho appena capito cos'è Arduino, ho visto che gestisce sensori e avrei una domanda quasi OT:

tu pensi che sia possibile utilizzarlo per portare il segnale dai motori a iniezione, ma ancora senza presa LAN, agli strumenti nmea 2000?

Come sai le centraline dei motori a iniezione sono in grado di fornire moltissime informazioni che in effetti vengono viste dai meccanici sul computer, ma, se manca la presa NMEA 2000, non possono essere messi in rete.

Pensi che Arduino possa farlo?

Potrebbe diventare un business colossale.
Capitano di Fregata
marcop20 (autore)
Mi piace
- 15/466
Si, si può fare e ci avevo già pensato
Appena finito questo progetto mi cimenterò nell'altro, a patto però che qualcuno mi aiuti in quanto gli AVR e Arduino per me è materia nuovissima Wink
Ammiraglio di squadra
Gulliver
Mi piace
- 16/466
marcop20 ha scritto:
Si, si può fare e ci avevo già pensato
Appena finito questo progetto mi cimenterò nell'altro, a patto però che qualcuno mi aiuti in quanto gli AVR e Arduino per me è materia nuovissima Wink


AVETE SENTITO?

SI PUÒ FARE!!!!!

io ti posso curare i contratti per quando diventerai ricco, ma in informatica non posso darti una mano
Capitano di Fregata
marcop20 (autore)
Mi piace
- 17/466
Andando avanti con il progetto flussometro ho apportato delle modifiche.....

Adesso le voci a display sono tre:

in alto a sinistra abbiamo i litri totali consumati dal momento in cui decideremo di montare il dispositivo (attualmente si azzera ad ogni reset e devo trovare il modo per memorizzare tale dato nella eeprom interna)

in alto a destra invece un contatore per i litri parziali consumati visualizzati in litri e centesimi di litri (al momento anche questo dato si azzera ad ogni reset e dovo far in modo che resti in memoria eeprom fino alla pressione di un pulsante)

in basso invece troviamo il consumo istantaneo in litri/h (al momento visualizzo tutto solo in unità senza decimali o centesimali)
Capitano di Fregata
marcop20 (autore)
Mi piace
- 18/466
questo è il codice attuale:

//includo la libreria per le funzionalità dell'LCD
#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};

//includo la libreria per le impostazioni dell'eeprom
#include <EEPROM.h>
int litri_tot = EEPROM.read(0);

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

void setup()
{
//Pin 2 impostato come ingrsso digitale interrupt
attachInterrupt(0, interrupt, FALLING);

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

lcd.setCursor(0, 0);
lcd.print("L-T");

lcd.setCursor(8, 0);
lcd.print("L-P");

lcd.setCursor(0, 1);
lcd.print("L/H");

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

//Main Loop
void loop()

{
while(1){
//Tempo di aggiornamento LCD
delay(100);

//Visualizza litri parziali con due cifre decimali
float litri_parziali;
litri_parziali = ((float)impulsi/2500);

//Visualizza litri totali
litri_tot = (impulsi/2500);

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

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

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

//Aggiorno il consumo_istantaneo

if (time > 0)
{
//5 array per calcolare la media sulle letture 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*(2500/(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 interrupt()
{
impulsi = impulsi ++;
time = (micros() - time_last);
time_last = micros();
}
Capitano di Fregata
marcop20 (autore)
Mi piace
- 19/466
un paio di foto per rendere meglio l'idea....

re: Arduino Progetto Flussometro e altro


re: Arduino Progetto Flussometro e altro
Ammiraglio di squadra
Gulliver
Mi piace
- 20/466
Se lo interfacci con un misuratore di velocità (di spazio) avrai anche i litri/ miglio
Sailornet