KY-018 Module à photorésistance LDR
Comprend une résistance LDR dont la valeur de la résistance diminue lorsque l'environnement devient plus lumineux.
- Arduino
- Raspberry Pi
- Raspberry Pi Pico
- Micro:Bit
Ce module contient une résistance LDR (capteur de lumière) dont la valeur de résistance diminue avec l'augmentation de la luminosité. La résistance de la LDR peut être déterminée à l'aide d'un diviseur de tension, dans lequel une tension connue est répartie entre une résistance fixe de 10 kΩ et la résistance variable de la LDR. En mesurant la tension dans le diviseur de tension, il est possible de calculer la résistance actuelle du LDR et donc l'intensité lumineuse. La tension de fonctionnement du module est comprise entre 3,3 V et 5 V, et ses dimensions compactes de 21 x 15 x 6 mm facilitent son intégration dans différents projets. Ce module est idéal pour les applications où la luminosité ambiante doit être détectée, comme par exemple dans les systèmes d'éclairage automatisés, les capteurs de luminosité et de nombreuses autres applications dépendant de la lumière. La méthode de calcul exacte pour déterminer la luminosité est décrite dans les exemples de code ci-joints.
Attention ! Ce capteur n'est plus inclus dans la révision 2 du kit de capteurs et a été remplacé par le capteur KY-054!
Données techniques | |
---|---|
Tension de fonctionnement | 3,3 V - 5 V |
Résistance connue fixe | 10 kΩ |
Dimensions | 21 x 15 x 6 mm |
Affectation des broches
Arduino | Capteur |
---|---|
Pin A5 | Signal |
5V | +V |
GND | GND |
Exemple de code
Pour charger l'exemple de code suivant sur votre Arduino, nous vous recommandons d'utiliser l'IDE Arduino. Dans l'IDE, vous pouvez choisir le port et la carte qui conviennent à votre appareil.
Copiez le code ci-dessous dans votre IDE. Pour télécharger le code sur votre Arduino, il vous suffit de cliquer sur le bouton " Upload ".
int photo_resistor = A5; // La broche d'entrée est déclarée ici
// Définir les variables nécessaires
int rawValue;
float voltage;
float resistance;
void setup() {
Serial.begin(9600); // Sortie sérielle en 9600 bauds
Serial.println("KY-018 Test de photorésistance");
}
// Le programme mesure la valeur de tension actuelle sur le capteur,
// calcule, à partir de celle-ci et de la résistance série connue, la valeur actuelle du
// valeur de résistance du capteur et affiche les résultats sur la sortie sérielle
void loop() {
// La valeur de tension actuelle est mesurée...
rawValue = analogRead(photo_resistor);
voltage = rawValue * (5.0/1023) * 1000;
resistance = 10000 * (voltage / (5000.0 - voltage));
// ... et ici sur l'interface sérielle
Serial.print("Valeur de la tension: ");
Serial.print(voltage);
Serial.print(" mV");
Serial.print(",\t Valeur de résistance: ");
Serial.print(resistance);
Serial.println(" Ohm");
Serial.println("----------------------------------------------------------------");
delay(500);
}
Ce module contient une résistance LDR (capteur de lumière) dont la valeur de résistance diminue avec l'augmentation de la luminosité. La résistance de la LDR peut être déterminée à l'aide d'un diviseur de tension, dans lequel une tension connue est répartie entre une résistance fixe de 10 kΩ et la résistance variable de la LDR. En mesurant la tension dans le diviseur de tension, il est possible de calculer la résistance actuelle du LDR et donc l'intensité lumineuse. La tension de fonctionnement du module est comprise entre 3,3 V et 5 V, et ses dimensions compactes de 21 x 15 x 6 mm facilitent son intégration dans différents projets. Ce module est idéal pour les applications où la luminosité ambiante doit être détectée, comme par exemple dans les systèmes d'éclairage automatisés, les capteurs de luminosité et de nombreuses autres applications dépendant de la lumière. La méthode de calcul exacte pour déterminer la luminosité est décrite dans les exemples de code ci-joints.
Attention ! Ce capteur n'est plus inclus dans la révision 2 du kit de capteurs et a été remplacé par le capteur KY-054!
Données techniques | |
---|---|
Tension de fonctionnement | 3,3 V - 5 V |
Résistance connue fixe | 10 kΩ |
Dimensions | 21 x 15 x 6 mm |
Affectation des broches
Raspberry Pi | Capteur |
---|---|
- | Signal |
3,3 V [Pin 1] | +V |
GND [Pin 6] | GND |
Capteur | KY-053 |
---|---|
Signal | A0 |
+V | - |
GND | - |
Raspberry Pi | KY-053 |
---|---|
3,3 V [Pin 1] | +V |
GND [Pin 6] | GND |
GPIO 3 [Pin 5] | SCL |
GPIO 2 [Pin 3] | SDA |
Capteur analogique, il faut donc respecter les points suivants.
Contrairement à l'Arduino, le Raspberry Pi n'a pas d'entrées analogiques ou il n'y a pas d'ADC (convertisseur analogique numérique) intégré dans la puce du Raspberry Pi. Cela limite le Raspberry Pi, si vous voulez utiliser des capteurs, où les valeurs de sortie ne sont pas numériques [valeur de tension dépassée -> valeur numérique ON | valeur de tension sous-cotée -> valeur numérique OFF | exemple : bouton enfoncé [ON] bouton relâché [OFF]], mais il doit s'agir d'une valeur variable continue (exemple : potentiomètre -> autre position = autre valeur de tension).
Pour éviter ce problème, notre kit de capteur X40 a le KY-053, un module avec ADC précis de 16 bits, que vous pouvez utiliser sur le Raspberry pour l'étendre avec 4 entrées analogiques. Il est connecté au Raspberry Pi via I2C, prend en charge la mesure analogique et transmet la valeur numérique au Raspberry Pi.
Ainsi, nous recommandons de connecter le module KY-053 avec ledit ADC entre les capteurs analogiques de cet ensemble. Pour plus d'informations, veuillez consulter la page d'information sur le convertisseur analogique-numérique KY-053.
Exemple de code
Le programme utilise les bibliothèques Python ADS1x15 et I2C correspondantes d'Adafruit pour piloter l'ADC ADS1115. Ceux-ci ont été publiés au lien suivant https://github.com/adafruit/Adafruit_CircuitPython_ADS1x15 sous la licence MIT. Les bibliothèques requises ne sont pas incluses dans le paquet de téléchargement ci-dessous.
Le programme utilise l'ADC ADS1115 pour mesurer la valeur de la tension actuelle au niveau de l'ADC, l'utilise pour calculer la résistance actuelle de la CTN, utilise les valeurs déterminées à l'avance pour ce capteur pour calculer la température, et envoie le tout à la console.
Veuillez noter que vous devez activer I2C sur votre Raspberry Pi avant d'utiliser cet exemple.
#!/usr/bin/python
# coding=utf-8
import time
import board
import busio
import adafruit_ads1x15.ads1115 as ADS
from adafruit_ads1x15.analog_in import AnalogIn
import math
# Create the I2C bus
i2c = busio.I2C(board.SCL, board.SDA)
# Create the ADC object using the I2C bus
ads = ADS.ADS1115(i2c)
voltageMax = 3.3
# Create single-ended input on channels
chan0 = AnalogIn(ads, ADS.P0)
chan1 = AnalogIn(ads, ADS.P1)
chan2 = AnalogIn(ads, ADS.P2)
chan3 = AnalogIn(ads, ADS.P3)
while True:
resistance = chan0.voltage / (voltageMax - chan0.voltage) * 10000
print("Spannungswert: ",'%.2f' % chan0.voltage,"V, Widerstand: ",'%.2f' % resistance, "Ω")
print("---------------------------------------------------")
time.sleep(1)
Ce module contient une résistance LDR (capteur de lumière) dont la valeur de résistance diminue avec l'augmentation de la luminosité. La résistance de la LDR peut être déterminée à l'aide d'un diviseur de tension, dans lequel une tension connue est répartie entre une résistance fixe de 10 kΩ et la résistance variable de la LDR. En mesurant la tension dans le diviseur de tension, il est possible de calculer la résistance actuelle du LDR et donc l'intensité lumineuse. La tension de fonctionnement du module est comprise entre 3,3 V et 5 V, et ses dimensions compactes de 21 x 15 x 6 mm facilitent son intégration dans différents projets. Ce module est idéal pour les applications où la luminosité ambiante doit être détectée, comme par exemple dans les systèmes d'éclairage automatisés, les capteurs de luminosité et de nombreuses autres applications dépendant de la lumière. La méthode de calcul exacte pour déterminer la luminosité est décrite dans les exemples de code ci-joints.
Attention ! Ce capteur n'est plus inclus dans la révision 2 du kit de capteurs et a été remplacé par le capteur KY-054!
Données techniques | |
---|---|
Tension de fonctionnement | 3,3 V - 5 V |
Résistance connue fixe | 10 kΩ |
Dimensions | 21 x 15 x 6 mm |
Affectation des broches
Micro:Bit | Sensor |
---|---|
- | Signal |
3,3 V | +V |
GND | GND |
Sensor | KY-053 |
---|---|
Signal | A0 |
+V | - |
GND | - |
Micro:Bit | KY-053 |
---|---|
Pin 19 | SCL |
Pin 20 | SDA |
3,3 V | +V |
GND | GND |
Capteur analogique, il faut donc respecter les points suivants: Le Micro:Bit dispose d'entrées analogiques ou d'un ADC (convertisseur analogique-numérique) intégré dans la puce du Micro:Bit. Cependant, ceux-ci ne sont limités qu'à 10 bits et n'offrent donc qu'une précision assez faible pour les mesures analogiques.
Pour éviter ce problème, notre kit de capteur X40 contient le KY-053, un module avec un ADC de 16 bits, que vous pouvez utiliser sur le Micro:Bit pour l'étendre de 4 entrées analogiques. Celui-ci est connecté au Micro:Bit via I2C, prend en charge la mesure analogique et transfère la valeur numériquement au Micro:Bit.
Par conséquent, nous recommandons de connecter le module KY-053 avec le CAN mentionné entre les capteurs analogiques de ce jeu. Plus d'informations peuvent être trouvées sur la page d'information du convertisseur analogique numérique Convertisseur analogique numérique KY-053.
Exemple de code
Le programme utilise la bibliothèque correspondante de notre part pour contrôler l'ADC ADS1115. Ceci a été publié sous le lien suivant pxt-ads1115 sous la licence MIT.
ADS1115.setMode(mode.Multi)
ADS1115.setRate(rate.Rate5)
ADS1115.setGain(gain.One)
ADS1115.initADS1115(userInI2C.Gnd)
basic.forever(function () {
serial.writeLine("" + (ADS1115.read(0)))
serial.writeLine("" + (ADS1115.raw_to_v(ADS1115.read(0))))
basic.pause(500)
})
Téléchargement d'un exemple de programme
Ce module contient une résistance LDR (capteur de lumière) dont la valeur de résistance diminue avec l'augmentation de la luminosité. La résistance de la LDR peut être déterminée à l'aide d'un diviseur de tension, dans lequel une tension connue est répartie entre une résistance fixe de 10 kΩ et la résistance variable de la LDR. En mesurant la tension dans le diviseur de tension, il est possible de calculer la résistance actuelle du LDR et donc l'intensité lumineuse. La tension de fonctionnement du module est comprise entre 3,3 V et 5 V, et ses dimensions compactes de 21 x 15 x 6 mm facilitent son intégration dans différents projets. Ce module est idéal pour les applications où la luminosité ambiante doit être détectée, comme par exemple dans les systèmes d'éclairage automatisés, les capteurs de luminosité et de nombreuses autres applications dépendant de la lumière. La méthode de calcul exacte pour déterminer la luminosité est décrite dans les exemples de code ci-joints.
Attention ! Ce capteur n'est plus inclus dans la révision 2 du kit de capteurs et a été remplacé par le capteur KY-054!
Données techniques | |
---|---|
Tension de fonctionnement | 3,3 V - 5 V |
Résistance connue fixe | 10 kΩ |
Dimensions | 21 x 15 x 6 mm |
Affectation des broches
Raspberry Pi Pico | Capteur |
---|---|
3,3 V | +V |
GND | GND |
GPIO26 (A0) | Signal |
On peut aussi utiliser un ADC comme le KY-053. Cet ADC a une résolution plus élevée que l'ADC interne de l'Raspberry Pi Pico, ce qui permet d'évaluer le capteur avec plus de précision.
Exemple de code
Le programme mesure la valeur de la tension actuelle au niveau du capteur, calcule la valeur de la résistance actuelle du capteur à partir de cette valeur et de la résistance en série connue et transmet les résultats via une sortie série.
Pour charger l'exemple de code suivant sur votre Pico, nous vous recommandons d'utiliser l'IDE Thonny. Il vous suffit de commencer par sélectionner Run > Configure interpreter ... > Interpreter > Which kind of interpreter should Thonny use for running your code? > MicroPython (Raspberry Pi Pico).
Copiez maintenant le code ci-dessous dans votre IDE et cliquez sur Run.
# Chargement des bibliothèques
from machine import ADC
import math
from time import sleep
# Initialisation de l'ADC0 (GPIO26)
adc = ADC(0)
print("KY-018 Mesure de la résistance")
while True:
# Lire ADC0 comme un nombre décimal
read = adc.read_u16()
# Calculer la tension
voltage = read * (3.3 / 65536)
# Conversion De Tension en Résistance
resistance = ((voltage / 3.3) * 10000) / (1 - (voltage / 3.3))
# Sortie sérielle des valeurs calculées
print("Valeur de la tension: ", round(voltage, 2), "V\t Résistance:", round(resistance, 2), "Ohm")
sleep(1)