Musique avec un composant piézoélectrique

Jusqu'à maintenant nous avons contrôlé la lumière, le mouvement et les électrons. Passons maintenant au son. Mais le son est un phénomène analogue, comment notre Arduino digital peut-il y parvenir?
Nous allons une fois encore tirer partie de la vitesse incroyable qui lui fait imiter un comportement analogique. Pour ce faire, nous allons attacher un composant piézo à un des ports digital de l'Arduino. Un composant piézo produit un clic sonore chaque fois qu'il reçoit une impulsion de courant. Si nous l'impulsons à la bonne fréquence (par exemple 440 fois par secondes pour produire la note do dièse) ces clics fonctionneront ensemble pour produire des notes.

COMPOSANTS

SCHEMA DU CIRCUIT

Schéma du circuit

MONTAGE DU CIRCUIT

Diagramme d'assemblage

Vidéo de l'assemblage.

CODE

Vous pouvez trouver ce code dans CIRC-06-code-beep.js.

var five = require("johnny-five");

five.Board().on("ready", function() {
  var val = 0;
  var piezoPin = 9;
  // Mettre le port 9 en mode PWM (modulation de largeur d'impulsion)
  this.pinMode(piezoPin, 3);
  // bip continu
  this.loop(200, function(){
      if (val){
          this.analogWrite(piezoPin, 20);
      } else {
          this.analogWrite(piezoPin, 0);
      }
      val = val ? 0 : 1;
  });
});

Note: Au moment de la rédaction, l'objet Piezo est désactivé dans Johnny-Five - aussi nous allons produire le bip piézo en accédant directement au port, cela en utilisant board.analogWrite(9,valeur).

DEPANNAGE

Pas de son

Vu la taille et la forme du composant piézo il est facile de manquer les trous qui correspondent sur la carte de prototypage. Vérifiez son positionnement.

Je n'arrive pas à réfléchir quand les notes sont jouées

Retirez juste le composant piézo pendant que vous réfléchissez, lancez le programme et replacez le. (C'est une plaisanterie, NdT).

ETENDRE LE CODE

Jetez un coup d'oeil sur piezo.js dans le répertoire de la bibliothèque de Johnny-Five pour un exemple sur la façon d'écrire des fonctions qui marchent avec la tonalité et la durée au lieu de communiquer directement avec le matériel.


Licence Common Creative. Traduction par Scriptol.fr du tutoriel en anglais d'Anna Gerber, sous la même licence. Copie et modification autorisées sous réserve de conserver cette notice y compris le lien sur la page originale.