Բովանդակություն:

Լույսի ինտենսիվության հաշվարկ BH1715- ի և Arduino Nano- ի միջոցով. 5 քայլ
Լույսի ինտենսիվության հաշվարկ BH1715- ի և Arduino Nano- ի միջոցով. 5 քայլ

Video: Լույսի ինտենսիվության հաշվարկ BH1715- ի և Arduino Nano- ի միջոցով. 5 քայլ

Video: Լույսի ինտենսիվության հաշվարկ BH1715- ի և Arduino Nano- ի միջոցով. 5 քայլ
Video: Вопрос-ответ специалиста | Характеристики светодиодных светильников [SDSBET] 2024, Հուլիսի
Anonim
Image
Image

Երեկ մենք աշխատում էինք LCD էկրաններով, և դրանց վրա աշխատելիս մենք հասկացանք լույսի ինտենսիվության հաշվարկի կարևորությունը: Լույսի ուժգնությունը ոչ միայն կարևոր է այս աշխարհի ֆիզիկական տիրույթում, այլև այն ունի իր հստակ դերը նաև կենսաբանական տիրույթում: Լույսի ինտենսիվության ճշգրիտ գնահատումը առանցքային դեր է խաղում մեր էկոհամակարգում, բույսերի աճի մեջ և այլն: Այսպիսով, այս նպատակին ծառայելու համար մենք ուսումնասիրեցինք այս BH1715 սենսորը, որը 16 բիթանոց սերիական ելքային տիպի շրջակա լույսի սենսոր է:

Այս ձեռնարկում մենք պատրաստվում ենք ցույց տալ BH1715- ի աշխատանքը Արդուինո Նանոյի հետ:

Սարքավորումները, որոնք ձեզ անհրաժեշտ կլինեն այս նպատակով, հետևյալն են.

1. BH1715 - Շրջակա լույսի ցուցիչ

2. Արդուինո նանո

3. I2C մալուխ

4. I2C վահան Arduino Nano- ի համար

Քայլ 1: BH1715 Ակնարկ

Այն, ինչ ձեզ պետք է.. !!
Այն, ինչ ձեզ պետք է.. !!

Առաջին հերթին մենք կցանկանայինք ձեզ ծանոթացնել BH1715 սենսորային մոդուլի հիմնական առանձնահատկություններին և հաղորդակցության արձանագրությանը, որի վրա այն աշխատում է:

BH1715- ը թվային Ambient Light Sensor է `I²C ավտոբուսի ինտերֆեյսով: BH1715- ը սովորաբար օգտագործվում է շրջակա լույսի տվյալների ստացման համար `շարժական սարքերի համար LCD- ի և ստեղնաշարի լուսավորության հզորությունը կարգավորելու համար: Այս սարքն առաջարկում է 16-բիթ թույլատրելիություն և կարգավորելի չափման տիրույթ, որը թույլ է տալիս հայտնաբերել.23-ից մինչև 100.000 լյուքս:

Հաղորդակցության արձանագրությունը, որի վրա աշխատում է սենսորը, I2C է: I2C- ը նշանակում է ինտեգրված միացում: Այն հաղորդակցման արձանագրություն է, որի միջոցով հաղորդակցությունը տեղի է ունենում SDA (սերիական տվյալներ) և SCL (սերիական ժամացույց) գծերի միջոցով: Այն թույլ է տալիս միաժամանակ միացնել բազմաթիվ սարքեր: Այն ամենապարզ և ամենաարդյունավետ հաղորդակցման արձանագրություններից մեկն է:

Քայլ 2: Այն, ինչ ձեզ պետք է..

Այն, ինչ ձեզ պետք է.. !!
Այն, ինչ ձեզ պետք է.. !!
Այն, ինչ ձեզ պետք է.. !!
Այն, ինչ ձեզ պետք է.. !!
Այն, ինչ ձեզ պետք է.. !!
Այն, ինչ ձեզ պետք է.. !!

Նյութերը, որոնք մեզ անհրաժեշտ են մեր նպատակին հասնելու համար, ներառում են հետևյալ ապարատային բաղադրիչները.

1. BH1715 - Շրջակա լույսի ցուցիչ

2. Արդուինո Նանո

3. I2C մալուխ

4. I2C վահան Arduino nano- ի համար

Քայլ 3: Սարքավորման միացում

Սարքավորումների միացում
Սարքավորումների միացում
Սարքավորումների միացում
Սարքավորումների միացում

Սարքավորումների միացման բաժինը հիմնականում բացատրում է սենսորի և ազնվամորու pi- ի միջև պահանջվող լարերի միացումները: Connectionsանկալի ելքի համար ցանկացած համակարգի վրա աշխատելիս հիմնական անհրաժեշտությունն է հիմնական կապերի ապահովումը: Այսպիսով, անհրաժեշտ կապերը հետևյալն են.

BH1715- ը կաշխատի I2C- ով: Ահա միացման սխեմայի օրինակ, որը ցույց է տալիս, թե ինչպես միացնել սենսորի յուրաքանչյուր միջերեսը:

Տուփից դուրս, տախտակը կազմաձևված է I2C ինտերֆեյսի համար, ուստի խորհուրդ ենք տալիս օգտագործել այս կապը, եթե այլապես ագնոստիկ եք: Ձեզ անհրաժեշտ է չորս լար:

