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
OPTA-FINDER-ARDUINO-COMPATIBLE APRI
whatsapp-alarm-repeater APRI
Arduino_Template_Menu_Eng APRI
Arduino_Template_Menu APRI
Power-Supply-with-Current-Control APRI
Vantaggi_Alimentatori-Controllo_Corrente APRI
Camping-La-Secca-Moneglia APRI
Safety-Relays APRI
Rele-di-sicurezza APRI
Internal-or-External-Watchdog APRI
Watchdog-interno-o-esterno APRI
Ripetitore-di-allarme-su-Whatsapp APRI
Bufala-in-crosta APRI
Home-Automation-ESPeriment APRI
ESPerimento-Domotica APRI
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