Inhoudsopgave:

Lichtintensiteitsberekening met BH1715 en Arduino Nano - Ajarnpa
Lichtintensiteitsberekening met BH1715 en Arduino Nano - Ajarnpa

Video: Lichtintensiteitsberekening met BH1715 en Arduino Nano - Ajarnpa

Video: Lichtintensiteitsberekening met BH1715 en Arduino Nano - Ajarnpa
Video: Arduino Nano - BH1715 Digital Ambient Light Sensor Tutorial 2024, Juli-
Anonim
Image
Image

Gisteren werkten we aan LCD-schermen en terwijl we erover werkten, realiseerden we ons hoe belangrijk het is om de lichtintensiteit te berekenen. Lichtintensiteit is niet alleen belangrijk in het fysieke domein van deze wereld, maar het heeft ook zijn welbekende rol in het biologische domein. Nauwkeurige schatting van de lichtintensiteit speelt een cruciale rol in ons ecosysteem, in de groei van planten, enz. Daarom hebben we deze sensor BH1715 bestudeerd, een 16-bit seriële uitgangstype omgevingslichtsensor.

In deze tutorial gaan we de werking van BH1715 met Arduino Nano demonstreren.

Hardware die je hiervoor nodig hebt is als volgt:

1. BH1715 - Omgevingslichtsensor

2. Arduino nano

3. I2C-kabel

4. I2C-schild voor Arduino Nano

Stap 1: BH1715 Overzicht:

Wat je nodig hebt..!!
Wat je nodig hebt..!!

Allereerst willen we u vertrouwd maken met de basiskenmerken van de sensormodule BH1715 en het communicatieprotocol waarop deze werkt.

BH1715 is een digitale omgevingslichtsensor met een I²C-businterface. De BH1715 wordt vaak gebruikt om gegevens over het omgevingslicht te verkrijgen voor het aanpassen van de achtergrondverlichting van LCD en toetsenbord voor mobiele apparaten. Dit apparaat biedt een 16-bits resolutie en een instelbaar meetbereik, waardoor detectie van 0,23 tot 100.000 lux mogelijk is.

Het communicatieprotocol waarop de sensor werkt is I2C. I2C staat voor de inter-geïntegreerde schakeling. Het is een communicatieprotocol waarbij de communicatie plaatsvindt via SDA (seriële data) en SCL (seriële klok) lijnen. Het maakt het mogelijk om meerdere apparaten tegelijkertijd aan te sluiten. Het is een van de eenvoudigste en meest efficiënte communicatieprotocollen.

Stap 2: Wat je nodig hebt.

Wat je nodig hebt..!!
Wat je nodig hebt..!!
Wat je nodig hebt..!!
Wat je nodig hebt..!!
Wat je nodig hebt..!!
Wat je nodig hebt..!!

De materialen die we nodig hebben om ons doel te bereiken, omvatten de volgende hardwarecomponenten:

1. BH1715 - Omgevingslichtsensor

2. Arduino Nano

3. I2C-kabel

4. I2C-schild voor Arduino nano

Stap 3: Hardware-aansluiting:

Hardware-aansluiting
Hardware-aansluiting
Hardware-aansluiting
Hardware-aansluiting

De hardware-aansluitingssectie legt in feite de bedradingsverbindingen uit die nodig zijn tussen de sensor en de Raspberry Pi. Zorgen voor correcte verbindingen is de basisbehoefte bij het werken aan elk systeem voor de gewenste output. De vereiste verbindingen zijn dus als volgt:

De BH1715 werkt via I2C. Hier is het voorbeeldbedradingsschema, dat laat zien hoe elke interface van de sensor moet worden aangesloten.

Out-of-the-box, het bord is geconfigureerd voor een I2C-interface, daarom raden we aan om deze aansluiting te gebruiken als je verder agnostisch bent. Alles wat je nodig hebt zijn vier draden!

Er zijn slechts vier aansluitingen nodig Vcc, Gnd, SCL en SDA-pinnen en deze worden verbonden met behulp van I2C-kabel.

