Turinys:

Šviesos intensyvumo skaičiavimas naudojant BH1715 ir „Arduino Nano“: 5 žingsniai
Šviesos intensyvumo skaičiavimas naudojant BH1715 ir „Arduino Nano“: 5 žingsniai

Video: Šviesos intensyvumo skaičiavimas naudojant BH1715 ir „Arduino Nano“: 5 žingsniai

Video: Šviesos intensyvumo skaičiavimas naudojant BH1715 ir „Arduino Nano“: 5 žingsniai
Video: Высокая плотность 2022 2024, Liepa
Anonim
Image
Image

Vakar dirbome prie LCD ekranų, o dirbdami su jais supratome šviesos intensyvumo skaičiavimo svarbą. Šviesos intensyvumas yra svarbus ne tik šio pasaulio fizinėje srityje, bet ir gerai tariamas vaidmuo biologinėje srityje. Tikslus šviesos intensyvumo įvertinimas atlieka esminį vaidmenį mūsų ekosistemoje, augant augalams ir tt Taigi, šiam tikslui mes ištyrėme šį jutiklį BH1715, kuris yra 16 bitų serijinio išėjimo tipo aplinkos šviesos jutiklis.

Šioje pamokoje mes parodysime „BH1715“darbą su „Arduino Nano“.

Aparatūra, kurios jums reikės šiam tikslui, yra tokia:

1. BH1715 - aplinkos šviesos jutiklis

2. Arduino nano

3. I2C kabelis

4. I2C skydas „Arduino Nano“

1 žingsnis: BH1715 apžvalga:

Ko tau reikia..!!
Ko tau reikia..!!

Pirmiausia norime jus supažindinti su pagrindinėmis jutiklio modulio, kuris yra BH1715, ypatybėmis ir ryšio protokolu, kuriuo jis veikia.

BH1715 yra skaitmeninis aplinkos šviesos jutiklis su I²C magistralės sąsaja. BH1715 paprastai naudojamas aplinkos šviesos duomenims gauti, kad būtų galima reguliuoti mobiliųjų įrenginių LCD ir klaviatūros apšvietimo galią. Šis prietaisas siūlo 16 bitų skiriamąją gebą ir reguliuojamą matavimo diapazoną, leidžiantį aptikti nuo 0,23 iki 100 000 liuksų.

Ryšio protokolas, kuriame veikia jutiklis, yra I2C. I2C reiškia integruotą grandinę. Tai ryšio protokolas, kuriame ryšys vyksta per SDA (nuoseklius duomenis) ir SCL (nuoseklaus laikrodžio) linijas. Tai leidžia prijungti kelis įrenginius vienu metu. Tai vienas iš paprasčiausių ir efektyviausių ryšio protokolų.

2 žingsnis: ko jums reikia..

Ko tau reikia..!!
Ko tau reikia..!!
Ko tau reikia..!!
Ko tau reikia..!!
Ko tau reikia..!!
Ko tau reikia..!!

Medžiagos, reikalingos mūsų tikslui pasiekti, apima šiuos aparatūros komponentus:

1. BH1715 - aplinkos šviesos jutiklis

2. „Arduino Nano“

3. I2C kabelis

4. „I2C Shield“, skirtas „Arduino nano“

3 žingsnis: prijungimas prie aparatūros:

Aparatūros prijungimas
Aparatūros prijungimas
Aparatūros prijungimas
Aparatūros prijungimas

Techninės įrangos prijungimo skyriuje iš esmės paaiškinamos reikalingos laidų jungtys tarp jutiklio ir aviečių pi. Užtikrinti teisingas jungtis yra pagrindinė būtinybė dirbant su bet kuria norimos išvesties sistema. Taigi, būtinos jungtys yra šios:

BH1715 veiks per I2C. Čia yra elektros instaliacijos schemos pavyzdys, parodantis, kaip prijungti kiekvieną jutiklio sąsają.

Iš karto plokštė sukonfigūruota I2C sąsajai, todėl rekomenduojame naudoti šį prijungimą, jei esate kitaip agnostikas. Viskas, ko jums reikia, yra keturi laidai!

Reikia tik keturių jungčių „Vcc“, „Gnd“, „SCL“ir „SDA“kaiščių, kurie yra prijungti naudojant I2C kabelį.

Šie ryšiai parodyti aukščiau esančiose nuotraukose.

