Ignorer et passer au contenu
FREE CA & US Shipping for CAD$89+ Orders | FREE CA Shipping on Applicable Products

Tutoriel n°6 : Réaliser « The Clapper » avec le capteur de son numérique

Introduction

Le battant

Si vous avez vécu dans les années 90, vous vous souvenez probablement de « The Clapper ». Ils avaient une publicité très accrocheuse… «Clap ON, Clap OFF. Le Claqueur ! » . Depuis, j'ai toujours un Clapper qui fonctionne et, jusqu'à récemment, je l'utilisais régulièrement ! Dans ce tutoriel, nous allons créer une version plus simple du Clapper en utilisant le capteur de son numérique . Ce didacticiel s'appuie fortement sur les détails du didacticiel précédent. Donc, si ce n'est pas encore fait, je vous encourage à consulter le débuter avec le capteur de son numérique Didacticiel. La configuration physique (matériel et connexions) sera identique. Dans ce tutoriel, nous allons seulement peaufiner un peu le script pour reconnaître le moment où deux applaudissements successifs ont été détectés, ce qui allumera une LED.

Matériel requis

Le matériel est identique au tutoriel précédent, mais nous listons ici à nouveau la nomenclature.

Configuration du matériel

Idem que le tuto précédent !

  • Broche VCC du capteur à la broche 3,3 V du Nano.
  • Broche GND du capteur à broche GND du Nano.
  • Broche numérique (étiquetée « out ») sur le capteur pour analogique broche A3 sur le Nano.

Configuration du logiciel

Dans le tutoriel précédent, nous avons choisi de ne pas utiliser la seule broche numérique disponible, D13, qui se trouvait du même côté que les broches 3,3 V et GND. Au lieu de cela, nous avons décidé d'utiliser une broche analogique afin de garder D13 disponible. Ici, la raison pour laquelle nous l’avons fait apparaîtra clairement. Sans avoir à refaire le matériel et le câblage, car identique au tutoriel précédent, nous allons ici modifier un peu le script pour pouvoir détecter deux claps successifs. Une fois détecté, cela allumera la LED Nano intégrée, qui est contrôlée par la broche numérique D13 !

Le script est modifié pour détecter deux applaudissements. Certaines minuteries définissent un indicateur pour garantir le bon fonctionnement de la séquence. Le temps entre les deux applaudissements doit être au minimum de 100 ms, mais inférieur à 4 000 ms. Si le temps dépasse, réinitialisez la séquence. Il s'agissait d'une seule détection et le minuteur a expiré. Si deux applaudissements sont trop rapprochés (moins de 100 ms), le chronomètre se réinitialise simplement. J'ai constaté que parfois, lorsqu'un son est détecté, le capteur émet un groupe de déclenchement. C'est-à-dire pas seulement un seul déclencheur, mais un groupe en quelques intervalles de temps. Pour éviter tout problème potentiel, nous avons l'exigence d'une minuterie minimale de 100 ms.

Copiez simplement le script suivant dans le logiciel IDE.

 // Project title: "Tutorial: Making "The Clapper" with the digital sound sensor"
 // Date of last edit: Dec 6 2021, PTSolns
 // For bugs or questions please send us an email at contact@PTSolns.com
 // Overview: This is the script for the digital sound sensor. Set up the hardware as outlined in the tutorial.

 
int flag_clap = 0; 
int Statut_LED = 0 ; // Gardez une trace de l'état des LED
 int statusSensor = 1 ; // Sortie numérique du capteur
 minuterie longue non signée ;
 longue minuterie_min = 100 ; // Temps minimum entre le premier et le deuxième clap. Si le deuxième clap a lieu avant cette heure, ce ne sera pas le cas.
enregistrez-vous comme un deuxième clap, mais réinitialisez simplement le chronomètre du premier clap. longue minuterie_max = 4000 ; // Temps maximum entre le premier et le deuxième clap. Si le temps est écoulé, réinitialisez flag_claps void setup() { pinMode(A3, ENTRÉE); // Rappelez-vous, nous utilisons la broche analogique A3 comme broche d'entrée numérique. Aucun problème! pinMode(LED_BUILTIN, SORTIE); // LED intégrée } boucle vide() { statusSensor = digitalRead(A3); if (statusSensor == 0 && (flag_clap == 0 || flag_clap == 1)) { // Entrez la boucle IF uniquement lorsque le premier clap est détecté. flag_clap = 1 ; // Premier coup détecté minuterie = millis(); // Démarre le chronomètre } if (flag_clap == 1 && ((millis() - timer) > timer_min)) { // Si le premier clap est détecté et que le temps minimum s'est écoulé. flag_clap = 2; // Prêt à accepter le deuxième applaudissement. } if (flag_clap == 2 && ((millis() - timer) > timer_max)) { // J'ai attendu trop longtemps ! Réinitialiser flag_clap = 0; } if ((statusSensor == 0) && (flag_clap == 2)) { // Si clap est détecté et flag_clap est prêt flag_clap = 0; // Réinitialise le drapeau pour le prochain tour if (LED_status == 0) { // Signifie que la LED est actuellement éteinte, alors allumez-la Statut_LED = 1 ; digitalWrite(LED_BUILTIN, HAUT); } else if (LED_status == 1) { // Signifie que la LED est actuellement allumée, donc éteignez-la Statut_LED = 0 ; digitalWrite(LED_BUILTIN, FAIBLE); } retard (500); // Nécessite un petit délai entre l'allumage et l'extinction de la LED, sinon la séquence d'applaudissements est confuse. } }

Résultats et conclusion

La vidéo montre plusieurs choses. Tout d'abord, la LED de déclenchement verte du capteur sonore s'allume momentanément lorsque le claquement est détecté. Au total, tout au long de cette vidéo, cette LED de déclenchement s'allume quatre fois. De plus, la LED rouge intégrée (contrôlée par D13) s'allume après les deux premiers applaudissements, puis s'éteint après les deux applaudissements suivants. C'est un peu difficile à voir car la LED d'alimentation intégrée, qui est également rouge, se trouve juste à côté de la LED contrôlée par le D13 que nous commutons. Mais si vous regardez attentivement, vous pouvez distinguer quelle LED correspond à quelle LED.

Ce tutoriel n'a réalisé qu'une version simple du clapet original. Le clapet d'origine n'allumait pas seulement une LED. Il a allumé un relais qui alimentait une prise. C'est bien plus pratique ! Mais nous présentons ici uniquement la preuve de concept. Vous pouvez ajouter le relais et vous amuser avec. Mais prenez les précautions nécessaires lorsque vous manipulez des appareils électroniques qui traitent des tensions et des courants domestiques !

De plus, le clapet dispose de deux sorties. Le premier est allumé avec deux applaudissements et le second avec trois. Vous pouvez facilement développer le script ci-dessus pour ajouter la détection du troisième clap. Enfin, le clapper dispose également d'une fonction « Absent ». C'est fondamentalement la même chose que le potentiomètre du capteur sonore. Tourner la molette « Away » sur le clapet décale le seuil de détection, ce qui rend l'appareil très sensible au bruit. Alors voilà !

<style>

code{

taille de police : 13 px ;

}

</style>