SIK Experiment Guide for the Arduino 101/Genuino 101 Board (French)
This Tutorial is Retired!
This tutorial covers concepts or technologies that are no longer current. It's still here for you to read and enjoy, but may not be as useful as our newest tutorials.
Expérience 7 : Lire une photorésistance
Introduction
Dans l'expérience 2, vous avez utilisé un potentiomètre, qui modifie la résistance en tournant un bouton ce qui, à son tour, change la tension lue par l'entrée analogique. Dans ce circuit, vous allez utiliser une photorésistance, qui change la résistance en fonction de la lumière que reçoit le capteur. Vous allez lire la valeur de la lumière de la pièce et une LED s'allumera si la pièce est sombre ou s'éteindra si elle est lumineuse. Vous l'aurez compris, vous allez construire une lumière automatique !
Composants nécessaires
Vous aurez besoin des composants suivants :
- 1 plaque Breadboard
- 1 carte Arduino 101 ou Genuino 101
- 1 LED
- 1 résistance 100 Ω
- 7 cavaliers
- 1 photorésistance
- 1 résistance 10K
Vous n'avez pas le SIK ?
Pour réaliser cette expérience sans le SIK, nous vous suggérons d'utiliser les composants suivants :
Vous aurez également besoin d'une carte Arduino 101 ou Genuino 101.
Présentation de la photorésistance
La photorésistance change sa résistance en fonction de la lumière à laquelle elle est exposée. Pour l'utiliser avec la carte 101, vous devez construire un diviseur de tension avec une résistance 10 kohms, comme sur le schéma de câblage de cette expérience. La carte 101 ne peut pas lire un changement de résistance, seulement un changement de tension. Un diviseur de tension vous permet de traduire un changement de résistance en valeur de tension correspondante.
Le diviseur de tension permet l'utilisation de capteurs basés sur une résistance, comme la photorésistance dans un système basé sur la tension. Si vous explorez différents capteurs, vous en trouverez un plus grand nombre basés sur une résistance qui ne disposent que de deux broches comme la photorésistance. Pour les utiliser avec votre carte 101 vous devez construire un diviseur de tension comme celui de cette expérience. Pour en savoir plus sur les résistances en général, consultez notre tutoriel sur les résistances et notre tutoriel sur les diviseurs de tension.
Note : Assurez-vous d'utiliser la résistance 10 kohms dans votre diviseur de tension avec les capteurs fournis dans ce kit. Sinon, vous obtiendrez des résultats étranges et irréguliers.
Branchement du matériel
Vous êtes prêt à tout raccorder ? Consultez le schéma de câblage ci-dessous pour savoir comment faire.
Composants polarisés | Faites particulièrement attention aux marquages indiquant comment placer les composants sur la plaque breadboard, car les composants polarisés ne peuvent être connectés à un circuit que dans une direction. |
Schéma de câblage de l'expérience
Ouverture du sketch
Ouvrez l'EDI Arduino sur votre ordinateur. Le codage en langage Arduino contrôlera votre circuit. Ouvrez le code du Circuit 7 en accédant au « Code du guide SIK 100 » que vous avez précédemment téléchargé et placé dans votre dossier « Examples ».
Pour ouvrir le code, cliquez sur : File > Examples > 101 SIK Guide Code > Circuit_07
Vous pouvez également copier et coller le code suivant dans l'EDI Arduino. Cliquez sur Télécharger et observez ce qu'il se passe.
language:cpp
/*
SparkFun Inventor's Kit
Example sketch 07
PHOTORESISTOR
Read a photoresistor (light sensor) to detect "darkness" and turn on an LED when it is "dark" and turn back off again when it is "bright."
This sketch was written by SparkFun Electronics,
with lots of help from the Arduino community.
This code is completely free for any use.
Visit http://learn.sparkfun.com/products/2 for SIK information.
Visit http://www.arduino.cc to learn more about Arduino.
*/
// As usual, we'll create constants to name the pins we're using.
// This will make it easier to follow the code below.
const int sensorPin = 0;
const int ledPin = 9;
// We'll also set up some global variables for the light level a calibration value and //and a raw light value
int lightCal;
int lightVal;
void setup()
{
// We'll set up the LED pin to be an output.
pinMode(ledPin, OUTPUT);
lightCal = analogRead(sensorPin);
//we will take a single reading from the light sensor and store it in the lightCal //variable. This will give us a prelinary value to compare against in the loop
}
void loop()
{
//Take a reading using analogRead() on sensor pin and store it in lightVal
lightVal = analogRead(sensorPin);
//if lightVal is less than our initial reading (lightCal) minus 50 it is dark and //turn pin 9 HIGH. The (-50) part of the statement sets the sensitivity. The smaller //the number the more sensitive the circuit will be to variances in light.
if(lightVal < lightCal - 50)
{
digitalWrite(9,HIGH);
}
//else, it is bright, turn pin 9 LOW
else
{
digitalWrite(9,LOW);
}
}
À propos du code
lightCal = analogRead(sensorPin);
lightCal est une variable d'étalonnage. Votre carte 101 prend une seule lecture du capteur de lumière et utilise cette valeur pour la comparer à lightVal dans la boucle. Cette valeur ne change pas dans la boucle, car elle est définie dans la fonction setup. Pour la mettre à jour, vous pouvez appuyer sur le bouton de réinitialisation (RESET) ou mettre sous tension la carte.
if(lightVal < lightCal -50)
Si la variable de la valeur de lumière qui est constamment mise à jour dans la boucle est inférieure à la valeur d'étalonnage moins 50, la pièce est sombre et la LED doit s'allumer. La partie (-50) du code est une valeur de sensibilité. Plus la valeur est élevée, moins le circuit sera sensible ; plus elle est basse, plus les conditions d'éclairage seront sensibles.
Ce que vous devez voir
La LED doit s'allumer quand la pièce est plus sombre et s'éteindre quand elle est plus lumineuse. Placez votre main sur le capteur puis retirez-la. Si cela ne fonctionne pas, vérifiez que vous avez monté correctement le circuit et téléchargé le code sur votre carte. SI le problème persiste, consultez la section Dépannage.
Dépannage
La LED ne s'allume pas
Vous avez peut-être projeté une ombre sur le capteur quand vous avez téléchargé votre code. Assurez-vous que le capteur est exposé à la lumière ambiante de la pièce, puis appuyez sur le bouton de réinitialisation (MASTER RESET) et rechargez votre code. Cela réinitialise la valeur d'étalonnage.
Ne fonctionne toujours pas
Votre déclaration logique est peut-être erronée. Vérifiez votre code et essayez d'augmenter ou de diminuer un peu le niveau de sensibilité. Assurez-vous qu'il n'y a pas de point-virgule après la déclaration if(). Il s'agit d'une erreur courante difficile à identifier !