4 žingsnis: šviesos intensyvumo matavimas „Arduino“kodas:

Šviesos intensyvumo matavimas Arduino kodas
Šviesos intensyvumo matavimas Arduino kodas
Šviesos intensyvumo matavimas Arduino kodas
Šviesos intensyvumo matavimas Arduino kodas

Pradėkime nuo „Arduino“kodo dabar.

Naudodami jutiklio modulį su „Arduino“, įtraukiame „Wire.h“biblioteką. „Wire“bibliotekoje yra funkcijos, palengvinančios „i2c“ryšį tarp jutiklio ir „Arduino“plokštės.

Visas „Arduino“kodas pateiktas žemiau, kad būtų patogiau:

#įtraukti

// BH1715 I2C adresas yra 0x23 (35) #define Addr 0x23 void setup () {// Inicijuoti I2C ryšį kaip MASTER Wire.begin (); // Inicijuoti serijinį ryšį, nustatyti duomenų perdavimo spartą = 9600 Serial.begin (9600); // Pradėti I2C perdavimo laidą.beginTransmission (Addr); // Siųsti įjungimo komandą Wire.write (0x01); // Stop I2C Transmission Wire.endTransmission (); // Pradėti I2C perdavimo laidą.beginTransmission (Addr); // Siųsti nuolatinio matavimo komandą Wire.write (0x10); // Stop I2C Transmission Wire.endTransmission (); vėlavimas (300); } void loop () {unsigned int data [2]; // Prašyti 2 baitų duomenų Wire.requestFrom (Addr, 2); // Skaityti 2 baitus duomenų // ALS msb, ALS lsb if (Wire.available () == 2) {data [0] = Wire.read (); duomenys [1] = Wire.read (); } uždelsimas (300); // konvertuoti duomenų plūdės šviesumą = ((duomenys [0] * 256) + duomenys [1]) /1.20; // Išvesties duomenys į serijinį monitorių Serial.print ("Aplinkos šviesos ryškumas:"); Serijinis atspaudas (ryškumas); Serial.println („liuksas“); }

Tolesnė kodo dalis inicijuoja „i2c“ryšį ir nuoseklųjį ryšį naudojant „Wire.begin“() ir „Serial.begin“() funkcijas.

// Inicijuoti I2C komunikaciją kaip MASTER

Wire.begin (); // Inicijuoti serijinį ryšį, nustatyti duomenų perdavimo spartą = 9600 Serial.begin (9600); // Pradėti I2C perdavimo laidą.beginTransmission (Addr); // Siųsti įjungimo komandą Wire.write (0x01); // Stop I2C Transmission Wire.endTransmission (); // Pradėti I2C perdavimo laidą.beginTransmission (Addr); // Siųsti nuolatinio matavimo komandą Wire.write (0x10); // Stop I2C Transmission Wire.endTransmission (); vėlavimas (300);

Šviesos intensyvumas matuojamas kitame kodo skyriuje.

nepasirašyti int duomenys [2];

// Prašyti 2 baitų duomenų Wire.requestFrom (Addr, 2); // Skaityti 2 baitus duomenų // ALS msb, ALS lsb if (Wire.available () == 2) {data [0] = Wire.read (); duomenys [1] = Wire.read (); } uždelsimas (300); // konvertuoti duomenų plūdės šviesumą = ((duomenys [0] * 256) + duomenys [1]) /1.20; // Išvesties duomenys į serijinį monitorių Serial.print ("Aplinkos šviesos ryškumas:"); Serijinis atspaudas (ryškumas); Serial.println („liuksas“);

Viskas, ką jums reikia padaryti, tai įrašyti kodą „arduino“ir patikrinti serijos prievado rodmenis. Išvestis parodyta aukščiau esančiame paveikslėlyje, taip pat jūsų nuoroda.

5 žingsnis: programos:

Programos
Programos

BH1715 yra skaitmeninis išvesties aplinkos šviesos jutiklis, kurį galima integruoti į mobilųjį telefoną, skystųjų kristalų televizorių, PASTABOS kompiuterį ir pan. Jis taip pat gali būti naudojamas nešiojamuose žaidimų mašinose, skaitmeninėse kamerose, skaitmeninėse vaizdo kamerose, PDA, LCD ekranuose ir daugelyje kitų prietaisų, kuriems reikia efektyvios šviesos jutimo programos.

Rekomenduojamas: