Insolito utilizzo di un HC-SR04

Buongiorno a tutti,

vorrei porre alla vostra attenzione un mio dubbio, riguardante un differente utilizzo di un HC-SR04.

Invece di misurare distanze, avrei la necessita di riconoscere un determinato materiale su cui il sensore emette la propria portante. Avevo dunque pensato di capire se fosse possibile permettere al SR04, di riconoscere, tramite analisi di una variazione di riflessione dell'ultrasuono emesso.

Essendo che ogni materiale ha un proprio comportamento relativo alla riflessione/rifrazione d'onda, pensavo fosse possibile utilizzarlo per riconoscere un determinato materiale rispetto ad un altro.

Nel caso conosciate sensori maggiormente adeguati a questa tipologia di utilizzo, fatemelo sapere!

Grazie a tutti!

Davide

L'SR04 ha dentro un operazionale quindi verso Arduino non hai altre informazioni diverse dalla semplice presenza (HIGH) o assenza (LOW) di un segnala di ritorno, alla frequenza di emissione del segnale (40 kHz), nel pin TRIG.

Quindi puoi solo misurare il tempo tra emissione e ricezione dell'eco o comunque presenza o meno di un suono a 40kHz (circa) ad un livello stabilito dalla soglia del trigger: niente livello del segnale, tantomeno sua frequenza o fase.

A meno di usare la capsula dell'HC-SR04 togliendola dal suo circuito ed interfacciarla con un tuo circuito apposito, non so dirti cosa possa andare.

Grazie docdoc, è proprio quello che pensavo.

Ora nella disperata ipotesi, è secondo te possibile utilizzare il tempo tra emissione e ricezione dell'eco come parametro di campionamento di un materiale?
Mi spiego: posti alla stessa distanza da un SR04 un materiale ad alta riflettanza ed uno a bassa riflettanza, hanno una variazione tale di eco (e quindi di tempo trascoro dall'emissione) da permetterne l'identificazione?

Penso di provarlo sperimentalmente ma, intanto, volevo avere un qualche parere in linea teorica se possibile.

NO, i vari HC-SRxx misurano il "tempo di volo" del segnale ... inviano un segnale ad ultrasuoni e misurano solo il tempo che esso impiega a tornare indietro (... che è proprozionale alla distanza e non all'assorbenza del materiale), NON la sua ampiezza (... che invece sarebbe proporzionale all'assorbenza), quindi no, con quei giocattolini è una misura che non fai.

Devi prendere una capsula ad ultrasuoni e costruirti tu un circuito che misuri l'ampiezza del segnale ricevuto di ritorno.
Magari esistono già fatti, ma non ne conosco e non ho idea del prezzo (... che comunque sarà propozionato a quello di uno strumento industriale).

Guglielmo

davideerio97:
Mi spiego: posti alla stessa distanza da un SR04 un materiale ad alta riflettanza ed uno a bassa riflettanza, hanno una variazione tale di eco (e quindi di tempo trascoro dall'emissione) da permetterne l'identificazione?

Il tempo di riflessione dipende solo dalla velocità del suono (che a sua volta dipende dalla pressione e in minima parte anche dalla temperatura dell'aria) non dal tipo di materiale che ha generato l'eco. La sua ampiezza ossia il livello dell'eco potrebbe dipendere dal tipo di materiale o superficie (e dall'orientamento) ma comunque con gli SR04 non puoi misurare questa ampiezza per i motivi che ti ho indicato prima, mi spiace.

gpb01:
i vari HC-SRxx misurano il "tempo di volo" del segnale ...

Per la precisione (so che tu lo sai, ma è solo per chiarirlo a chi legge), non sono gli SR04 (o SRF05) che misurano il tempo di volo, ma "con" gli SR puoi misurare il tempo di volo su Arduino in base al primo fronte ricevuto sul pin TRIG che indica la presenza di un eco a 40 kHz rilevato dalla capsula :wink:

Grazie Gugliemo e docdoc per le chiarissime e puntali delucidazioni.
Dovrò optare per un altra soluzione a questo punto.

docdoc:
IPer la precisione (so che tu lo sai, ma è solo per chiarirlo a chi legge), non sono gli SR04 (o SRF05) che misurano il tempo di volo, ma "con" gli SR puoi misurare il tempo di volo su Arduino ...

Si, vero, sono un po' più stupidi dei MaxBorix (MaxSonar) che invece danno direttamente il valore della distanza facendo loro tutti i calcoli :wink:

Guglielmo