Mesure d'éclairement - LDR : Différence entre versions
De Wiki L.A.B
(Page créée avec « ===== Matériel ===== * Arduino Uno * Plaque d'essai (breadbord) * LED RGB à cathodes communes * 3 Résistances 1/4W 270Ω ( 220Ω ou 330Ω peuvent également convenir) *... ») |
|||
Ligne 52 : | Ligne 52 : | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[Catégorie:Les capteurs analogiques et numériques]] | [[Catégorie:Les capteurs analogiques et numériques]] | ||
− | [[Catégorie: | + | [[Catégorie:Formation_Arduino]] |
Version actuelle en date du 3 janvier 2016 à 12:37
Matériel
- Arduino Uno
- Plaque d'essai (breadbord)
- LED RGB à cathodes communes
- 3 Résistances 1/4W 270Ω ( 220Ω ou 330Ω peuvent également convenir)
- Résistance 22kΩ
- LDR
- Straps ou fils de liaison
Montage
Programme
Voici le programme qu'il faut éditer dans l'IDE Arduino, puis compiler et charger dans la carte Arduino
/*
Ce programme allume progressivement une LED RGB cathodes communes branchée sur les broches 3,5 et 6
en fonction de la lumière reçue par une LDR, les valeurs sont affichées dans le moniteur série
*/
int ledR = 3; // broche de la LED Rouge
int ledG = 5; // broche de la LED Verte
int ledB = 6; // broche de la LED Bleue
int ldr = A0; // broche de la LDR
int mes =0; // variable mesurée : éclairement
void setup() // setup est déroulé une seule fois après la remise à zéro
{
pinMode(ledR, OUTPUT); // la broche led (3) est initialisée en sortie
pinMode(ledG, OUTPUT); // la broche led (5) est initialisée en sortie
pinMode(ledB, OUTPUT); // la broche led (6) est initialisée en sortie
Serial.begin(115200); // initialisation de la liaison série à 115200 bauds
}
void loop() // loop est déroulé indéfiniment
{
digitalWrite(ledG,0); // LED G éteinte
digitalWrite(ledB,0); // LED B éteinte
mes = analogRead(ldr); // mesure par lumière reçue par la LDR
Serial.print("mesure = "); // affiche mesure = sans saut de ligne
Serial.println(mes); // affiche valeur mesuree avec saut de ligne
mes = map (mes,0,1023,0,255); // péréquation de la valeur mesurée avec une valeur pour la LED R
analogWrite(ledR,mes); // génère une impulsion sur la broche de largeur mes => la luminosité R=f(mes)
Serial.print("mesure mappee = ");// affiche mesure mappee = sans saut de ligne
Serial.println (mes); // affiche valeur mesuree et mappee avec saut de ligne
delay(200); // attente pour lecture dans le moniteur serie
}