Étape 4: Arduino Code
Merci beaucoup d’abord pour griffes , il a créé une bibliothèque pour BH1750, vous pouvez le vérifier.
J’ai préparé une bibliothèque pour elle, tenté de résoudre un problème de ce genre :
1) multi connexion de périphérique, vous pouvez brancher 2 appareils de BH1750 avec des adresses différentes, fonction ADDR Pin État.
Si ADDR = LOW, l’adresse sera 0 x 23
Si ADDR = élevé, l’adresse sera 0x5C
Puissance 2) le mode, vous pouvez mettre votre capteur en mode économie d’énergie, il a consommer 0.01uA.
Vous pouvez télécharger la bibliothèque de Github , décompressez la pièce jointe et mettez-le dans le dossier bibliothèques arduino chemin, puis redémarrez l’arduino IDE.
Vous pouvez ouvrir l’esquisse est livré avec cette bibliothèque.
Premier programme : lire la valeur de Lux via un Port série.
Code :
/*
Il s’agit d’un simple code pour tester la lumière BH1750FVI senosr
communiquer en utilisant le protocole I2C
Cette bibliothèque activer adresse du périphérique esclave 2
Adresse principale 0 x 23
adresse secondaire 0x5C
Connectez ce capteur comme suit :
SCR >>> 3.3V
SDA >>> A4
SCL >>> A5
addr >> A3
GND >>> Gnd
Ecrit par : Mohannad Rawashdeh
*/
Tout d’abord définir la bibliothèque :
#include < BH1750FVI.h > / / Bibliothèque de capteur
#include < Wire.h > / / Bibliothèque I2C
BH1750FVI LightSensor ;
void setup() {/ / Mettez votre code de configuration ici, pour exécuter une fois :
Serial.Begin(9600) ;
LightSensor.begin() ;
/*
Définir l’adresse de ce capteur
vous pouvez utiliser une adresse différente 2
Device_Address_H « 0x5C »
Device_Address_L « 0 x 23 »
vous devez connecter la broche Addr à A3.
*/
LightSensor.SetAddress (Device_Address_H); //Address 0x5C
Pour ajuster l’esclave sur une autre adresse, décommentez cette ligne
lightMeter.SetAddress(Device_Address_L) ; Adresse 0x5C
//-----------------------------------------------
/*
Définissez le Mode de fonctionnement de ce capteur
Sélectionnez le Mode suivant :
Continuous_H_resolution_Mode
Continuous_H_resolution_Mode2
Continuous_L_resolution_Mode
OneTime_H_resolution_Mode
OneTime_H_resolution_Mode2
OneTime_L_resolution_Mode
La fiche de données recommandée d’utiliser Continuous_H_resolution_Mode
*/
LightSensor.SetMode(Continuous_H_resolution_Mode) ;
Serial.println("Running...") ;
}
void loop() {}
Mettez votre code principal ici, pour exécuter à plusieurs reprises :
lux uint16_t = LightSensor.GetLightIntensity(); / / Get valeur Lux
Serial.Print ("lumière:") ;
Serial.Print(Lux) ;
Serial.println ("lux") ;
Delay(1000) ;
}