< Kidule Dé
fin de la boite de navigation du chapitre

Maintenant, tu vas pouvoir faire des petits sons avec ton Kidule.

Sur le Kidule pic, il y a un buzzer (petit haut parleur).

Si on l'allume et l'éteint suffisamment rapidement (de 20 fois par seconde à 20'000 fois par seconde), on entend un son. Tu entends le son le plus bas que tu puisse entendre (20Hz) et le plus aigu (20'000Hz).

Pour cela, on va utiliser la même solution que l’on a utilisée pour faire clignoter: compter un certain nombre de fois que l’on entre dans la fonction et changer l'état du buzzer.

On va mettre tout ce qui est nécessaire dans GererSon

Dans FaireSon(), on met tous les paramètres du son. ATTENTION: il ne faut appeler FaireSon() qu'au début du son. Si on l'appelle tout le temps, ça ne fera pas l'effet voulu, car on recommencera tout le temps le son.

#include "HardwareDe.h"


int  noBoucleSon = 0;
int  periodeSon = 100;
int  incrementPeriodeSon = 1;
long LongueurBip = 40000;

void GererSon()
{
   noBoucleSon++;

   if (LongueurBip > 0) {
      if (noBoucleSon > periodeSon) {
         noBoucleSon = 0;
         periodeSon += incrementPeriodeSon;
         Buzzer = ! Buzzer;
      }
      LongueurBip--;
   }   
   else {
      Buzzer = 1;
      noBoucleSon = 0;
   }
}

void FaireSon()
{
   periodeSon = 100;
   incrementPeriodeSon = 1;
   LongueurBip = 200000;
}

byte DejaPresse = FALSE;

void loop()
{
   if (Poussoir == Presse){
      if (! DejaPresse){
         DejaPresse = TRUE;
         FaireSon();
      }
   }
   else {
     DejaPresse = FALSE;
   }
   
   GererSon();  
}

Exercice 1

Essaie de mettre incrementPeriodeSon à -10 et periodeSon à 2000

écoute le nouveau son que ça fait

Maintenant tu es prêt pour finaliser ton jeu d'adresse sonore

Cet article est issu de Wikiversity. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.