HC-SR04 Rilevare fluttuazioni

Ciao,
sto usando un HC-SR04 per rilevare il livello di acqua in una tanica.
Il carico della pompa e lineare.
Sto cercando una funzione che determina se la lettura è lineare o se la superficie fluttua.
Ho provato ad usare intepolation.lib ma è difficile da configurare.
Qualcuno sa se ci sono progetti simili?

Buonasera e benvenuto nella sezione Italiana del forum,

cortesemente, come prima cosa, leggi attentamente il REGOLAMENTO di detta sezione, (prestando molta attenzione al punto 15), dopo di che, come da suddetto regolamento, fai la tua presentazione NELL'APPOSITA DISCUSSIONE spiegando bene quali esperienze hai in elettronica e programmazione, affinché noi possiamo conoscere la tua esperienza ed esprimerci con termini adeguati.

Grazie,

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposita discussione, nel rispetto del succitato regolamento nessuno ti risponderà (eventuali risposte verrebbero temporaneamente nascoste), quindi ti consiglio di farla al più presto. :wink:

Grazie per il consiglio
Presentazione inserita
Buona serata

Magari definisci cosa intendi per "fluttuazione"

Secondo me per fluttuazione intende rapide variazioni periodiche del livello dovute a onde sulla superficie del liquido

Ma aspettiamo lui

Ho notato infatti che spesso si pone una domanda allo OP
Poi invece di rispondere lui risponde qualcun'altro
E si prosegue così senza porsi il problema

Che sono 2
Uno che manca una "vera e chiarificatrice" rispista
due che in quel caso lo OP mancherebbe dell'educazione minima per almeno chiarire i dubbi che lui stesso genera

Io confido non sia questo il caso

Comunque la "malattia" di rispondere "in anticipo" è malattia comune
Lo ho apoena fatto anch'io, all'inizio di questo post
Me ne scuso

Ciao,
Si intendo piccole variazioni della superficie.Avendo un motore che gira a velocita costante il carico acqua dovrebbe rispettare un andamento lineare per cui la distanza diminuisce linearmente, matematicamente si puo definire come una retta y=-mx+q.
Se pero' la superficie e turbolenta il motore riduce i giri per ridurre la fluttuazione.
Per testare il PID al momento ho inserito un algoritmo semplice che cambia RPM in base alla distanza:

distance=sonar.ping_cm();
 if (distance>5){
 fdistance=distance;
 }
if (fdistance>30){
    
Target_rpm=300; }
    else{
         if(fdistance<30&&fdistance>10){ 
               Target_rpm= 200;
               }  else 
 { Target_rpm= 0;
} 
}

Per il tuning the PID come sistema discreto ho usato la frequenza di Arduino a T=0,05 sec per cui non uso delay nel codice, ma solo interrupt per l'encoder .Per i sensore a ultrasuoni ho inserito come si vede dal codice un contollo per pulire i valori a 0.
Tutto funziona come dovrebbe, mi manca l-implementazione del sensore nel caso ci siano fluttuazioni della superficie.
Spero di essere stato chiaro, se vi servono maggiori dettagli fatemi sapere.
Grazie per l'aiuto

Di che ampiezza te le aspetti, queste eventuali fluttuazioni?

Di qualche centimetro eventualmente.
La parte del sensore e solo simulata.
Ho modellato il PID ricalcolando l'inerzia del motore per la funzione di trasferimento in time domain, con l'inezia dei pesi che ho aggiunto per simulare l'inerzia della pompa, non ho attacato nessun impeller anche perche il prototipo e' da banco e alimentatore e H-bridge per lo stepper motor non erogano abbastanza corrente.

In queste condizioni non so aiutarti, mi dispiace
Seguirò con interesse, magari imparo qualcosa ancora

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.