Comment faire un instrument avec l'Arduino

L'Arduino vous permet d'aller au-delà de la lecture d'un son - vous créez votre propre instrument, semblable à la Theremin. La Theremin

Sommaire

, nommé d'après son inventeur L # 233 sur Theremin, a été l'un des premiers instruments électroniques, développés dans les années 1920. Il a travaillé en détectant le champ électromagnétique des mains du joueur de changer signaux: d'une part pour le volume et l'autre pour le tangage.

Le croquis PitchFollower

Dans cette esquisse, vous découvrirez comment faire un Theremin budgétaire en utilisant un piezo comme un capteur de lumière pour contrôler la hauteur.

Tu as besoin:

  • Un Arduino Uno

  • Une maquette

  • Un piézo

  • Un capteur de lumière

  • Une résistance 47k ohms

  • Fils de saut

Ce circuit comprend deux moitiés séparées, l'élément piézoélectrique et le circuit de capteur de lumière. Le piézo est câblé comme dans l'esquisse toneMelody, avec un fil à la broche numérique 8 et l'autre à GND.

image0.jpg


Le capteur de lumière est connecté en analogique sur un côté 0 et 5V de l'autre- 4.7K la résistance est connectée entre 0 et la masse analogique.

image1.jpg

Compléter le circuit, et ouvrir l'esquisse en choisissant File-exemples-02.Digital-tonePitchFollower.

/ * Pitch followerPlays un terrain qui change en fonction d'un inputcircuit analogique changer: * haut-parleur de 8 ohms sur la broche numérique 8 * photorésistance en mode analogique 0 à résistance 5V * 4.7K en mode analogique 0 à groundcreated 21 janvier 2010modified 9 avril 2012by Tom IgoeThis exemple de code est dans la domain.http publique: configuration //arduino.cc/en/Tutorial/Tone2*/void () {// initialiser les communications série (uniquement pour le débogage): Serial.begin (9600) -} void loop () { // lire le capteur:int sensorReading = analogRead(A0) - // imprimer le capteur de lecture de sorte que vous savez sa gammeSerial.println(sensorReading) - // la carte du terrain de la gamme de l'entrée analogique .// changer le nombre minimal et d'entrée maximales ci-dessous // fonction de la gamme de de dons de votre capteur:int thisPitch = carte(sensorReading, 400, 1000, 100, 1000) - // jouent le terrain:ton(8, thisPitch, 10) -retard(1) - // retard entre deux lectures de la stabilité}

Après avoir trouvé le croquis, appuyez sur le bouton de compilation pour vérifier le code. Les erreurs de syntaxe tourner la boîte de message en rouge quand ils sont découverts, et vous verrez un message d'erreur indiquant ce qui est faux.

Si l'esquisse compile correctement, cliquez sur Télécharger pour télécharger l'esquisse à votre conseil. Lorsque cela est fait le téléchargement, vous devriez avoir un capteur de lumière qui va changer le ton de votre buzzer. Si vous ne entendez tout changement, assurez-vous que vous allumez une lampe de bureau sur plus de votre maquette. Cela aidera à augmenter la différence quand vous couvrez le capteur de lumière avec votre main.

Si rien ne se passe, vous devriez vérifier votre câblage:

  • Assurez-vous que vous utilisez le numéro d'identification correcte pour les entrées et sorties.

  • Vérifiez que votre piézo est tourné dans le bon sens. Symboles peuvent être cachés sur le dessous si elles ne sont pas visibles.

  • Vérifiez les connexions sur la carte de test. Si les fils de saut ou des composants ne sont pas connectés en utilisant les lignes correctes dans la planche à pain, ils ne fonctionneront pas.

La répartition croquis PitchFollower

Cette esquisse convertit directement les lectures du capteur de lumière à une fréquence plutôt que d'exiger une table de consultation. Cela signifie que vous pouvez faire glisser entre les notes ainsi que de choisir eux individuellement.

Dans la configuration, le port série est ouvert pour vous permettre de surveiller les lectures du capteur comme elles viennent.

void setup () {// initialiser les communications série (uniquement pour le débogage): Serial.begin (9600) -}

Dans la boucle principale, le capteur de lumière est lu de la broche analogique 0. Cette lecture est également transmise sur le moniteur de série.

void loop () {// lire le capteur:int sensorReading = analogRead(A0) - // imprimer le capteur de lecture de sorte que vous savez sa gammeSerial.println(sensorReading) -

Pour convertir la gamme du capteur à la gamme de fréquences que le buzzer peut couvrir, vous utilisez le carte fonction.

 // Cartographier le terrain de la gamme de l'entrée analogique .// changer le nombre minimal et d'entrée maximales ci-dessous // fonction de la gamme de de dons de votre capteur:int thisPitch = carte(sensorReading, 400, 1000, 100, 1000) -

La fonction de tonalité délivre alors la note avec la valeur du capteur cartographiées et une durée très courte de 10 millisecondes. Cette durée sert à rendre le son audible, mais la durée réelle sera déterminée par combien de temps vous maintenez votre main sur le capteur, comme décrit précédemment.

 // Joue le terrain:ton(8, thisPitch, 10) -

Enfin, un petit retard se produit à la fin de la boucle pour améliorer la stabilité des mesures.

 retard(1) - // retard entre deux lectures de la stabilité}

Avec cette configuration, vous pouvez rapidement faire un contrôleur facile et peut-être même former un groupe Theremin voyagez avec vos amis.


» » » » Comment faire un instrument avec l'Arduino