BH1750FVI Module Capteur d’Intensité de Lumière Numérique

48,00 DH 60,00 DH

Disponibilité:

31 en stock

UGS : 0176 Catégories : ,

Description

Module Capteur d’Intensité de Lumière Numérique BH1750FVI

Le module capteur d’intensité de lumière numérique BH1750FVI est un capteur de lumière ambiante numérique qui utilise l’interface I2C pour communiquer. Ce capteur peut mesurer la luminosité en lux (lx) dans une gamme de 1 à 65535 lx, ce qui le rend idéal pour ajuster la luminosité des écrans de téléphones mobiles, d’écrans LCD, ainsi que pour contrôler les phares des voitures en fonction de l’éclairage extérieur.

Caractéristiques en détails

  • Tension de fonctionnement : 3V à 5V
  • Gamme de mesure : 1 à 65535 lx
  • Consommation de courant : 0.12 mA
  • Interface de communication : I2C
  • Précision : ±20%
  • Spectre de détection : Sensibilité maximale à 560 nm (spectre visible à l’œil humain)
  • Rejet de bruit lumineux : 50/60Hz
  • Compatibilité : Compatible avec les microcontrôleurs utilisant une logique de 3.3V ou 5V

Fonctionnement

Le BH1750FVI mesure l’intensité lumineuse incidente et convertit cette valeur en un nombre numérique 16 bits. Le capteur fournit directement la valeur de lux par l’intermédiaire de l’interface I2C, ce qui facilite son utilisation avec les microcontrôleurs comme Arduino. La sortie est directement lisible en lux, évitant ainsi tout calcul supplémentaire.

Applications

  • Ajustement de la luminosité des écrans de téléphones mobiles et d’écrans LCD
  • Contrôle des phares des voitures en fonction de la luminosité ambiante
  • Capteurs de lumière ambiante pour contrôler la luminosité des écrans
  • Applications domotiques pour mesurer l’intensité lumineuse ambiante

Brochage

  • VCC : Alimentation (3.3V ou 5V)
  • GND : Masse
  • SDA : Ligne de données pour I2C
  • SCL : Ligne de l’horloge pour I2C
  • ADDR : Sélection de l’adresse I2C (par défaut LOW = 0x23, HIGH = 0x5C)

Comment l’utiliser

Le capteur BH1750FVI est simple à utiliser grâce à son interface I2C. Connectez simplement les broches du capteur à votre microcontrôleur, puis utilisez une bibliothèque comme la bibliothèque BH1750 pour lire les valeurs de luminosité en lux.

Comment l’utiliser avec Arduino:

Code Arduino de base

#include <Wire.h>
#include <BH1750.h>


BH1750 lightMeter;


void setup(){
  Serial.begin(9600); // Initialiser la communication série
  Wire.begin(); // Initialiser la communication I2C
  lightMeter.begin(); // Initialiser le capteur BH1750
  Serial.println("BH1750 Test"); // Message de test
}


void loop() {
  float lux = lightMeter.readLightLevel(); // Lire la valeur de luminosité
  Serial.print("Light: ");
  Serial.print(lux);
  Serial.println(" lx");
  delay(1000); // Attendre 1 seconde avant la prochaine lecture
}

But du code

Ce code initialise le capteur BH1750 et lit les valeurs de luminosité en lux toutes les secondes, affichant les résultats dans le Moniteur Série de l’Arduino.

Composants nécessaires pour le code de base

  • Arduino Uno
  • Module capteur d’intensité de lumière BH1750FVI
  • Fils de connexion

Explication détaillée du code

  1. Inclusion des bibliothèques :
    • #include <Wire.h> : Inclut la bibliothèque Wire pour la communication I2C.
    • #include <BH1750.h> : Inclut la bibliothèque BH1750 pour interagir avec le capteur.
  2. Initialisation dans setup() :
    • Serial.begin(9600); : Initialise la communication série à 9600 bauds.
    • Wire.begin(); : Initialise la bibliothèque Wire pour la communication I2C.
    • lightMeter.begin(); : Initialise le capteur BH1750.
  3. Boucle principale loop() :
    • float lux = lightMeter.readLightLevel(); : Lit la valeur de la luminosité en lux.
    • Serial.print("Light: "); Serial.print(lux); Serial.println(" lx"); : Affiche la valeur lue dans le Moniteur Série.
    • delay(1000); : Attendre une seconde avant de lire à nouveau.

