KY-054 Phototransistor
Ce phototransistor est un composant qui détecte la lumière et la convertit en un signal électrique, un peu comme un interrupteur commandé par la lumière.
- Arduino
- Raspberry Pi
- Raspberry Pi Pico
- Micro:Bit
Le capteur permet de déterminer le niveau de luminosité, ce qui était par exemple utilisé autrefois dans les posemètres pour les appareils photo. Les phototransistors sont souvent utilisés pour adapter la luminosité d'un écran (par exemple dans un réveil ou sur le tableau de bord d'une voiture) à l'intensité de la lumière ambiante : Lorsqu'il fait sombre, l'écran doit être faiblement éclairé pour ne pas éblouir.
Un capteur de lumière modifie sa valeur électrique en fonction de l'intensité de la lumière incidente. Jusqu'à il y a une dizaine d'années, on utilisait volontiers à cet effet des photorésistances, appelées en anglais Light Dependent Resistor (LDR). Plus la lumière tombe sur la photorésistance, plus sa résistance diminue. Cependant, pour des raisons de protection de l'environnement, elles sont de moins en moins utilisées, car les matériaux utilisés sont interdits par les directives. De nos jours, l'utilisation de phototransistors est dans l'air du temps. Le flux lumineux incident sur la surface remplace la borne de base habituelle et commande, comme d'habitude, le courant collecteur-émetteur. Le courant qui circule représente donc la luminosité et peut être converti en éclairement à l'aide d'un tableau comparatif ou (pour les types linéaires, comme dans ce cas) mathématiquement. En colorant (généralement en bleu foncé) le boîtier transparent, le phototransistor peut être bloqué pour certaines longueurs d'onde, de sorte qu'il est par exemple conçu principalement pour le rayonnement infrarouge et moins influencé par la lumière artificielle. Le phototransistor influence le courant qui circule en fonction de l'incidence de la lumière, de sorte que la tension qui chute aux bornes de la résistance varie (diviseur de tension), ce qui permet de calculer l'intensité lumineuse.
Attention! Ce capteur n'est inclus que dans la révision 2 du kit de capteurs et a remplacé le capteur KY-018!
Données techniques | |
---|---|
Tension de service | 3,3 V - 5 V |
Résistance ferme et connue | 10 kΩ |
Dimensions | 28 x 15 x 7 mm |
Affectation des raccordements
Arduino | Sensor |
---|---|
GND | GND |
5 V | +V |
Pin A5 | Signal |
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 ".
// Définir la broche du phototransistor
int light_sensor = A5;
// Définition des paramètres nécessaires au calcul
const double U1 = 5.0;
const double R2 = 10000.0;
double U2;
double I;
double R1;
double lux;
int rawValue;
void setup() {
// Définir le Pin Mode
pinMode(light_sensor, INPUT);
// Configurer la communication sérielle pour le moniteur sériel
Serial.begin(9600);
Serial.println("KY-054 Test de luminosité");
}
void loop() {
// Lecture de la tension du capteur de lumière
rawValue = analogRead(light_sensor);
U2 = rawValue * (5.0/1023) ;
// Vérifier U2 pour la division
if (U2 != 0) {
// Calculer la résistance du capteur
R1 = (U1 * R2) / U2;
// Calculer le courant
I = (U1 / R1) * 1000000.0;
// Calculer les lux
lux = log(I)/0.06;
}
else lux = 0;
// Afficher le résultat sur le moniteur sériel
Serial.print("Lux:\t");
Serial.println(lux);
// attendre une seconde
delay(1000);
}
Le capteur permet de déterminer le niveau de luminosité, ce qui était par exemple utilisé autrefois dans les posemètres pour les appareils photo. Les phototransistors sont souvent utilisés pour adapter la luminosité d'un écran (par exemple dans un réveil ou sur le tableau de bord d'une voiture) à l'intensité de la lumière ambiante : Lorsqu'il fait sombre, l'écran doit être faiblement éclairé pour ne pas éblouir.
Un capteur de lumière modifie sa valeur électrique en fonction de l'intensité de la lumière incidente. Jusqu'à il y a une dizaine d'années, on utilisait volontiers à cet effet des photorésistances, appelées en anglais Light Dependent Resistor (LDR). Plus la lumière tombe sur la photorésistance, plus sa résistance diminue. Cependant, pour des raisons de protection de l'environnement, elles sont de moins en moins utilisées, car les matériaux utilisés sont interdits par les directives. De nos jours, l'utilisation de phototransistors est dans l'air du temps. Le flux lumineux incident sur la surface remplace la borne de base habituelle et commande, comme d'habitude, le courant collecteur-émetteur. Le courant qui circule représente donc la luminosité et peut être converti en éclairement à l'aide d'un tableau comparatif ou (pour les types linéaires, comme dans ce cas) mathématiquement. En colorant (généralement en bleu foncé) le boîtier transparent, le phototransistor peut être bloqué pour certaines longueurs d'onde, de sorte qu'il est par exemple conçu principalement pour le rayonnement infrarouge et moins influencé par la lumière artificielle. Le phototransistor influence le courant qui circule en fonction de l'incidence de la lumière, de sorte que la tension qui chute aux bornes de la résistance varie (diviseur de tension), ce qui permet de calculer l'intensité lumineuse.
Attention! Ce capteur n'est inclus que dans la révision 2 du kit de capteurs et a remplacé le capteur KY-018!
Données techniques | |
---|---|
Tension de service | 3,3 V - 5 V |
Résistance ferme et connue | 10 kΩ |
Dimensions | 28 x 15 x 7 mm |
Affectation des raccordements
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 |
**Le Raspberry Pi, contrairement à l'Arduino, ne possède pas d'entrées analogiques ou aucun ADC (convertisseur analogique-numérique) n'est intégré dans la puce du Raspberry Pi. Cela limite le Raspberry Pi dans la mesure où l'on souhaite utiliser des capteurs pour lesquels aucune valeur numérique n'est émise, mais pour lesquels il s'agit d'une valeur qui varie en permanence (exemple : potentiomètre -> autre position = autre valeur de tension).
Pour contourner ce problème, notre kit de capteurs X40 contient le KY-053, un module avec un ADC 16 bits que vous pouvez utiliser sur le Raspberry pour lui ajouter 4 entrées analogiques. Ce module est connecté au Raspberry Pi par I2C, prend en charge la mesure analogique et transmet la valeur numérique au Raspberry Pi.
Nous recommandons donc d'intercaler le module KY-053 avec le CAN en question pour les capteurs analogiques de ce kit. Pour plus d'informations, consultez la page d'information sur le KY-053 Analog Digital Converter.
Exemple de code
Attention! Pour utiliser ce module en combinaison avec le convertisseur analogique-numérique KY-053, il est nécessaire de créer un environnement virtuel. Vous trouverez toutes les informations nécessaires à ce sujet ici.
#!/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 gpiozero
# Creating the I2C bus
i2c = busio.I2C(board.SCL, board.SDA)
# Creating the ADC object via the I2C bus
ads = ADS.ADS1115(i2c)
# Create single-ended input on the channels
chan0 = AnalogIn(ads, ADS.P0)
chan1 = AnalogIn(ads, ADS.P1)
chan2 = AnalogIn(ads, ADS.P2)
chan3 = AnalogIn(ads, ADS.P3)
delayTime = 1
while True:
analog = '%.2f' % chan0.voltage
# Output via console
print ("Analog voltage value:", analog,"V")
time.sleep(delayTime)
Le capteur permet de déterminer le niveau de luminosité, ce qui était par exemple utilisé autrefois dans les posemètres pour les appareils photo. Les phototransistors sont souvent utilisés pour adapter la luminosité d'un écran (par exemple dans un réveil ou sur le tableau de bord d'une voiture) à l'intensité de la lumière ambiante : Lorsqu'il fait sombre, l'écran doit être faiblement éclairé pour ne pas éblouir.
Un capteur de lumière modifie sa valeur électrique en fonction de l'intensité de la lumière incidente. Jusqu'à il y a une dizaine d'années, on utilisait volontiers à cet effet des photorésistances, appelées en anglais Light Dependent Resistor (LDR). Plus la lumière tombe sur la photorésistance, plus sa résistance diminue. Cependant, pour des raisons de protection de l'environnement, elles sont de moins en moins utilisées, car les matériaux utilisés sont interdits par les directives. De nos jours, l'utilisation de phototransistors est dans l'air du temps. Le flux lumineux incident sur la surface remplace la borne de base habituelle et commande, comme d'habitude, le courant collecteur-émetteur. Le courant qui circule représente donc la luminosité et peut être converti en éclairement à l'aide d'un tableau comparatif ou (pour les types linéaires, comme dans ce cas) mathématiquement. En colorant (généralement en bleu foncé) le boîtier transparent, le phototransistor peut être bloqué pour certaines longueurs d'onde, de sorte qu'il est par exemple conçu principalement pour le rayonnement infrarouge et moins influencé par la lumière artificielle. Le phototransistor influence le courant qui circule en fonction de l'incidence de la lumière, de sorte que la tension qui chute aux bornes de la résistance varie (diviseur de tension), ce qui permet de calculer l'intensité lumineuse.
Attention! Ce capteur n'est inclus que dans la révision 2 du kit de capteurs et a remplacé le capteur KY-018!
Données techniques | |
---|---|
Tension de service | 3,3 V - 5 V |
Résistance ferme et connue | 10 kΩ |
Dimensions | 28 x 15 x 7 mm |
Affectation des raccordements
Micro:Bit | Sensor |
---|---|
GND | GND |
5 V | +V |
Pin A5 | Signal |
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
Le capteur permet de déterminer le niveau de luminosité, ce qui était par exemple utilisé autrefois dans les posemètres pour les appareils photo. Les phototransistors sont souvent utilisés pour adapter la luminosité d'un écran (par exemple dans un réveil ou sur le tableau de bord d'une voiture) à l'intensité de la lumière ambiante : Lorsqu'il fait sombre, l'écran doit être faiblement éclairé pour ne pas éblouir.
Un capteur de lumière modifie sa valeur électrique en fonction de l'intensité de la lumière incidente. Jusqu'à il y a une dizaine d'années, on utilisait volontiers à cet effet des photorésistances, appelées en anglais Light Dependent Resistor (LDR). Plus la lumière tombe sur la photorésistance, plus sa résistance diminue. Cependant, pour des raisons de protection de l'environnement, elles sont de moins en moins utilisées, car les matériaux utilisés sont interdits par les directives. De nos jours, l'utilisation de phototransistors est dans l'air du temps. Le flux lumineux incident sur la surface remplace la borne de base habituelle et commande, comme d'habitude, le courant collecteur-émetteur. Le courant qui circule représente donc la luminosité et peut être converti en éclairement à l'aide d'un tableau comparatif ou (pour les types linéaires, comme dans ce cas) mathématiquement. En colorant (généralement en bleu foncé) le boîtier transparent, le phototransistor peut être bloqué pour certaines longueurs d'onde, de sorte qu'il est par exemple conçu principalement pour le rayonnement infrarouge et moins influencé par la lumière artificielle. Le phototransistor influence le courant qui circule en fonction de l'incidence de la lumière, de sorte que la tension qui chute aux bornes de la résistance varie (diviseur de tension), ce qui permet de calculer l'intensité lumineuse.
Attention! Ce capteur n'est inclus que dans la révision 2 du kit de capteurs et a remplacé le capteur KY-018!
Données techniques | |
---|---|
Tension de service | 3,3 V - 5 V |
Résistance ferme et connue | 10 kΩ |
Dimensions | 28 x 15 x 7 mm |
Affectation des raccordements
Raspberry Pi Pico | Sensor |
---|---|
GND | GND |
5 V | +V |
GPIO26 (A0) | Signal |
Exemple de code
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.
# Charger des bibliothèques
from machine import ADC
import math
from time import sleep
# définir des variables fixes
U1 = 5
R2 = 10000
# Initialiser le capteur sur le GPIO26
sensor = ADC(0)
print("KY-054 Test de luminosité")
while True:
# Lecture de la tension du capteur de lumière
rawValue = sensor.read_u16()
U2 = rawValue * 3.3 / 65536
# U2 pour vérifier la division
if U2 != 0:
# Calculer la résistance du capteur
R1 = (U1 * R2) / U2
# Calculer le courant
I = (U1 / R1) * 1000000
# Calculer le lux
lux = math.log(I) / 0.06
else:
lux = 0
# Afficher le résultat
print("Lux:", round(lux, 2))
sleep(1)