Table des matières:

Calcul de l'intensité lumineuse à l'aide de BH1715 et Arduino Nano : 5 étapes
Calcul de l'intensité lumineuse à l'aide de BH1715 et Arduino Nano : 5 étapes

Vidéo: Calcul de l'intensité lumineuse à l'aide de BH1715 et Arduino Nano : 5 étapes

Vidéo: Calcul de l'intensité lumineuse à l'aide de BH1715 et Arduino Nano : 5 étapes
Vidéo: Lesson 98: Arduino 10 LED Push button Projects, Potentiometer LED Voltmeter and Traffic Light 2024, Juillet
Anonim
Image
Image

Hier, nous travaillions sur des écrans LCD, et en travaillant dessus, nous avons réalisé l'importance du calcul de l'intensité lumineuse. L'intensité lumineuse n'est pas seulement importante dans le domaine physique de ce monde, mais elle a aussi son rôle bien dit dans le domaine biologique. L'estimation précise de l'intensité lumineuse joue un rôle central dans notre écosystème, dans la croissance des plantes, etc. Ainsi, pour servir cet objectif, nous avons étudié ce capteur BH1715, qui est un capteur de lumière ambiante de type sortie série 16 bits.

Dans ce tutoriel, nous allons démontrer le fonctionnement du BH1715 avec Arduino Nano.

Le matériel dont vous aurez besoin à cette fin est le suivant:

1. BH1715 - Capteur de lumière ambiante

2. Arduino nano

3. Câble I2C

4. Bouclier I2C pour Arduino Nano

Étape 1: Présentation du BH1715:

De quoi as-tu besoin..!!
De quoi as-tu besoin..!!

Tout d'abord, nous aimerions vous familiariser avec les caractéristiques de base du module capteur qu'est le BH1715 et le protocole de communication sur lequel il fonctionne.

Le BH1715 est un capteur de lumière ambiante numérique avec une interface de bus I²C. Le BH1715 est couramment utilisé pour obtenir les données de lumière ambiante pour ajuster la puissance du rétroéclairage de l'écran LCD et du clavier pour les appareils mobiles. Cet appareil offre une résolution de 16 bits et une plage de mesure réglable, permettant une détection de 0,23 à 100 000 lux.

Le protocole de communication sur lequel fonctionne le capteur est I2C. I2C signifie le circuit inter-intégré. Il s'agit d'un protocole de communication dans lequel la communication s'effectue via des lignes SDA (données série) et SCL (horloge série). Il permet de connecter plusieurs appareils en même temps. C'est l'un des protocoles de communication les plus simples et les plus efficaces.

Étape 2: Ce dont vous avez besoin..

De quoi as-tu besoin..!!
De quoi as-tu besoin..!!
De quoi as-tu besoin..!!
De quoi as-tu besoin..!!
De quoi as-tu besoin..!!
De quoi as-tu besoin..!!

Les matériaux dont nous avons besoin pour atteindre notre objectif comprennent les composants matériels suivants:

1. BH1715 - Capteur de lumière ambiante

2. Arduino Nano

3. Câble I2C

4. Bouclier I2C pour Arduino nano

Étape 3: connexion matérielle:

Raccordement matériel
Raccordement matériel
Raccordement matériel
Raccordement matériel

La section de raccordement matériel explique essentiellement les connexions de câblage requises entre le capteur et le raspberry pi. Assurer des connexions correctes est la nécessité de base tout en travaillant sur n'importe quel système pour la sortie souhaitée. Ainsi, les connexions requises sont les suivantes:

Le BH1715 fonctionnera sur I2C. Voici l'exemple de schéma de câblage, montrant comment câbler chaque interface du capteur.

Prête à l'emploi, la carte est configurée pour une interface I2C, en tant que telle, nous vous recommandons d'utiliser cette connexion si vous êtes par ailleurs agnostique. Tout ce dont vous avez besoin, c'est de quatre fils !

