Sisukord:

Valguse intensiivsuse arvutamine BH1715 ja Arduino Nano abil: 5 sammu
Valguse intensiivsuse arvutamine BH1715 ja Arduino Nano abil: 5 sammu

Video: Valguse intensiivsuse arvutamine BH1715 ja Arduino Nano abil: 5 sammu

Video: Valguse intensiivsuse arvutamine BH1715 ja Arduino Nano abil: 5 sammu
Video: Elutöö preemia laureaadi akadeemik Agu Laisa ettekanne: FOTOSÜNTEES – MUSTVALGE JA VÄRVILINE 2024, November
Anonim
Image
Image

Eile töötasime LCD -ekraanide kallal ja nende üle töötades mõistsime valguse intensiivsuse arvutamise tähtsust. Valguse intensiivsus pole oluline mitte ainult selle maailma füüsilises valdkonnas, vaid sellel on ka bioloogilises valdkonnas hästi öeldud roll. Valguse intensiivsuse täpne hindamine mängib keskset rolli meie ökosüsteemis, taimede kasvus jne. Seetõttu uurisime selle eesmärgi saavutamiseks seda andurit BH1715, mis on 16-bitine jadaväljundiga ümbritseva valguse andur.

Selles õpetuses demonstreerime BH1715 tööd Arduino Nanoga.

Riistvara, mida selleks vajate, on järgmine:

1. BH1715 - ümbritseva valguse andur

2. Arduino nano

3. I2C kaabel

4. I2C kilp Arduino Nano jaoks

1. samm: BH1715 ülevaade:

Mida sa vajad..!!
Mida sa vajad..!!

Kõigepealt soovime tutvustada teile andurimooduli BH1715 põhiomadusi ja sideprotokolli, millel see töötab.

BH1715 on digitaalne ümbritseva valguse andur, millel on I²C siiniliides. BH1715 kasutatakse tavaliselt ümbritseva valguse andmete saamiseks, et reguleerida mobiilseadmete LCD -ekraani ja klaviatuuri taustvalgustust. See seade pakub 16-bitist eraldusvõimet ja reguleeritavat mõõtepiirkonda, mis võimaldab tuvastada 0,23 kuni 100 000 luksi.

Sideprotokoll, millel andur töötab, on I2C. I2C tähistab integraallülitust. See on suhtlusprotokoll, milles side toimub SDA (jadaandmed) ja SCL (jadakell) liinide kaudu. See võimaldab ühendada mitu seadet korraga. See on üks lihtsamaid ja tõhusamaid suhtlusprotokolle.

Samm: mida vajate..

Mida sa vajad..!!
Mida sa vajad..!!
Mida sa vajad..!!
Mida sa vajad..!!
Mida sa vajad..!!
Mida sa vajad..!!

Eesmärgi saavutamiseks vajalikud materjalid sisaldavad järgmisi riistvarakomponente:

1. BH1715 - ümbritseva valguse andur

2. Arduino Nano

3. I2C kaabel

4. I2C kilp Arduino nano jaoks

3. samm: riistvara ühendamine:

Riistvara ühendamine
Riistvara ühendamine
Riistvara ühendamine
Riistvara ühendamine

Riistvara ühendamise jaotis selgitab põhimõtteliselt anduri ja vaarika pi vahel vajalikke juhtmestiku ühendusi. Soovitud väljundi mis tahes süsteemiga töötamisel on põhivajadus õigete ühenduste tagamine. Seega on vajalikud ühendused järgmised:

BH1715 töötab üle I2C. Siin on näide ühendusskeemist, mis näitab, kuidas anduri iga liidest ühendada.

Valmis plaat on konfigureeritud I2C liidese jaoks, seega soovitame seda ühendamist kasutada, kui olete muidu agnostik. Kõik, mida vajate, on neli juhtmest!

Vaja on ainult nelja ühendust Vcc, Gnd, SCL ja SDA ning need ühendatakse I2C kaabli abil.

Neid seoseid on näidatud ülaltoodud piltidel.

