Stap 4: Lichtintensiteit meting Arduino Code:
Laten we beginnen met de arduino code nu.
Tijdens het gebruik van de Sensormodule met de arduino, nemen wij Wire.h bibliotheek. "Wire" bibliotheek bevat de functies die de i2c communicatie tussen de sensor en de arduino board.
De gehele arduino-code wordt hieronder gegeven voor het gemak van de gebruiker:
#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"); }
Het volgende deel van de code intiates de i2c communicatie en de seriële communicatie met behulp van Wire.begin() en Serial.begin() functie.
// 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);
Lichtintensiteit wordt gemeten in de volgende sectie van de 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");
Alles wat u hoeft te doen is het branden van de code in de arduino en controleer uw lezingen op de seriële poort. De uitvoer wordt weergegeven in de bovenstaande afbeelding ook voor uw referentie.