Février 2017 Mooc France Université Numérique FUN.
Consigne
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");
}