Brochage détaillé

  • VCC : Connecté au +5V de l’Arduino
  • GND : Connecté à la masse (GND) de l’Arduino
  • SDA : Connecté à la broche A4 de l’Arduino
  • SCL : Connecté à la broche A5 de l’Arduino

Code Arduino avancé

Ce code utilise un écran LCD I2C 1602 pour afficher les valeurs de luminosité en lux.

#include <Wire.h>
#include <BH1750.h>
#include <LiquidCrystal_I2C.h>


// Initialiser le capteur BH1750
BH1750 lightMeter;


// Initialiser l'écran LCD I2C à l'adresse 0x27 avec 16 colonnes et 2 lignes
LiquidCrystal_I2C lcd(0x27, 16, 2);


void setup(){
  Serial.begin(9600); // Initialiser la communication série
  Wire.begin(); // Initialiser la communication I2C
  lightMeter.begin(BH1750::CONTINUOUS_HIGH_RES_MODE); // Initialiser le capteur en mode haute résolution continue
  lcd.begin(); // Initialiser l'écran LCD
  lcd.backlight(); // Allumer le rétroéclairage de l'écran LCD
  lcd.print("BH1750 Test"); // Message de test
  Serial.println("BH1750 Advanced Test"); // Message de test pour le Moniteur Série
}


void loop() {
  float lux = lightMeter.readLightLevel(); // Lire la valeur de luminosité
  lcd.setCursor(0, 0); // Positionner le curseur à la première ligne
  lcd.print("Light: "); // Afficher le texte "Light:" sur l'écran LCD
  lcd.setCursor(0, 1); // Positionner le curseur à la deuxième ligne
  lcd.print(lux); // Afficher la valeur de luminosité sur l'écran LCD
  lcd.print(" lx"); // Afficher l'unité de mesure "lx"
  Serial.print("Light: ");
  Serial.print(lux);
  Serial.println(" lx");
  delay(500); // Attendre 500 ms avant la prochaine lecture
}

Explication détaillée du code avancé

  1. Inclusion des bibliothèques :
    • #include <Wire.h> : Inclut la bibliothèque Wire pour la communication I2C.
    • #include <BH1750.h> : Inclut la bibliothèque BH1750 pour interagir avec le capteur.
    • #include <LiquidCrystal_I2C.h> : Inclut la bibliothèque LiquidCrystal_I2C pour contrôler l’écran LCD.
  2. Initialisation dans setup() :
    • Serial.begin(9600); : Initialise la communication série à 9600 bauds.
    • Wire.begin(); : Initialise la bibliothèque Wire pour la communication I2C.
    • lightMeter.begin(BH1750::CONTINUOUS_HIGH_RES_MODE); : Initialise le capteur BH1750 en mode haute résolution continue.
    • lcd.begin(); : Initialise l’écran LCD.
    • lcd.backlight(); : Allume le rétroéclairage de l’écran LCD.
    • lcd.print("BH1750 Test"); : Affiche un message de test sur l’écran LCD.
    • Serial.println("BH1750 Advanced Test"); : Affiche un message de test dans le Moniteur Série.
  3. Boucle principale loop() :
    • float lux = lightMeter.readLightLevel(); : Lit la valeur de la luminosité en lux.
    • lcd.setCursor(0, 0); lcd.print("Light: "); : Affiche le texte “Light:” sur l’écran LCD.
    • lcd.setCursor(0, 1); lcd.print(lux); lcd.print(" lx"); : Affiche la valeur de luminosité sur l’écran LCD.
    • Serial.print("Light: "); Serial.print(lux); Serial.println(" lx"); : Affiche la valeur de luminosité dans le Moniteur Série.
    • delay(500); : Attendre 500 millisecondes avant de lire à nouveau.

Brochage détaillé

Capteur BH1750FVI

  • VCC → Arduino 5V
  • GND → Arduino GND
  • SDA → Arduino A4
  • SCL → Arduino A5

Écran LCD I2C 1602

  • VCC → Arduino 5V
  • GND → Arduino GND
  • SDA → Arduino A4 (partagée avec le capteur BH1750)
  • SCL → Arduino A5 (partagée avec le capteur BH1750)

 

Mots clés: intensity, light, luminosity, digital, sensor.