top of page

La photorésistance.

Nous avons utilisé une photorésistance (LDR) présentant une résistance > 500 kΩ dans l'obscurité.
Cette résistance chute entre 24 k et 72 kΩ à 10 Lux.

Diamètre: 5 mm
Température de service: -40 à +75 °C

Voici le montage que nous avons fait sur une platine d'essai pour utiliser la photorésistance : 

Nous avons utilisé une photorésistance et un condensateur de 1 µF.

 

Un condensateur est un dipôle possédant une capacité électrique. Il permet donc de stocker une charge + sur sa borne (également appelée armature) positive et - sur sa borne négative. Il est principalement utilisé pour : 
-Stabiliser une alimentation électrique (il se décharge lors des chutes de tensions et se recharge en cas de surtension) 
-Filtrer des signaux périodiques. 
-Stocker de l'énergie.

Nous avons ensuite cherché un programme pour utiliser la photorésistance. Nous en avons trouvé un sur le site :"https://learn.adafruit.com/basic-resistor-sensor-reading-on-raspberry-pi/basic-photocell-reading".

sudo nano ldr.py

import RPi.GPIO as GPIO, time, os      
 
DEBUG = 1
GPIO.setmode(GPIO.BCM)
 
def RCtime (RCpin):
        reading = 0
        GPIO.setup(RCpin, GPIO.OUT)
        GPIO.output(RCpin, GPIO.LOW)
        time.sleep(0,5)
 
        GPIO.setup(RCpin, GPIO.IN)
        # Cela prend environ 1 milliseconde par boucle 
        while (GPIO.input(RCpin) == GPIO.LOW):
                reading += 1
        return reading
 
while True:                                     
        print RCtime(26)     # Lire la photorésistance en utilisant le GPIO 26

Ensuite, comme le programme était concluant, nous avons décidé de rajouter une LED avec une résistance au montage, le but étant que la LED s'allume quand la luminosité baisse comme des phares de voiture autonome.

Voici le nouveau montage :

Nous avons donc modifié le programme pour lier la photorésistance à la LED.

sudo nano ldr_led.py

import RPi.GPIO as GPIO, time, os      
 
DEBUG = 1
GPIO.setmode(GPIO.BCM)

GPIO.setup(27,GPIO.OUT)
 
def RCtime (RCpin):
        reading = 0
        GPIO.setup(RCpin, GPIO.OUT)
        GPIO.output(RCpin, GPIO.LOW)
        time.sleep(0.1)
 
        GPIO.setup(RCpin, GPIO.IN)
        # Cela prend environ 1 milliseconde par boucle
        while (GPIO.input(RCpin) == GPIO.LOW):
                reading += 1
        return reading

 

def Boucle():
 while True:
  valeur = RCtime(26)
  print valeur     # Lire la photorésistance au GPIO 26
  if (valeur >= 1500):
   GPIO.output(27,True)
  else:
   GPIO.output(27,False)

 

def Reinitialisation(): # Eteindre la LED et reinitialiser le circuit GPIO
    GPIO.output(27, GPIO.LOW)
    GPIO.cleanup()                     # Relacher les ressources


# Le programme demarre ici
if __name__ == '__main__':
    try:
        Boucle()
    except KeyboardInterrupt:  # Si on interrompt le programme, on passe d'abord par la fonction Reinitialisation
        Reinitialisation()

En vidéo, nous pouvons voir que les programmes fonctionnent très bien.

bottom of page