Sortir tension continue arduino uno

Bonjour a tous,
nous sommes nouveaux sur ce forum car nous débutons en électronique.
Nous sommes 2 étudiants en prépa scientifique et venons chercher votre aide pour notre tipe.
Je m'explique : nous essayons d'associer des couleurs a des sons uniques.
Pour cela, nous obtenons grâce a un capteur des valeurs RGB. Ensuite, théoriquement nous avons associé chaque couleur détectée a une fréquence sonore.

Nous souhaiterions donc utiliser le VCF de notre GBF (du labo), afin de moduler le son.

Ce VCF doit être alimenté par une tension continue. Pourriez vous nous aider, nous indiquer, comment sortir une tension continue de notre carte Arduino UNO comprise entre 0 et 5V, s'il vous plait ?
Nous avons essaye tout ce à quoi nous avons pensé mais rien n'aboutit :frowning:
Merci de votre aide

Bonjour,

La UNO ne possède pas de DAC. Il faut soit utiliser un DAC externe, soit l'une des sorties PWM et appliquer un filtrage sur le signal pour en faire une tension continue.

Par curiosité, à quoi aviez-vous pensé qui n'a pas abouti?

bonjour fdufnews,

Si la UNO ne possede pas de DAC, ou pouvons nous nous en procurer 1 et comment cela marche ? Comment appliquer un filtrage ?

Nous avons essaye d'utiliser en vain le PWM avec la broche 9 quitte a prendre des sons de basse frequence ( pour avoir frequence du PWM>> frequence du son de sortie)
Nous avons egalement testé avec la sortie 8 ( experience en cours ) mais on reste soit à 0V soit à 5V :smiling_face_with_tear:

Merci de votre reponse

Avez vous essayé de faire une petite recherche ? Ça fait partie des compétences à acquérir durant le TIPE…

Idem pour le DAC ….

Les Arduinos possèdent non pas des VCF, mais des oscillateurs commandés par des nombres. On donne la valeur numérique et on obtient en sortie un signal de fréquence commandé.

Au lieu de prendre le nombre, de le transformer en tension et de le mettre sur un à trois GBF, on met le nombre dans le PWM et la broche de sortie donne le son. Par contre le son est un signal rectangulaire et pas sinusoïdal.

Pour avoir un seul son, c'est d'ailleurs prévu par la fonction tone. Mais je pense qu'elle s'interrompt lors de la lecture des capteurs de couleurs.

Pour avoir trois sons, on peut utiliser les sorties PWM hard des Arduinos. C'est un peu plus compliqué car la fonction prévue (analogWrite) ne permet pas de choisir la fréquence, mais seulement le rapport cyclique. Pour choisir la fréquence avec un rapport cyclique de 50%, il faut programmer directement les registres, ou trouver une bibliothèque adéquat. On économise alors 3 GBF, mais le signal est carré en sortie.

Bonjour,

A ce titre, les ESP32 permettent trés facilement je pense de générer des signaux PWM à fréquence et rapport cyclique variables (sans toucher à des registres).

Piste à explorer peut-être.

Oui - attention aux exemples que l’on trouve un peu partout, ils s’appliquent souvent à la version précédente des APIs espressif.

Cf les changements sur LEDC :

Le PWM ce n'est pas pour générer le son mais pour générer la tension continue. Le rapport cyclique du signal fait varier la valeur moyenne de la tension générée après filtrage. Comme le dit @J-M-L qui m'a coupé l'herbe sous le pied, car il a dû se lever plus tôt que moi, une recherche sur net avec les mots clés "PWM filtrage" devrait donner quelques solutions.

Si j'ai bien compris vous voulez générer une note en fonction des 3 composantes RGB.
La fonction tone() de la libraire Arduino permet de générer une note voir si cela peut vous aider si l'usage du GBF n'est pas imposé. Éventuellement, voir ici les limitations de cette solution

Pour générer une tension continue il y a les réseaux R-2R qui sont a la base des DACs.
Il peuvent se faire avec des composants discrets. Avec un registre a décalage pour les commander il peuvent avoir le pas que l’on veut et il n’a plus besoin de filtrage.
En prepa faire une recherche sur le sujet est un bon exercice didactique d’autant que la documentation est pléthorique pour peu que l’on se donne le mal de chercher.