Arduino misura livello liquidi

Arduino misura livello liquidi con un sensore galleggiante
KAOLALI è la marca del Sensore di Livello di liquidi, che unito ad Arduino, e ad un sistema di trasmissione dati, può essere usato per monitorare il livello di un liquido in un serbatoio.Come si legge sullo shop online (il più grande di tutti, e non faccio nomi), il sensore con galleggiante ha una struttura in acciaio inox 316, ed è adatto per carburante, acqua, cherosene, prodotti chimici e molti altri tipi di liquido, senza introdurre impurità.
Per l'installazione ci sono 5 fori standard SAE, ed è completo di flangia di montaggio e guarnizione di tenuta.
La prima prova è stata fatta con un semplice tester, misurando la resistenza ai capi del sensore.
Il sensore non ha una indicazione lineare e continua della posizione del galleggiante, ma ha 11 step resistivi fissi, che consentono comunque di capire i1 livello del liquido con una precisione sufficiente a quasi tutte le applicazioni.
Muovendo il galleggiante lungo tutta la corsa, iniziando dal punto piu' alto, per poi scendere, si rilevano i seguenti valori di resistenza (ohm): 190, 171, 152, 133, 114, 95, 76, 57, 38, 19, 0 .
I due terminali del sensore sono stati connessi uno a GND, ed uno al pin A0 di Arduino, insieme ad un pullup da 200ohm, cosa che crea un partitore di tensione, con una tensione in ingresso all'ADC pari a circa 2,5v con il galleggiante in alto, che scende a 0volt con il galleggiante tutto in basso.
Arduino con una semplice istruzione ci restituisce un numero intero che indica il livello del liquido.
Il sensore viene venduto con aste di diverse lunghezze, che vanno da 100 a 600mm.
La prova è stata fatta sul modello da 175mm, che ha una corsa netta di circa 140mm, pari a una risoluzione di 13/14mm per ogni step.
Caricando lo sketch presente negli "esempi", "AnalogInOutserial.ino" , possiamo immediatamente leggere sul terminale un valore numerico che ci indica in qualche modo la posizione del galleggiante.
Da qui in poi la strada è tutta in discesa, ed è semplice usare il numero risultante, comunicandolo nel modo che si preferisce, tipo LoRa, oppure come nel mio caso, via SMS utilizzando una scheda Sim900.
Questi sono i valori di ADC rilevati muovendo il galleggiante con le istruzioni:
sensorValue = analogRead(analogInPin);
Serial.println(sensorValue);
step 10: 502 bit
step 9: 459 bit
step 8: 408 bit
step 7: 385 bit
step 6: 360 bit
step 5: 326 bit
step 4: 288 bit
step 3: 246 bit
step 2: 199 bit
step 1: 111 bit
step 0: 2 bit
Per evitare false indicazioni ho impostato tante soglie, all'incirca a metà tra due valori adiacenti
const int Soglia10 = 480 bit ;
const int Soglia9 = 433 bit ;
const int Soglia8 = 396 bit ;
const int Soglia7 = 372 bit ;
const int Soglia6 = 343 bit ;
const int Soglia5 = 307 bit ;
const int Soglia4 = 267 bit ;
const int Soglia3 = 222 bit ;
const int Soglia2 = 155 bit ;
const int Soglia1 = 56 bit ;
A questo punto lo sketch risulta molto semplice, nel loop mettiamo una serie di if ed esle if:
if (sensorValue > Soglia10){
Serial.println("Il livello è oltre lo step10");
}
else if (sensorValue > Soglia9){
Serial.println("Il livello è oltre lo step9");
}
else if (sensorValue > Soglia8){
Serial.println("Il livello è oltre lo step8");
}
else if (sensorValue > Soglia7){
Serial.println("Il livello è oltre lo step7");
}
else if (sensorValue > Soglia6){
Serial.println("Il livello è oltre lo step6");
}
else if (sensorValue > Soglia5){
Serial.println("Il livello è oltre lo step5");
}
else if (sensorValue > Soglia4){
Serial.println("Il livello è oltre lo step4");
}
else if (sensorValue > Soglia3){
Serial.println("Il livello è oltre lo step3");
}
else if (sensorValue > Soglia2){
Serial.println("Il livello è oltre lo step2");
}
else if (sensorValue > Soglia1){
Serial.println("Il livello è oltre lo step1");
}
else {
Serial.println("Il livello è inferiore allo step 1");
}
Ovviamente, oltre al Serial.print, nei vari if ci possiamo mettere qualsiasi cosa, tipo attivazione di rele', cicalini, invio di messaggi sms, o quant'altro.
I banner pubblicitari contenuti in questa pagina sono noiosi, ma ci consentono di pagare le spese del server. Se clicchi su uno di essi, contribuirai anche tu al mantenimento del sito. GRAZIE


Categorie Articoli
Corso-di-elettrotecnica-ed-elettronica-3-volumi
Libro-tutto-sull-audio---inglese
Libro-ELETTRONICA-FONDAMENTALE
Dove-acquistare-abbigliamento-risparmiando
Come-vedere-le-partite-sullo-smartphone
Come-difendersi-dagli-allegati-pericolosi-nelle-email
KEEPASS-un-posto-sicuro-per-le-nostre-PASSWORD
I-3-trend-estivi-del-2020-scopri-i-tagli-che-ti-stanno-meglio
Ultimi articoli
Arduino-measures-liquid-level APRI
Arduino-misura-livello-liquidi APRI
finder APRI
LORA-english-version APRI
Pluviometro-LORA APRI
Pillole_di_Promessi_Sposi APRI
LORA APRI
promessisposi-riscrittura APRI
Arduino_crashes APRI
Arduino_si_blocca APRI
Arduino_e_Trenino APRI
millis_no_overflow APRI
millis APRI
Arduino_millis_no_Overflow APRI
millis APRI
Impara-Giocando APRI
Corso-di-elettrotecnica-ed-elettronica-3-volumi APRI
Libro-tutto-sull-audio---inglese APRI
Libro-ELETTRONICA-FONDAMENTALE APRI
Il-timer-NE555 APRI
Audio-Handbook APRI
bottiglia-solare-per-illuminare-le-case APRI
Calcolare-la-rata-di-un-prestito APRI
I-Distillatori-solari APRI
Camino-Solare-per-raffrescare-le-case APRI
pcb APRI
Essiccatori-solari APRI
Come-difendersi-dagli-allegati-pericolosi-nelle-email APRI
KEEPASS-un-posto-sicuro-per-le-nostre-PASSWORD APRI
Video-marketing-il-futuro-del-digital APRI