Stap 4: Arduino Code
Eerste hartelijk dank voor de Claws , creëerde hij een bibliotheek voor BH1750, kunt u check it Out.
Ik voorbereid een bibliotheek, probeerde op te lossen een probleem, zoals:
1) multi apparaat verbinding maakt, kunt u 2 apparaten van BH1750 met verschillende adressen, ADDR Pinstatus afhangen.
Als ADDR = laag, het adres zullen 0x23
Als ADDR = hoog, het adres is 0x5C
2) macht naar beneden modus, kun je je sensor in energiebesparende modus zodat het 0.01uA heeft verbruikt.
U kunt de bibliotheek van Github downloaden , Unzip de bijlage en zet het in de omslag van de bibliotheken in arduino pad, vervolgens herstarten de arduino IDE.
U kunt openen de schets wordt geleverd met deze bibliotheek.
Eerst program: Lees de Lux-waarde via seriële poort.
code:
/*
Dit is een eenvoudige code om te testen BH1750FVI licht senosr
communiceren met behulp van de I2C Protocol
deze bibliotheek inschakelen 2 slaaf apparaatadres
Hoofdadres 0x23
adres van de secundaire 0x5C
Deze sensor als volgt aansluiten:
VCC >>> 3,3 v
SDA >>> A4
SCL >>> A5
addr >> A3
GND >>> Gnd
Geschreven door: Mohannad-Rawashdeh
*/
Definieer eerst de bibliotheek:
#include < BH1750FVI.h > / / Sensor bibliotheek
#include < Wire.h > / / I2C bibliotheek
BH1750FVI LightSensor;
void setup {/ / zetten uw setup-code hier, om het eenmalig uit te voeren:
Serial.begin(9600);
LightSensor.begin();
/*
Het adres voor deze sensor instellen
u kunt 2 verschillende adres
Device_Address_H "0x5C"
Device_Address_L "0x23"
Addr pin moet u verbinden met A3.
*/
LightSensor.SetAddress (Device_Address_H), //Address 0x5C
Om aan te passen de slaaf op ander adres, uncomment deze regel
lightMeter.SetAddress(Device_Address_L); Adres 0x5C
//-----------------------------------------------
/*
Stel de modus werken voor deze sensor
De volgende modus selecteren:
Continuous_H_resolution_Mode
Continuous_H_resolution_Mode2
Continuous_L_resolution_Mode
OneTime_H_resolution_Mode
OneTime_H_resolution_Mode2
OneTime_L_resolution_Mode
Het veiligheidsinformatieblad aanbevolen te gebruiken Continuous_H_resolution_Mode
*/
LightSensor.SetMode(Continuous_H_resolution_Mode);
Serial.println("running...");
}
void loop {}
Zet uw belangrijkste code hier, om het herhaaldelijk uitvoeren:
uint16_t lux = LightSensor.GetLightIntensity(); / / Get Lux-waarde
Serial.Print ("licht:");
Serial.Print(Lux);
Serial.println ("lux");
delay(1000);
}