KY-037, dubbi sull'uscita analogica

Buongiorno a tutti,

Ho appena acquistato una decina di KY-037, sensori acustici che dovrebbero generare un segnale digitale di superamento soglia (regolabile) e un uscita analogica con il segnale rilevato.

Il problema è proprio quest'ultimo. L'uscita analogica viene riproposta all'uscita del sensore senza alcuna amplificazione, pertanto il risultato di un analogRead() non genera nessuna apprezzabile variazione del valore rispetto al "silenzio". Battendo le mani, battendo sul tavolo, schioccando le dita, parlando... nulla di significativo! L'unico modo per ottenere uno scostamento apprezzabile dell'output è soffiando nel microfono o comunque applicando una "pressione fisica" importante.

La domanda è... sbaglio qualcosa io ?
Il segnale analogico in uscita deve per forza essere amplificato per avere qualche utilità ?

Grazie in anticipo

Buongiorno,
essendo il tuo primo post nella sezione Italiana del forum, nel rispetto del regolamento di detta sezione (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il su citato REGOLAMENTO. Grazie.

Guglielmo

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

Buongiorno,

Come da regolamento mi sono presentato nell'apposito thread!

Hai un oscilloscopio? Di che ampiezza stiamo parlando? E ... stiamo parlando di un segnale che è comunque sempre sopra la linea dello zero vero (Arduino NON accetta in ingresso tensioni negative)?

Guglielmo

This same happen with me also but I have adjusted sensitivity (the Nut provided in the sensor) and connected A0 pin except of D0.
Request you to kindly share the code as well so that if there any problem in the code so will tell you accordingly

int digitalPin = 3;
int analogPin = A0;
int delaytime = 100;

void setup() {
  Serial.begin(9600);
}

void loop() {
  checkAnalog();
}

void checkAnalog() {
  static int maxA = 0;
  static int minA = 1023;
  int aValue = 0;
  float volts;
  float maxvolts;
  float minvolts;

  aValue = analogRead(analogPin);
  if (aValue < minA) {
    minA = aValue;
  }
  if (aValue > maxA) {
    maxA = aValue;
  }
  volts = (aValue * 5.0) / 1024.0;
  minvolts = (minA * 5.0) / 1024.0;
  maxvolts = (maxA * 5.0) / 1024.0;

  Serial.print("A = ");
  Serial.println(aValue, DEC);
  Serial.print(" Max = ");
  Serial.println(maxA);
  Serial.print(" Min = ");
  Serial.println(minA);
  Serial.print(" volts = ");
  Serial.println(volts);

  delay(delaytime);
}

@krishna_agarwal: You are in the ITALIAN section of the forum ... or you write in Italian or, I'm sorry, your next post will be removed.

Guglielmo

Grazie per la risposta!

Si l'oscilloscopio ce l'ho,
A meno di soffiare sul microfono la lettura del pin analogico si sposta tra 510 e 515, praticamente rumore di fondo!
Le tensioni non sono negative, il segnale microfonico è centrato sui 2.5V (si può regolare tramite il potenziometro a bordo del sensore).

Prova a leggere QUESTO articolo ... comunque .. c'è poco da fare, quelle breakout board sono poco più che dei giocattoli ... :roll_eyes:

Dovresti probailmente aggiungere un operazionale ed amplificare il segnale ...

Guglielmo

Oh, scusa me ne ero dimenticato mentre stavo rispondendo a un'altra risposta di argomento, quindi ho dimenticato che questa è una sezione italiana
Grazie che me lo ricordi
E in futuro lo terrò a mente :disappointed:

1 Like

Ti ringrazio molto,

Hai confermato quello che già temevo!

Ho visto alcune board, senza comparatore che si limitano ad amplificare il segnale microfonico con MAX9814, MAX4466 e simili. Dovrò ripiegare su quelle temo!

Non ho testato il MAX9814, ma il MAX4466 si e avrai gli stessi problemi che hai ora. Dovrai amplificare il segnale come dice @gpb01.
Cerca su google ottieni decine di schemi. Anche se se preferisci usare una scheda già assemblata io uso il MAX4410, è un lusso per queste cose.
Saluti.

Grazie! Qualcosa del genere ?

https://fr.aliexpress.com/item/1005004132409979.html?spm=a2g0o.productlist.0.0.52686732Ra8hq5&algo_pvid=8c332231-1bb1-41a5-81bf-5d6f3932bc34&algo_exp_id=8c332231-1bb1-41a5-81bf-5d6f3932bc34-8&pdp_ext_f={"sku_id"%3A"12000028140522576"}&pdp_pi=-1%3B2.49%3B-1%3B0.98%40salePrice%3BEUR%3Bsearch-mainSearch

Mi permetterebbe anche di calibrare con precisione le amplificazioni dei singoli rilevatori!

Tra l'altro, essendo stereo, secondo voi posso utilizzare una scheda per due rilevatori ?

Sì, ho proprio quella scheda montata in un piccolo progetto e funziona perfettamente.
E sì, puoi amplificare due segnali essendo stereo, ma non individualmente. Notare che il potenziometro che ha è doppio, con un solo asse, quindi la percentuale di amplificazione è la stessa per entrambi i segnali, dovresti rimuovere quello e cambiarlo per due, uno per ogni segnale.
È un po' complicato, ma hai quest'altra scheda:
https://it.aliexpress.com/item/4000107193773.html
È esattamente lo stesso e ti consentirà di rendere più comodamente le connessioni di ingresso / uscita.

Grazie per le informazioni,

Quest'ultima scheda però non è regolabile in amplificazione, giusto ?

E' la stessa scheda della precedente, solo che non ha il doppio potenziometro, bisogna aggiungere un potenziometro per canale per avere una regolazione della potenza indipendente per ogni sensore se necessario.

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