4. samm: valguse intensiivsuse mõõtmine Arduino kood:

Valguse intensiivsuse mõõtmine Arduino kood
Valguse intensiivsuse mõõtmine Arduino kood
Valguse intensiivsuse mõõtmine Arduino kood
Valguse intensiivsuse mõõtmine Arduino kood

Alustame nüüd Arduino koodiga.

Arduinoga andurimoodulit kasutades kaasame Wire.h raamatukogu. Juhtmeraamatukogu sisaldab funktsioone, mis hõlbustavad i2c suhtlust anduri ja Arduino plaadi vahel.

Kogu Arduino kood on kasutaja mugavuse huvides toodud allpool:

#kaasake

// BH1715 I2C aadress on 0x23 (35) #define Addr 0x23 void setup () {// Initsialiseeri I2C side kui MASTER Wire.begin (); // Initsialiseeri jadakommunikatsioon, määra edastuskiirus = 9600 Serial.begin (9600); // Käivita I2C ülekandejuhe Wire.beginTransmission (Addr); // Sisselülitamise käsk Wire.write (0x01); // Peata I2C ülekanne Wire.endTransmission (); // Käivita I2C ülekandejuhe Wire.beginTransmission (Addr); // Saada pideva mõõtmise käsk Wire.write (0x10); // Peata I2C ülekanne Wire.endTransmission (); viivitus (300); } void loop () {unsigned int data [2]; // Taotle 2 baiti andmeid Wire.requestFrom (Addr, 2); // Loe 2 baiti andmeid // ALS msb, ALS lsb if (Wire.available () == 2) {data [0] = Wire.read (); andmed [1] = Wire.read (); } viivitus (300); // teisendada andmete ujuki heledus = ((andmed [0] * 256) + andmed [1]) /1,20; // Väljundandmed jadamonitorile Serial.print ("Ümbritseva valguse heledus:"); Serial.print (heledus); Serial.println ("lux"); }

Koodi järgmine osa käivitab i2c -side ja jadaühenduse funktsiooni Wire.begin () ja Serial.begin () abil.

// Initsialiseeri I2C side kui MASTER

Wire.begin (); // Initsialiseeri jadakommunikatsioon, määra edastuskiirus = 9600 Serial.begin (9600); // Käivita I2C ülekandejuhe Wire.beginTransmission (Addr); // Sisselülitamise käsk Wire.write (0x01); // Peata I2C ülekanne Wire.endTransmission (); // Käivita I2C ülekandejuhe Wire.beginTransmission (Addr); // Saada pideva mõõtmise käsk Wire.write (0x10); // Peata I2C ülekanne Wire.endTransmission (); viivitus (300);

Valguse intensiivsust mõõdetakse koodi järgmises osas.

allkirjastamata int andmed [2];

// Taotle 2 baiti andmeid Wire.requestFrom (Addr, 2); // Loe 2 baiti andmeid // ALS msb, ALS lsb if (Wire.available () == 2) {data [0] = Wire.read (); andmed [1] = Wire.read (); } viivitus (300); // teisendada andmete ujuki heledus = ((andmed [0] * 256) + andmed [1]) /1,20; // Väljundandmed jadamonitorile Serial.print ("Ümbritseva valguse heledus:"); Serial.print (heledus); Serial.println ("lux");

Kõik, mida pead tegema, on kood arduinos põletada ja oma näitu jadaportis kontrollida. Väljund on ülaltoodud pildil näidatud ka teie jaoks.

Samm: rakendused:

Rakendused
Rakendused

BH1715 on digitaalse väljundi ümbritseva valguse andur, mida saab kasutada mobiiltelefonis, LCD -teleris, MÄRKUSarvutis jne. Seda saab kasutada ka kaasaskantavas mängumasinas, digikaameras, digitaalses videokaameras, pihuarvutis, LCD -ekraanis ja paljudes muudes seadmetes, mis vajavad tõhusad valgustundlikud rakendused.

Soovitan: