Étape 4: Intensité lumineuse mesure Arduino Code :
Permet de démarrer avec l' arduino code maintenant.
Lorsque vous utilisez le module détecteur avec l’arduino, nous incluons la bibliothèque Wire.h. Bibliothèque « Fils » contient les fonctions qui facilitent la communication i2c entre le capteur et la carte arduino.
Le code entier arduino est donné ci-dessous pour la commodité de l’utilisateur :
#include<Wire.h> // BH1715 I2C address is 0x23(35) #define Addr 0x23 void setup() { // Initialise I2C communication as MASTER Wire.begin(); // Initialise Serial Communication, set baud rate = 9600 Serial.begin(9600); // Start I2C Transmission Wire.beginTransmission(Addr); // Send power on command Wire.write(0x01); // Stop I2C Transmission Wire.endTransmission(); // Start I2C Transmission Wire.beginTransmission(Addr); // Send continuous measurement command Wire.write(0x10); // Stop I2C Transmission Wire.endTransmission(); delay(300); } void loop() { unsigned int data[2]; // Request 2 byte of data Wire.requestFrom(Addr, 2); // Read 2 bytes of data // ALS msb, ALS lsb if(Wire.available() == 2) { data[0] = Wire.read(); data[1] = Wire.read(); } delay(300); //convert the data float luminance = ((data[0] * 256) + data[1]) / 1.20; // Output data to serial monitor Serial.print("Ambient Light Luminance :"); Serial.print(luminance); Serial.println(" lux"); }
La partie suivante de la communication d’intiates l’i2c du code et de la communication série avec l’aide des fonctions Wire.begin() et Serial.begin().
// Initialise I2C communication as MASTER Wire.begin(); // Initialise Serial Communication, set baud rate = 9600 Serial.begin(9600); // Start I2C Transmission Wire.beginTransmission(Addr); // Send power on command Wire.write(0x01); // Stop I2C Transmission Wire.endTransmission(); // Start I2C Transmission Wire.beginTransmission(Addr); // Send continuous measurement command Wire.write(0x10); // Stop I2C Transmission Wire.endTransmission(); delay(300);
L’intensité lumineuse est mesurée dans la section suivante du code.
unsigned int data[2]; // Request 2 byte of data Wire.requestFrom(Addr, 2); // Read 2 bytes of data // ALS msb, ALS lsb if(Wire.available() == 2) { data[0] = Wire.read(); data[1] = Wire.read(); } delay(300); //convert the data float luminance = ((data[0] * 256) + data[1]) / 1.20; // Output data to serial monitor Serial.print("Ambient Light Luminance :"); Serial.print(luminance); Serial.println(" lux");
Tout ce que vous devez faire est de graver le code dans l’arduino et vérifiez vos relevés sur port série. La sortie est montrée dans l’image ci-dessus également pour votre référence.