Vous êtes sur la page 1sur 4

Premier contact

Dans ce projet, nous allons utiliser un capteur piézoélectrique afin de faire varier l'intensité
lumineuse d'une LED.Ce projet est simple et permet d'aborder les premiers concept du
système de programmation Arduino.

Matériel nécessaire à la réalisation du projet

 Une carte Arduino  Une résistance 1 Mega Ohm


 Un capteur piézoélectrique  Un peu de ruban adhésif
 Une LED  Une bouteille en plastique vide

Première partie
Les capteurs piézoélectriques sont des composants qui créent un courant électrique lorsque
qu'ils sont sollicités par des vibrations ou déformations. Collés sur une surface, ce capteur
peut détecter des vibrations. C'est pourquoi dans cet exemple, la pastille piézoélectrique devra
être nu et non pas encapsulée dans un boîtier plastique. Nous allons donc voir dans cette
première partie, comment connecter un tel capteur à notre carte Arduino et afficher les valeurs
captées.

Schéma de montage

Afin de réaliser ce montage, nous allons connecter la patte négative de notre capteur
piézoélectrique à la masse de notre carte Arduino soit une des pins Gnd. Puis, nous
connecterons l'autre patte sur la pin Analog In 0 de la carte. Branchez ensuite la résistance,
une patte dans une pin Gnd et l'autre dans Analog In 0. et pour finir, scotchez fermement votre
capteur sur votre bouteille plastique.

Programme

Vous pouvez maintenant copier le programme suivant dans la fenêtre du programme Arduino.

// Variable pour désigner quelle pin est utilisée pour le capteur


int capteurPiezo = A0; // pin Analog 0
// Variable pour contenir la valeur du capteur
int valeurPiezo ;

void setup()
{
// Établit la connexion sérielle à 9600 bauds
Serial.begin(9600);
}

void loop()
{
// Lit la pin du capteur et l'assigne à la variable valeurPiezo
valeurPiezo = analogRead(capteurPiezo);
// Affiche au moniteur sériel la valeur de valeurPiezo
Serial.println(valeurPiezo);
// Laisse un court délai afin que l'utilisateur puisse lire les valeurs
correctement
delay(100);
}

Sauvegardez maintenant votre programme et vérifiez-le en cliquant sur le bouton Verify. En


cas d'erreur un message rouge s’affiche dans la console. Vérifiez alors la syntaxe et
orthographe du code (voir chapitre « Bien structurer son code »). Si vous ne rencontrez pas
d'erreurs, vous pouvez maintenant téléverser votre programme sur la carte en cliquant sur
Upload.

Une fois le téléversement terminé, vous pouvez faire apparaître la fenêtre du moniteur sériel
en cliquant sur le bouton Serial Monitor. Assurez-vous que la vitesse de transfert des
informations (baudrate) du moniteur sériel est identique à celle spécifiée dans le programme
soit dans notre cas, 9600. Ce paramètre peut être changé en bas à droite de la fenêtre.

Après quelques instants, vous devriez voir défiler des chiffres sur le moniteur sériel. Il s'agit
de la valeur renvoyée par le capteur piézoélectrique. Vous pouvez maintenant prendre la
bouteille dans vos main et la déformer pour faire changer la valeur qui s’affiche dans votre
terminal. La valeur doit changer proportionnellement et simultanément à la déformation de la
bouteille.
Deuxième partie : LED et variation de luminosité
Dans cette partie, nous allons ajouter une LED à notre montage afin d'illustrer les vibrations
enregistrée par le capteur piézoélectrique pour faire varier l'intensité lumineuse d'une LED.

Schéma de montage

Afin de compléter ce montage, il nous suffit de connecter la patte (+) de la LED à la pin 13 et
la patte (-) qui est la plus courte, à la masse de votre Arduino soit une des pins Gnd.

Programme

Copiez maintenant le programme suivant dans la fenêtre de programmation Arduino.

// Variable pour désigner quelle pin est utilisée pour le capteur


int capteurPiezo = A0; // pin Analog 0
// Variable pour contenir la valeur du capteur
int valeurPiezo ;
// Variable pour désigner quelle pin de l'Arduino est utilisée pour la LED
int ledPin = 13;

void setup()
{
// Définit la pin 13 comme une sortie
pinMode(ledPin, OUTPUT);
// Établit la connextion sérielle à 9600 baud
Serial.begin(9600);
}

void loop()
{
// Lit la pin du capteur et l'assigne à la variable valeurPiezo
valeurPiezo = analogRead(capteurPiezo);
// Convertit la valeur du capteur en valeur pour la LED
valeurPiezo = map(valeurPiezo, 0, 1023, 0, 255);
// Affecte la valeur de puissanceLed à la pin 13
analogWrite(ledPin, valeurPiezo);
// Affiche au moniteur sériel la valeur de valeurPiezo
Serial.println(valeurPiezo);
}

Pour contrôler la luminosité de la LED proportionnellement à la valeur du capteur, nous


devons réaliser un conversion. En effet la fonction analogWrite(); prend comme argument
une variable dont la plage est de 0 à 255. De son coté la fonction analogRead(); nous donne
une valeur entre 0 et 1024. Nous devons donc ramener l’échelle de la fonction analogRead();
à une plage plus petite (0 à 255), c'est pourquoi nous devons utiliser la fonction map ci-
dessous.

map (val origine, val origine min, val origine max, val sortie min, val
sortie max);

Pour convertir une variable dont la plage est de 0 à 1023 en une variable dont la plage est de 0
à 255, cela donne la fonction suivante

map (valeurPiezo, 0, 1023, 0, 255);


Pour aller plus loin
Afin d'aller plus loin, nous pourrions imaginer de remplacer le capteur piézoélectrique par
tout autre capteur analogique comme un capteur de lumière ou encore un détecteur de
proximité.

Vous aimerez peut-être aussi