Seules quatre connexions sont nécessaires pour les broches Vcc, Gnd, SCL et SDA et celles-ci sont connectées à l'aide d'un câble I2C.

Ces connexions sont illustrées dans les images ci-dessus.

Étape 4: Code Arduino de mesure de l'intensité lumineuse:

Code Arduino de mesure de l'intensité lumineuse
Code Arduino de mesure de l'intensité lumineuse
Code Arduino de mesure de l'intensité lumineuse
Code Arduino de mesure de l'intensité lumineuse

Commençons maintenant par le code Arduino.

Lors de l'utilisation du module de capteur avec l'Arduino, nous incluons la bibliothèque Wire.h. La bibliothèque "Wire" contient les fonctions qui facilitent la communication i2c entre le capteur et la carte Arduino.

Le code Arduino complet est donné ci-dessous pour la commodité de l'utilisateur:

#comprendre

// L'adresse I2C du BH1715 est 0x23(35) #define Addr 0x23 void setup() { // Initialise la communication I2C en tant que MASTER Wire.begin(); // Initialiser la communication série, définir le débit en bauds = 9600 Serial.begin(9600); // Démarrer la transmission I2C Wire.beginTransmission(Adr); // Envoie la commande de mise sous tension Wire.write(0x01); // Arrêter la transmission I2C Wire.endTransmission(); // Démarrer la transmission I2C Wire.beginTransmission(Adr); // Envoie une commande de mesure continue Wire.write(0x10); // Arrêter la transmission I2C Wire.endTransmission(); retard (300); } void loop() { unsigned int data[2]; // Demande 2 octets de données Wire.requestFrom(Addr, 2); // Lecture de 2 octets de données // ALS msb, ALS lsb if(Wire.available() == 2) { data[0] = Wire.read(); données[1] = Wire.read(); } délai(300); //convertir les données flottantes luminance = ((data[0] * 256) + data[1]) / 1.20; // Sortie des données vers le moniteur série Serial.print("Ambiant Light Luminance:"); Serial.print(luminance); Serial.println("lux"); }

La partie suivante du code initie la communication i2c et la communication série à l'aide des fonctions Wire.begin() et Serial.begin().

// Initialiser la communication I2C en tant que MASTER

Fil.begin(); // Initialiser la communication série, définir le débit en bauds = 9600 Serial.begin(9600); // Démarrer la transmission I2C Wire.beginTransmission(Adr); // Envoie la commande de mise sous tension Wire.write(0x01); // Arrêter la transmission I2C Wire.endTransmission(); // Démarrer la transmission I2C Wire.beginTransmission(Adr); // Envoie une commande de mesure continue Wire.write(0x10); // Arrêter la transmission I2C Wire.endTransmission(); retard (300);

L'intensité lumineuse est mesurée dans la section suivante du code.

données int non signées[2];

// Demande 2 octets de données Wire.requestFrom(Addr, 2); // Lecture de 2 octets de données // ALS msb, ALS lsb if(Wire.available() == 2) { data[0] = Wire.read(); données[1] = Wire.read(); } délai(300); //convertir les données flottantes luminance = ((data[0] * 256) + data[1]) / 1.20; // Sortie des données vers le moniteur série Serial.print("Ambiant Light Luminance:"); Serial.print(luminance); Serial.println("lux");

Tout ce que vous avez à faire est de graver le code dans arduino et de vérifier vos lectures sur le port série. La sortie est montrée dans l'image ci-dessus également pour votre référence.

Étape 5: Candidatures:

Applications
Applications

BH1715 est un capteur de lumière ambiante à sortie numérique qui peut être incorporé dans un téléphone portable, un téléviseur LCD, un PC NOTE, etc. Il peut également être utilisé dans une machine de jeu portable, un appareil photo numérique, une caméra vidéo numérique, un PDA, un écran LCD et de nombreux autres appareils nécessitant applications de détection de lumière efficaces.

Conseillé: