Uncle Den's Uncle Den's

TP3 Thérémine sonore

Février 2017 Mooc France Université Numérique FUN.

Consigne

theremine sonore

Ce montage va être l'occasion d’approfondir les fonctions map et analogRead mais également de découvrir une nouvelle fonction liée à l'utilisation d'un buzzer piézo-électrique,  un composant qui peut produire du son. Le buzzer piézo-électrique transforme l'impulsion électrique envoyée par une broche en une onde sonore de fréquence identique et audible.

L'exercice consiste à modifier l'exemple AnalogInOutSerial vu cette semaine et l'adapter pour que la fréquence jouée un buzzer (branché sur la broche 8)  soit proportionnelle à la luminosité mesurée par la photorésistance (branchée sur la broche 0) : plus la luminosité reçue par la photorésistance est importante, plus la fréquence jouée par le buzzer sera élevée (et inversement, si on passe notre main devant le capteur de luminosité alors le son émis sera grave→fréquence basse).

Cette semaine, nous vous invitons également à prendre une photo de votre circuit ou à prendre une capture d'écran du simulateur et à nous l'envoyer dans l'évaluation par les pairs.
Bon courage !

Quelques indices 

  • Vous aurez besoin de la fonction tone qui prend deux paramètres :
    • la broche où le buzzer est branché
    • la fréquence que l'on veut jouer avec le buzzer (exprimée en Hertz)
tone(8, 440);  // la note La (440Hz) jouée sur un buzzer branché sur la broche 8
  • Lorsque l'on reçoit beaucoup de lumière sur notre photo-résistance, la fréquence générée devra être proche de 30 000Hz et lorsque la lumière est faible, la fréquence devra être proche de 50Hz.
  • Le buzzer doit avoir une patte connectée à la broche 8 et l'autre au GND

Le résultat en vidéo:




/*   retrouvez mes codes Arduino et vidéo sur ma page perso:
http://uncledens.chez-alice.fr/arduino/index.htm

Entrée et sortie analogiques + communications série
     Ce programme fait varier la fréquence du buzzer en 8 en fonction de la luminosité reçue en broche A0 */

// Initialisation des constantes :
const int photoresistance = A0;   // Numéro de la broche à laquelle est connectée la photorésistance
const int buzzer = 8;   // Numéro de la broche à laquelle est connectée le buzzer

int luminosite = 0;         // Valeur lue sur la photorésistance
int frequence = 0;          // Valeur envoyée à la LED

void setup() {
  // Initialise la communication avec l'ordinateur à un débit de 9600
  Serial.begin(9600);
 
  // Indique que la broche BUZZER est une sortie :
  pinMode(buzzer, OUTPUT);      
  // Indique que la broche PHOTORESISTANCE est une entrée :
  pinMode(photoresistance, INPUT);     
}

void loop() {
  // lit la valeur de la photorésistance et
  // stocke le résultat dans LUMINOSITE :
  luminosite = analogRead(photoresistance);            
  // change LUMINOSITE dans un intervalle allant de 50 à 30000Hz
  // et stocke le résultat dans FREQUENCE :
  frequence = map(luminosite, 0, 1023, 50, 30000);  
  // Cette note de fréquence FREQUENCE est joué sur BUZZER à l'aide de l'instruction TONE
  tone(buzzer, frequence);

  // Affiche les valeurs sur l'écran de l'ordinateur
  Serial.print("luminosite = " );                       
  Serial.print(luminosite);      
  Serial.print("\t frequence = ");      
  Serial.print(frequence);
  Serial.println(" Hz");
}







Voir mes Aquarelles - Mon site sur les aquarelles

Blog sur mes aquarelles