INHOUDSOPGAWE:
- Stap 1: BH1715 Oorsig:
- Stap 2: Wat u benodig..
- Stap 3: Hardeware -aansluiting:
- Stap 4: Ligte intensiteitsmeting Arduino -kode:
- Stap 5: Aansoeke:
Video: Ligte intensiteitsberekening met behulp van BH1715 en Arduino Nano: 5 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
Gister het ons aan LCD -skerms gewerk, en terwyl ons daaroor werk, het ons besef hoe belangrik dit is om ligintensiteit te bereken. Ligintensiteit is nie net belangrik in die fisiese domein van hierdie wêreld nie, maar dit speel ook 'n welbekende rol in die biologiese domein. Akkurate skatting van ligintensiteit speel 'n deurslaggewende rol in ons ekosisteem, in die groei van plante, ens. Daarom het ons hierdie sensor BH1715 bestudeer, wat 'n 16-bis seriële uitset tipe omgevingsligsensor is.
In hierdie handleiding gaan ons die werking van BH1715 met Arduino Nano demonstreer.
Die hardeware wat u vir hierdie doel benodig, is soos volg:
1. BH1715 - Ambient Light Sensor
2. Arduino nano
3. I2C -kabel
4. I2C -skild vir Arduino Nano
Stap 1: BH1715 Oorsig:
In die eerste plek wil ons u vertroud maak met die basiese kenmerke van die sensormodule BH1715 en die kommunikasieprotokol waarop dit werk.
BH1715 is 'n digitale omgevingsligtsensor met 'n I²C -bus -koppelvlak. Die BH1715 word algemeen gebruik om die omgevingsligdata te verkry vir die aanpassing van die krag van die LCD- en toetsbordblok vir mobiele toestelle. Hierdie toestel bied 'n 16-bis-resolusie en 'n verstelbare meetbereik, wat opsporing van 0,23 tot 100 000 lux moontlik maak.
Die kommunikasieprotokol waarop die sensor werk, is I2C. I2C staan vir die inter-geïntegreerde stroombaan. Dit is 'n kommunikasieprotokol waarin die kommunikasie plaasvind deur middel van SDA (seriële data) en SCL (seriële klok) lyne. Dit maak dit moontlik om verskeie toestelle gelyktydig te verbind. Dit is een van die eenvoudigste en doeltreffendste kommunikasieprotokolle.
Stap 2: Wat u benodig..
Die materiaal wat ons nodig het om ons doel te bereik, bevat die volgende hardeware -komponente:
1. BH1715 - Ambient Light Sensor
2. Arduino Nano
3. I2C -kabel
4. I2C -skild vir Arduino nano
Stap 3: Hardeware -aansluiting:
Die hardeware -aansluitingsgedeelte verduidelik basies die bedradingverbindings wat tussen die sensor en die framboospi benodig word. Die korrekte noodsaaklikheid is om korrekte verbindings te verseker terwyl u aan 'n stelsel werk vir die gewenste uitset. Die vereiste verbindings is dus soos volg:
Die BH1715 werk oor I2C. Hier is die voorbeeld -bedradingsdiagram wat demonstreer hoe om elke koppelvlak van die sensor aan te sluit.
Uit die boks is die bord gekonfigureer vir 'n I2C-koppelvlak, daarom beveel ons aan dat u hierdie aansluiting gebruik as u anders agnosties is. Al wat u nodig het, is vier drade!
Slegs vier verbindings is nodig Vcc-, Gnd-, SCL- en SDA -penne en dit word met behulp van I2C -kabel verbind.
Hierdie verbindings word getoon in die foto's hierbo.
Stap 4: Ligte intensiteitsmeting Arduino -kode:
Kom ons begin nou met die Arduino -kode.
Terwyl ons die sensormodule met die Arduino gebruik, bevat ons die Wire.h -biblioteek. "Wire" -biblioteek bevat die funksies wat die i2c -kommunikasie tussen die sensor en die Arduino -bord vergemaklik.
Die volledige Arduino -kode word hieronder gegee vir die gemak van die gebruiker:
#insluit
// BH1715 I2C -adres is 0x23 (35) #define Addr 0x23 ongeldige opstelling () {// Begin I2C -kommunikasie as MASTER Wire.begin (); // Initialize Serial Communication, set baud rate = 9600 Serial.begin (9600); // Begin I2C Transmission Wire.beginTransmission (Addr); // Stuur krag op opdrag Wire.write (0x01); // Stop I2C Transmission Wire.endTransmission (); // Begin I2C Transmission Wire.beginTransmission (Addr); // Stuur deurlopende metingopdrag Wire.write (0x10); // Stop I2C Transmission Wire.endTransmission (); vertraging (300); } leemte -lus () {ongetekende int -data [2]; // Versoek 2 grepe data Wire.requestFrom (Addr, 2); // Lees 2 grepe data // ALS msb, ALS lsb if (Wire.available () == 2) {data [0] = Wire.read (); data [1] = Wire.read (); } vertraging (300); // verander die data float luminansie = ((data [0] * 256) + data [1]) /1,20; // Uitset data na die seriële monitor Serial.print ("Ambient Light Luminance:"); Reeks.afdruk (luminansie); Serial.println ("lux"); }
Die volgende deel van die kode begin die i2c -kommunikasie en die seriële kommunikasie met die funksie Wire.begin () en Serial.begin ().
// Initialiseer I2C -kommunikasie as MASTER
Wire.begin (); // Initialize Serial Communication, set baud rate = 9600 Serial.begin (9600); // Begin I2C Transmission Wire.beginTransmission (Addr); // Stuur krag op opdrag Wire.write (0x01); // Stop I2C Transmission Wire.endTransmission (); // Begin I2C Transmission Wire.beginTransmission (Addr); // Stuur deurlopende metingopdrag Wire.write (0x10); // Stop I2C Transmission Wire.endTransmission (); vertraging (300);
Ligintensiteit word gemeet in die volgende afdeling van die kode.
ongetekende int data [2];
// Versoek 2 grepe data Wire.requestFrom (Addr, 2); // Lees 2 grepe data // ALS msb, ALS lsb if (Wire.available () == 2) {data [0] = Wire.read (); data [1] = Wire.read (); } vertraging (300); // verander die data float luminansie = ((data [0] * 256) + data [1]) /1,20; // Uitset data na die seriële monitor Serial.print ("Ambient Light Luminance:"); Reeks.afdruk (luminansie); Serial.println ("lux");
Al wat u hoef te doen is om die kode in arduino te verbrand en u lesings op die seriële poort na te gaan. Die uitset word ook op die foto hierbo getoon vir u verwysing.
Stap 5: Aansoeke:
BH1715 is 'n digitale uitsetsensor wat omring kan word in 'n selfoon, 'n LCD -TV, 'n rekenaar, ens. doeltreffende ligwaarnemingstoepassings.
Aanbeveel:
Meting van ligintensiteit met behulp van BH1715 en Framboos Pi: 5 stappe
Meting van ligintensiteit deur gebruik te maak van BH1715 en Raspberry Pi: Gister was ons besig met LCD -skerms, en terwyl ons daaroor werk, besef ons die belangrikheid van ligintensiteitsberekening. Ligintensiteit is nie net belangrik in die fisiese domein van hierdie wêreld nie, maar dit speel ook 'n welbekende rol in die biologie
Beheer oor die hele wêreld met behulp van internet met behulp van Arduino: 4 stappe
Beheer oor die hele wêreld met behulp van internet met behulp van Arduino: Hallo, ek is Rithik. Ons gaan 'n internetbeheerde LED maak met u telefoon. Ons gaan sagteware soos Arduino IDE en Blynk gebruik. Dit is eenvoudig, en as u daarin geslaag het, kan u soveel elektroniese komponente beheer as wat u wil
Ligte intensiteit planne met behulp van Arduino en Python's Arduino Master Library: 5 stappe
Ligte intensiteit met behulp van Arduino en Python se Arduino Master Library: Arduino is 'n ekonomiese, maar tog baie doeltreffende en funksionele hulpmiddel, en die programmering in Embedded C maak die proses vervelig! Die Arduino_Master -module van Python vereenvoudig dit en laat ons berekeninge uitvoer, vulliswaardes verwyder
Monitor versnelling met behulp van Raspberry Pi en AIS328DQTR met behulp van Python: 6 stappe
Monitering van versnelling met behulp van Raspberry Pi en AIS328DQTR Gebruik van Python: Versnelling is eindig, volgens ek volgens sommige wette van die fisika.- Terry Riley 'n Jagluiperd gebruik ongelooflike versnelling en vinnige spoedveranderinge wanneer hy jaag. Die vinnigste wesens aan wal gebruik af en toe sy hoogste tempo om prooi te vang. Die
Ligte intensiteitsberekening met behulp van BH1715 en partikelfoton: 5 stappe
Ligte intensiteitsberekening met behulp van BH1715 en Particle Photon: Gister was ons besig met LCD -skerms, en terwyl ons daaroor werk, besef ons die belangrikheid van ligintensiteitsberekening. Ligintensiteit is nie net belangrik in die fisiese domein van hierdie wêreld nie, maar dit speel ook 'n welbekende rol in die biologie