Aller au contenu

Kidule Dé/Un peu de bruit

Leçons de niveau 15
Une page de Wikiversité, la communauté pédagogique libre.
Début de la boite de navigation du chapitre
Un peu de bruit
Icône de la faculté
Chapitre no 7
Leçon : Kidule Dé
Chap. préc. :Première version d'un petit chenillard
Chap. suiv. :Jeu d'adresse sonore
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « Kidule Dé : Un peu de bruit
Kidule Dé/Un peu de bruit
 », n'a pu être restituée correctement ci-dessus.

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();  
}

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