Créer un son avec une arduino

Bonjour à tous, j'ai quelques connaissances en programation arduino et en électronique et j'aimerai savoir si il est possible de générer des sons avec une arduino.

Je ne parle pas de sons carré comme ceux des tutoriels mais de courbes arrondies (comme celle d'un instrument voir même sinusoïdal). J'ai fait quelques recherches sur internet, notament pour pouvoir sortir des tensions précises et j'ai vu que l'arduino ne peut pas mais peut sortir des signaux PWM, ce qui n'est pas correct (la courbe n'est plus une courbe sinusoïdal par exemple mais une variation de fréquences).

J'ai alors pensé que pour sortir une tension, il était possible de créer un circuit prenant un certains nombres de sorties arduino et mettrait un poids (avec des résistances différentes en parrallèle) sur chacune (principe de la numérisation mais en sens inverse).

Un tel circuit doit être possible mais la question que je me pose est quelle fréquence max peut sortir l'arduino, sachant qu'il faut un minimum de deux fois la fréquence du son pour que celui-ci soit différenciable.

Toute aide est la bienvenue, bonne après-midi à tous.

Bonjour UnNainConnu

UnNainConnu:
....
J'ai alors pensé que pour sortir une tension, il était possible de créer un circuit prenant un certains nombres de sorties arduino et mettrait un poids (avec des résistances différentes en parrallèle) sur chacune (principe de la numérisation mais en sens inverse).
....

Vous voulez parler de CNA à base de réseau R2R?

Cordialement,
bidouilleelec

Tu peux aussi utiliser un AD9833 ou un AD9850, générateurs de signaux commandables par un ARDUINO.

Je connais deux projets :

http://www.vwlowen.co.uk/arduino/AD9833-waveform-generator/AD9833-waveform-generator.htm

http://www.vwlowen.co.uk/arduino/AD9850-waveform-generator/AD9850-waveform-generator.htm

Ou un DAC MCP4725

MCP4725 : I2C

Pour générer des sons ça pourrait être suffisant.

C'est possible avec un ESP32 qui dispose d'un DAC 8 bits. Il est possible de produire un son avec un ampli audio et un haut-parleur

Adafruit produit un ampli audio I2S pour un son de meilleure qualité. J'ai vu un projet où le son est généré par Audacity, échantillonné à 8kHz et stocké dans un fichier, lu ensuite par l'ESP. Les commandes sur l'ESP sont simples (les GPIO du DAC sont 25 et 26) :

for (z=0 ; z<size ; z++)
 {
      dacWrite(25,buffer[z]);  
      delayMicroseconds(125);        // 8kbit/s period 
 }

il faut un minimum de deux fois la fréquence du son pour que celui-ci soit différenciable./quote]

Je dirais plutôt quatre.

Ci-dessous un graphique représentant le champ auditif humain (vert) et la zone conversationnelle (vert foncé).

La courbe inférieure représente la courbe des seuils de perception de l'oreille humaine en parfait état. Pour chaque fréquence, le seuil de perception est différent : les fréquences les mieux perçues (la courbe avoisine le 0 dB) se situent dans la gamme moyenne entre 1 et 3 kHz. C'est aussi dans cette gamme que la dynamique de sensation est la plus grande (de 0 à 130 dB). La courbe supérieure représente la limite des intensités perceptibles. Notons qu'au delà de cette courbe il y a danger pour l'oreille interne (cochlée).


(source : cochlea.org)

Donc un échantillonnage autour de 8 à 12kHz est correct.