Միայն չորս միացում է պահանջվում Vcc, Gnd, SCL և SDA կապում, որոնք միացված են I2C մալուխի օգնությամբ:

Այս կապերը ցուցադրվում են վերը նշված նկարներում:

Քայլ 4: Լույսի ինտենսիվության չափման Arduino կոդ:

Լույսի ինտենսիվության չափման Arduino կոդ
Լույսի ինտենսիվության չափման Arduino կոդ
Լույսի ինտենսիվության չափման Arduino կոդ
Լույսի ինտենսիվության չափման Arduino կոդ

Եկեք հիմա սկսենք Arduino կոդով:

Arduino- ի հետ սենսորային մոդուլն օգտագործելիս մենք ներառում ենք Wire.h գրադարանը: «Լար» գրադարանը պարունակում է գործառույթներ, որոնք հեշտացնում են i2c հաղորդակցությունը սենսորի և Arduino տախտակի միջև:

Ամբողջ Arduino ծածկագիրը տրված է ստորև ՝ օգտագործողի հարմարության համար.

#ներառում

// BH1715 I2C հասցեն ՝ 0x23 (35) #սահմանել Addr 0x23 void setup () {// Initialise I2C Communication as MASTER Wire.begin (); // Սկզբնականացնել սերիական հաղորդակցությունը, սահմանել բաուդ արագություն = 9600 Serial.begin (9600); // Սկսել I2C Փոխանցման տուփը. BeginTransmission (Addr); // Ուղարկեք ուժ Wire.write (0x01) հրամանի վրա; // Stop I2C Transmission Wire.endTransmission (); // Սկսել I2C Փոխանցման տուփը. BeginTransmission (Addr); // Ուղարկեք շարունակական չափման հրաման Wire.write (0x10); // Stop I2C Transmission Wire.endTransmission (); ուշացում (300); } void loop () {unsigned int data [2]; // Պահանջել 2 բայթ տվյալների Wire.requestFrom (Addr, 2); // Կարդացեք տվյալների 2 բայթ // ALS msb, ALS lsb if (Wire.available () == 2) {data [0] = Wire.read (); տվյալներ [1] = Wire.read (); } ուշացում (300); // փոխակերպել տվյալների բոց պայծառությունը = ((տվյալները [0] * 256) + տվյալները [1]) /1.20; // Ելքային տվյալները սերիական մոնիտորի Serial.print ("Ambient Light Luminance:"); Serial.print (լուսավորություն); Serial.println («լյուքս»); }

Կոդի հետևյալ հատվածը նախաձեռնում է i2c հաղորդակցությունը և սերիական հաղորդակցությունը Wire.begin () և Serial.begin () գործառույթների օգնությամբ:

// Նախնականացնել I2C հաղորդակցությունը որպես ՎԱՐՊԵՏ

Wire.begin (); // Սկզբնականացնել սերիական հաղորդակցությունը, սահմանել բաուդ արագություն = 9600 Serial.begin (9600); // Սկսել I2C Փոխանցման տուփը. BeginTransmission (Addr); // Ուղարկեք ուժ Wire.write (0x01) հրամանի վրա; // Stop I2C Transmission Wire.endTransmission (); // Սկսել I2C Փոխանցման տուփը. BeginTransmission (Addr); // Ուղարկեք շարունակական չափման հրաման Wire.write (0x10); // Stop I2C Transmission Wire.endTransmission (); ուշացում (300);

Լույսի ուժգնությունը չափվում է ծածկագրի հետևյալ հատվածում:

անստորագիր int տվյալներ [2];

// Պահանջել 2 բայթ տվյալների Wire.requestFrom (Addr, 2); // Կարդացեք տվյալների 2 բայթ // ALS msb, ALS lsb if (Wire.available () == 2) {data [0] = Wire.read (); տվյալներ [1] = Wire.read (); } ուշացում (300); // փոխակերպել տվյալների բոց պայծառությունը = ((տվյալները [0] * 256) + տվյալները [1]) /1.20; // Ելքային տվյալները սերիական մոնիտորի Serial.print ("Ambient Light Luminance:"); Serial.print (լուսավորություն); Serial.println («լյուքս»);

Մնում է միայն այրել կոդը arduino- ում և ստուգել ձեր ընթերցումները սերիական նավահանգստում: Արդյունքը ցուցադրվում է վերևի նկարում նաև ձեր տեղեկանքի համար:

Քայլ 5: Դիմումներ

Դիմումներ
Դիմումներ

BH1715- ը շրջակա լույսի թվային ելքային տվիչ է, որը կարող է ներառվել բջջային հեռախոսի, LCD հեռուստատեսության, ՆՇԱՆԱԿԻ ԱՀ -ի և այլնի մեջ: Այն կարող է օգտագործվել նաև շարժական խաղային մեքենայի, թվային ֆոտոխցիկի, թվային տեսախցիկի, PDA- ի, LCD էկրանին և շատ այլ սարքերի համար, որոնք պահանջում են Լույսի զգայուն արդյունավետ ծրագրեր:

Խորհուրդ ենք տալիս: