Aller au contenu

Projet musical Arduino : élément piézoélectrique et photorésistance

Projet musical Arduino : élément piézoélectrique et photorésistance

Dans ce nouveau projet musical Arduino nous allons voir comment fabriquer simplement un Theremin. Un Theremin est un instrument de musique électronique crée par le russe Lev Termen en 1917. La particularité de cet instrument est de produire de la musique sans avoir à être « touché » par le musicien.

Comment ? Découvrez-le au fil de notre article.

Dans ce nouveau tutoriel, vous allez apprendre à construire un petit Theremin, à l’aide d’un élément piezoélectrique et d’une photorésistance.

Comment ça marche ?

Un Theremin classique détecte les mouvements qu’effectue le musicien autour de l’instrument grâce à 2 antennes. Une des antennes contrôle la fréquence du son, et la deuxième le volume.

Dans notre projet, nous allons utiliser une photorésistance afin de détecter la quantité de lumière. Nous modifierons ainsi les données non pas par des antennes comme pour un Theremin classique, mais en modifiant, par nos mouvements, la quantité de lumière reçue.
Le changement de tension déterminera la fréquence de la note jouée.

Pour le réaliser, vous aurez donc besoin de :

Le montage avec la carte Arduino Uno

1.Connectez votre plaque d’expérimentation ou breadboard au power et ground

2.Ajoutez le piezo, connectez une branche au power, l’autre au ground

3.Placez une photorésistance sur la breadboard et connectez une terminaison au 5V. Connectez l’autre terminaison sur la broche analogique 0 de l’Arduino, et au ground via une résistance 10KOhm.

projet musicale Arduino theremin

Le code Arduino

Créez une variable pour détenir la valeur analogRead() de la photorésistance. Créez ensuite une variable pour la plus haute et la plus basse valeur. La plus basse est 1023, et la plus haute 0. Quand le programme se lancera, on comparera ces valeurs aux lectures du capteur, afin de trouver les vraies valeurs maximum et minimum.

int sensorValue;
int sensorLow = 1023;
int sensorHigh = 0;

Créez une constante ledPin pour l’utiliser comme indicateur afin de savoir si le capteur a fini de calibrer. Utilisez la LED on-board connectée à la broche 13.

const int ledPin = 13;

Dans le setup(), changez le pinMode() de ledPin en OUTPUT, et allumez la lumière.

void setup(){
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, HIGH);

La suite sert à calibrer les valeurs maximum et minimum.
Utilisez un while() pendant 5 secondes.

while(millis() < 5000){

Dans la boucle, nous allons lire la valeur du capteur. Si la valeur est inférieure à sensorLow (initialement 1023), on change la variable. Si elle est supérieure à sensorHigh (initialement 0), elle est mise à jour également.

sensorValue = analogRead(A0);
if(sensorValue > sensorHigh) {
sensorHigh = sensorValue;
}
if (sensorValue < sensorLow){
sensorLow = sensorValue;
}
}

Quand les 5 secondes sont passées, la boucle s’arrête. Éteignez la LED attachée à la broche 13. Vous allez utiliser les valeurs tout juste enregistrées du capteur.

digitalWrite(ledPin, LOW);
}

Dans le loop(), lisez la valeur en A0 et stockez-la dans sensorValue.

void loop(){
sensorValue = analogRead(A0);

Créez une variable pitch qui contiendra la valeur « mappée » de sensorValue. Utilisez sensorLow et sensorHigh comme bornes pour les nouvelles valeurs. Pour commencez, utilisez 50 et 4000. Ces nombres fixent la gamme de fréquences que l’Arduino génèrera.

int pitch = map(sensorValue, sensorLow, sensorHigh, 50, 4000);

Appelez la fonction tone() pour jouer un son. Cette fonction prend 3 arguments : sur quelle broche jouer le son (ici broche 8), quelle fréquence jouer (déterminée par la variable pitch), et combien de temps la jouer(essayez avec 20ms pour commencer).
Appelez ensuite un délai de 10ms pour donner au son du temps pour jouer.

tone(8, pitch, 20);
delay(10);
}

Quand vous allumez votre Arduino pour la première fois, vous aurez 5 secondes pour calibrer le capteur. Bougez votre main au dessus de la photorésistance, de haut en bas. Essayez de produire des mouvements que vous allez réaliser lors de l’utilisation de votre projet : la calibration en sera meilleure.

Au bout de 5 secondes, la calibration sera faite et vous verrez la LED s’éteindre. Vous devriez entendre les premiers sons de votre Theremin !

Bravo !

Félicitations pour avoir réussi ce projet ! Restez connecté et suivez Robot Maker sur Facebook pour rester informé des nouveautés et bénéficier de nos tutoriels.

Retrouvez tous nos tutoriels Arduino dans la catégorie « Tutoriel » du blog, et n’hésitez pas à laisser un commentaire sur nos articles !

Cet article vous a plu ? Laissez-nous un commentaire !

Tous les champs sont obligatoires

Nom:
E-mail: (ne sera pas publié)
Commentaire:
Recopier le code