contrôle du volume audio

Bonjour à tous

Pour une maquette de bateau navigant, pilotée par radio RC, j'utilise deux types de sorties audio, reliées à un petit ampli stéréo.

Sur le haut-parleur gauche, j'envoie un MP3
Sur le haut parleur droit, je simule le bruit du moteur diesel (via la fonction tone) en fonction de la vitesse du moteur

void simu_diesel()
{
  if (vitesse > MANCHE_MILIEU) // marche avant
  {
 diesel = map(vitesse,MANCHE_MILIEU,MANCHE_HAUT,timer_diesel_mort,timer_diesel_avant); 
  }
  else // marche arrière
  {
 diesel = map(vitesse,MANCHE_BAS,MANCHE_MILIEU,timer_diesel_arriere,timer_diesel_mort);   
  }
   
  tone(DIESEL, frequence,3);delay(1);                
  tone(DIESEL, frequence,2);delay(2);
  tone(DIESEL, frequence,1);delay(diesel);
  tone(DIESEL, frequence,3);delay(1);
  tone(DIESEL, frequence,2);delay(2);
  tone(DIESEL, frequence,1);delay(3*diesel);
}

Mon pb est que même en mettant mon lecteur MP3 au volume maximum (30) le bruit du diesel est beaucoup plus fort.

Voyez vous un moyen pour "diminuer" le volume de ma sortie "diesel" ?

Digitalwrite permet de controler le volume mais la fréquence ne me convient pas (il faudrait autour de 200 hz). Avec les contrôles de timers, je ne peux qu'augmenter la fréquence d'après ce que je comprends

Peut-être y a t-il un moyen hardware mais je n'y connais rien

merci

Extrait des messages épinglés qui SONT A LIRE.
Si tu ne veux pas que ton message aille au "bac à poubelle" du Bar demande au modérateur de le déplacer.
Lien : Report to moderator

Sujet déplacé dans la bonne rubrique.

Un bouton de volume entre la sortie tone et l'ampli ?

salut , il faut regarder dans la doc de la bibliotheque comportant la fonction tone , c' est sur qu ' une autre fonction devrait etre a disposition pour gerer la puissance de la sortie et ne pas envoyer a fond !

de plus le code que tu as poste n ' est pas complet , on ne voit pas quelles bibliotheques tu utilises .

ensuite il suffit de la moduler en fonction de la vitesse du moteur aussi ( la puissance ) , sinon il doit deja exister une bibliotheque qui peut certainement gerer la puissance de sortie du signal sonore et donc utiliser la fonction adequate de la bonne bibliotheque .

La fonction tone() module une sortie digitale en PWM (0V-5V).

A moins de trouver une librairie qui soit capable de produire un son ajustable en fréquence et amplitude (avec analogWrite()), la solution est purement hardware :

Ici j'utilise un potentiomètre entre en DFPLAYER et un ampli. Rien n'empêche de faire la même chose sur une sortie digitale d'un ARDUINO.

Par contre comme la sortie digitale produit un signal entre 0V et 5V la moyenne sera décalée (2.5V). Le potentiomètre n'appréciera pas la composante continue. Il produira des crachements lors de la manœuvre. Il faut intercaler un condensateur entre la sortie digitale et le potentiomètre.

Bonsoir à tous

Merci pour vos réponses et désolée de ne pas avoir posté au bon endroit !

hbachetti m'a soufflé une bonne solution : j'ai mis un potentiomètre entre ma sortie "DIESEL" et mon jack vers l'ampli. Celà m'a permis de régler le volume sonore au même niveau que le MP3

Pour les crachements lors de la manoeuvre je n'ai rien remarqué de spécial mais, après mesure, dans mon cas, il suffirait d'avoir une resistance de 6K et le tour serait joué !

iznobe : j'utilise la fonction tone standard avec une frequence constante de 200 hz. La simulation du son diesel est faite par cycles alternant ON, OFF sur des durées plus ou moins longues dépendant de la vitesse du bateau. Plus le bateau va vite, plus les durées sont courtes. celà marche très bien mais tone ne permet pas de régler le volume.

Il y a effectivement une librairie volume.
les premiers tests ne sont pas du tout concluants. je n'ai droit qu'au pin 5 (ou 6) et je n'entends que des crachouillis (même sur les samples fournis)

La première solution me va amplement !

Merci encore pour vos bons conseils et "Bueno arduino" à tous !

A bientôt

Isabelle