Deze verbindingen worden gedemonstreerd in de bovenstaande afbeeldingen.

Stap 4: Lichtintensiteitsmeting Arduino-code:

Lichtintensiteitsmeting Arduino-code
Lichtintensiteitsmeting Arduino-code
Lichtintensiteitsmeting Arduino-code
Lichtintensiteitsmeting Arduino-code

Laten we nu beginnen met de Arduino-code.

Bij het gebruik van de sensormodule met de Arduino nemen we de Wire.h-bibliotheek op. De "Wire"-bibliotheek bevat de functies die de i2c-communicatie tussen de sensor en het Arduino-bord vergemakkelijken.

De volledige Arduino-code wordt hieronder gegeven voor het gemak van de gebruiker:

#erbij betrekken

// BH1715 I2C-adres is 0x23(35) #define Addr 0x23 void setup() {// Initialiseer I2C-communicatie als MASTER Wire.begin(); // Initialiseer seriële communicatie, stel baudrate in = 9600 Serial.begin (9600); // Start I2C Transmission Wire.beginTransmission (Addr); // Stuur power-on-commando Wire.write (0x01); // Stop I2C-transmissie Wire.endTransmission (); // Start I2C Transmission Wire.beginTransmission (Addr); // Stuur continue meetopdracht Wire.write (0x10); // Stop I2C-transmissie Wire.endTransmission (); vertraging (300); } void loop() { unsigned int data [2]; // Verzoek 2 byte aan gegevens Wire.requestFrom (Addr, 2); // Lees 2 bytes aan gegevens // ALS msb, ALS lsb if (Wire.available () == 2) { data [0] = Wire.read (); data[1] = Draad.lezen(); } vertraging (300); // converteer de data float luminantie = ((data [0] * 256) + data [1]) / 1.20; // Gegevens uitvoeren naar seriële monitor Serial.print ("Luminantie van omgevingslicht:"); Serial.print(luminantie); Serial.println ("lux"); }

Het volgende deel van de code initieert de i2c-communicatie en de seriële communicatie met behulp van de functies Wire.begin() en Serial.begin().

// Initialiseer I2C-communicatie als MASTER

Draad.begin(); // Initialiseer seriële communicatie, stel baudrate in = 9600 Serial.begin (9600); // Start I2C Transmission Wire.beginTransmission (Addr); // Stuur power-on-commando Wire.write (0x01); // Stop I2C-transmissie Wire.endTransmission (); // Start I2C Transmission Wire.beginTransmission (Addr); // Stuur continue meetopdracht Wire.write (0x10); // Stop I2C-transmissie Wire.endTransmission (); vertraging (300);

De lichtintensiteit wordt gemeten in het volgende gedeelte van de code.

niet-ondertekende int-gegevens[2];

// Verzoek 2 byte aan gegevens Wire.requestFrom (Addr, 2); // Lees 2 bytes aan gegevens // ALS msb, ALS lsb if (Wire.available () == 2) { data [0] = Wire.read (); data[1] = Draad.lezen(); } vertraging (300); // converteer de data float luminantie = ((data [0] * 256) + data [1]) / 1.20; // Gegevens uitvoeren naar seriële monitor Serial.print ("Luminantie van omgevingslicht:"); Serial.print(luminantie); Serial.println ("lux");

Het enige dat u hoeft te doen, is de code in Arduino branden en uw metingen op de seriële poort controleren. De uitvoer wordt ook ter referentie in de bovenstaande afbeelding weergegeven.

Stap 5: Toepassingen:

Toepassingen
Toepassingen

BH1715 is een omgevingslichtsensor met digitale uitgang die kan worden ingebouwd in mobiele telefoons, lcd-tv's, NOTE-pc's, enz. Het kan ook worden gebruikt in draagbare spelcomputers, digitale camera's, digitale videocamera's, PDA's, lcd-schermen en nog veel meer apparaten die efficiënte lichtgevoelige toepassingen.

Aanbevolen: