Rilevare Frequenza suoni

Ciao a tutti, vorrei rilevare delle frequenze audio usando un microfono con arduino,ho trovato un programma nel forum che però non mi funziona.Vorrei anche saper se serve una determinata tipologia di microfono.

Benvenuto. Essendo il tuo primo post, nel rispetto del regolamento, ti chiediamo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il su citato REGOLAMENTO... Grazie.
Qui una serie di link utili, non inerenti al tuo problema:

Grazie, ho appena finito di presentarmi :slight_smile:

...... se serve una determinata tipologia di microfono

Più che altro serve un circuitino di amplificazione, un microfono, da solo, eroga molto poco

brunello22:
Più che altro serve un circuitino di amplificazione, un microfono, da solo, eroga molto poco

Non solo, deve anche rendere il segnale sinusoidale SOLO positivo visto che sugli ingressi di Arduno NON si possono inviare tensioni negative :wink:

Guglielmo

Grazie mille, io ho a disposizione un microfono della dfrobot 0034( già amplificato) e un sensore di vibrazione a disco piezoelettrico sempre della df .con il microfono riesco solo a rilevare l' intensità del suono, mentre con il disco piezoelettrico rilevo dei valori quando lo muovo con le dita, altrimenti sia con rumore o voce mi da 0. Ho utilizzato la analogRead che so non è il comando giusto, ma altrimenti non trovo programmi che non mi diano errori.So veramente poco sulla frequenza :slightly_frowning_face:

... peccato che per misurare la frequenza devi usare un pin "digitale" e quindi ti serve un microfono amplificato che dia in uscita un segnale compreso tra 0 e ALMENO 3.3V o il pin digitale NON rileverà mai il passaggio da 0 a 1 e non potrai mai misurare una frequenza.

Ma tu esattamente COSA devi fare ?

Guglielmo

principalmente dovrei riconoscere il fischio, da un battito di mani. però mi servirebbe leggere e acquisire le frequenze del suono in modo da aggiungere altri suoni da riconoscere successivamente. Sarebbero degli interruttori vocali praticamente

potreste aiutarmi, é un progetto importante di scuola, é da tanto che ci sto dietro ma non riesco a proseguire

... NON credo che con Arduino sia cosa fattibile ... quello che puoi fare, al massimo, è riconoscere il "numero di battiti di mano" ed eventualmete per due battiti fare una cosa, per tre un'altra e quattro un'altra ancora, ma arrivare a separare le funzioni in baso a fischi, battiti di mano e altro, NON la vedo fattibile.

Altrimenti, prendi una bella Easy VR 3, che è in grado di discriminare un certo numero di parole e collega quella ad Arduino attraverso l'apposito shield.

Guglielmo

Vedi se questa libreria ti serve...

>paulus1969: ... e pensi che io non la conoscessi? :smiling_imp: Se non l'ho suggerita è perché lui NON ha un "segnale" di cui deve misurare la frequenza, ma un qualche cosa di cui deve fare un'analisi (... ad esempio analizzando l'inviluppo, ecc. ecc.) ... o pensi veramente di distinguere un battito di mani, un fischio, una serie di parole, ecc. ... dalla sola frequenza (... ammesso che riesci a misurarla) ? ? ?

Guglielmo

Potrebbe usarla per rilevare le frequenze di fischi diversi.
Meglio di niente :slight_smile:

Guarda, la cosa migliore è la suddetta Easy VR 3 ... e fa proprio il riconoscimento di comandi vocali :wink:

Altrimenti il classico "clap clap" e riconosce i battiti di mani :smiley:

Guglielmo

Potresti provare questa libreria, mai usata da me però

C'era anche un altro progetto su coolarduino ma il sito è giù e le pagine su Archive.org non hanno conservato anche lo sketch che era su Google Drive.