was successfully added to your cart.

Apprenez à utiliser une photorésistance

Image de une tutoriel photorésistance

Bonjour les arduinistes !

Dans ce nouveau tutoriel, nous allons mettre en application à travers un petit projet vos acquis sur l’utilisation des LEDs, de la photodiode et bien évidemment de l’Arduino.

Matériel nécessaire :

  • Une LED
  • Une photodiode
  • Deux résistances, une de 470 Ohm et une de 10 kOhm
  • Un potentiomètre
  • Un écran LCD
  • Un arduino

Voici le schéma du montage que nous allons réaliser.

Je me suis permis d’ajouter un écran LCD afin de visualiser la valeur relevée pas la photodiode. Vous n’êtes pas obligé d’utiliser cet écran pour le fonctionnement du montage.

Schéma de montage d'une photorésistance

Schéma de montage montrant l’application d’une photorésistance dans un projet Arduino

Si vous souhaitez utiliser un écran LCD, n’oubliez pas de câbler le potentiomètre de réglage du contraste de l’écran.

Commençons par regarder la partie 1 du schéma

Qu’est-ce qu’une photorésistance ?
Une photorésistance est une résistance sensible à la lumière. Cela signifie qu’en fonction de la lumière qu’elle perçoit sa résistance va varier. On va donc utiliser cette caractéristique pour réaliser notre montage.

Sur le schéma j’utilise une résistance de 470 Ohm. Lors de mes tests, j’ai utilisé une résistance de 10kOhm. Plus la valeur de la résistance est élevée, plus la sensibilité à la luminosité du capteur sera grande. Mais pas de panique, ça fonctionne très bien avec des résistances plus faibles.

Regardons la partie 2

Il s’agit ici du montage de l’écran LCD, je ne vous apprends rien. Dans mon cas j’ai suivi la datasheet et câblé en 4 bits.

Regardons pour finir la partie 3

Il s’agit du branchement d’une diode. Rien de plus simple ! N’oubliez quand même pas de mettre une résistance pour protéger votre LED.

Passons maintenant au code !

Dans un premier temps, il nous faut déclarer nos variables

1
2
3
4
#include 
//LiquidCrystal(rs, enable, d4, d5, d6, d7);
LiquidCrystal lcd(9, 8, 7, 6, 5, 4);
const int L1 = 12;

Vous pouvez le voir, nous avons besoin d’importer la librairie relative à l’écran LCD.
Ensuite je définis un « LiquidCrystal » que je nomme « lcd » auquel je lui affilie des entrées sur la carte Arduino.

Et enfin je crée une constante pour ma LED.

Une fois les variables définies, nous initialisons notre programme dans le setup.

1
2
3
4
5
6
7
8
9
void setup()
{
//Définition du type d'afficheur
//Ici un 4 lignes de 20 caractères
lcd.begin(20,4);
 
pinMode(A0, INPUT);
pinMode(L1, OUTPUT);
}

La photorésistance est une entrée analogique. Toutes mes entrées étant libre, je décide arbitrairement de me connecter au pin A0.

Et enfin, nous déclarons notre LED comme étant une sortie.

Pour ce qui est du reste du code, ce qui va permettre de gérer la fonction, j’ai créé une fonction afin d’alléger la « loop »

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void loop()
{
int val = display_lux_tempsExec();
digitalWrite(L1, HIGH);
if (val < 700)
{
digitalWrite(L1, LOW);
}
}
 
int display_lux_tempsExec()
{
int val = analogRead(A0) ;
lcd.setCursor(1, 0);
lcd.print("Valeur lumiere :");
lcd.setCursor(5, 1);
lcd.print(val);
lcd.print(" lux ");
lcd.setCursor(1, 2);
lcd.print("Temps d'execution :");
lcd.setCursor(5, 3);
lcd.print(millis()/1000);
lcd.print (" sec");
return val ;
}

Concentrons-nous sur la fonction display_lux_temps_Exec().
Cette fonction permet d’afficher en temps réel les variations lumineuses ainsi que le temps d’exécution du programme.

Regardons à présent la fonction loop().
Cette fonction tourne à l’infini.
On exécute donc en boucle la fonction d’affichage sur l’écran LCD.

De plus, nous faisons un test de condition qui permet de gérer l’allumage de la LED si la luminosité descend en dessous de 700 dans mon exemple. Vous pouvez modifier cette valeur en fonction de votre environnement intérieur.

 

Voilà, vous savez dès à présent contrôler votre photorésistance à travers ce petit tutoriel.

Les applications sont infinies ! N’hésitez pas à imaginer de nouvelles applications.

Thomas A.

2 Comments

Laisser un commentaire