Բովանդակություն:
- Քայլ 1: BH1715 Ակնարկ
- Քայլ 2: Այն, ինչ ձեզ պետք է..
- Քայլ 3: Սարքավորման միացում
- Քայլ 4: Լույսի ինտենսիվության չափման Arduino կոդ:
- Քայլ 5: Դիմումներ
Video: Լույսի ինտենսիվության հաշվարկ BH1715- ի և Arduino Nano- ի միջոցով. 5 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:47
Երեկ մենք աշխատում էինք 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- ի հետ սենսորային մոդուլն օգտագործելիս մենք ներառում ենք 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 էկրանին և շատ այլ սարքերի համար, որոնք պահանջում են Լույսի զգայուն արդյունավետ ծրագրեր:
Խորհուրդ ենք տալիս:
Լույսի ինտենսիվության չափում `օգտագործելով BH1715 և ազնվամորի Pi: 5 քայլ
Լույսի ինտենսիվության չափում ՝ օգտագործելով BH1715 և Raspberry Pi. Երեկ մենք աշխատում էինք LCD էկրաններով, և դրանց վրա աշխատելիս մենք հասկացանք լույսի ինտենսիվության հաշվարկի կարևորությունը: Լույսի ինտենսիվությունը ոչ միայն կարևոր է այս աշխարհի ֆիզիկական տիրույթում, այլև իր լավ ասված դերն ունի կենսաբանության մեջ
Արևի լույսի ինտենսիվության հետևիչ ՝ 3 քայլ
Sunlight Intensity Tracker: Կան բազմաթիվ նախագծեր, որոնք հիմնված են արևի ջերմության կամ լույսի վրա: Օրինակ ՝ մրգերի և բանջարեղենի չորացում: Այնուամենայնիվ, արևի լույսի ուժգնությունը միշտ չէ, որ կայուն է և փոխվում է ամբողջ օրվա ընթացքում: Այս նախագիծը փորձում է քարտեզագրել արևի
Լույսի ինտենսիվության լամպ W/ Arduino: 3 քայլ
Լույսի ինտենսիվության լամպ W/ Arduino. Այս նախագծում ես ուսումնասիրում եմ, թե ինչպես օգտագործել arduino- ն ՝ լամպ ստեղծելու համար, որը փոխվում է ՝ կախված օրվա ժամից: Օգտատիրոջ խնդրանքով, լամպը կփոխի իր պայծառությունը, երբ դրանք չափեն կամ նվազեցնեն LDR- լույսի հայտնաբերման ռեզիստորական դիմադրությունը
Լույսի ինտենսիվության գծագրում Arduino- ի և Python- ի Arduino վարպետ գրադարանի միջոցով. 5 քայլ
Լույսի ինտենսիվության գծագրում Arduino- ի և Python- ի Arduino վարպետ գրադարանի միջոցով. Arduino- ն լինելով տնտեսապես միևնույն ժամանակ բարձր արդյունավետ և ֆունկցիոնալ գործիք, այն ներկառուցված C- ով ծրագրավորելը ձանձրացնում է նախագծերը դարձնելու գործընթացը: Python- ի Arduino_Master մոդուլը պարզեցնում է դա և թույլ է տալիս մեզ կատարել հաշվարկներ, հեռացնել աղբի արժեքները
Լույսի ինտենսիվության հաշվարկ BH1715- ի և մասնիկի ֆոտոնի միջոցով `5 քայլ
Լույսի ինտենսիվության հաշվարկ BH1715- ի և Particle Photon- ի միջոցով. Երեկ մենք աշխատում էինք LCD էկրաններով, և դրանց վրա աշխատելիս մենք հասկացանք լույսի ինտենսիվության հաշվարկի կարևորությունը: Լույսի ինտենսիվությունը ոչ միայն կարևոր է այս աշխարհի ֆիզիկական տիրույթում, այլև իր լավ ասված դերն ունի կենսաբանության մեջ