Мазмұны:

BH1715 және Arduino Nano көмегімен жарық қарқындылығын есептеу: 5 қадам
BH1715 және Arduino Nano көмегімен жарық қарқындылығын есептеу: 5 қадам

Бейне: BH1715 және Arduino Nano көмегімен жарық қарқындылығын есептеу: 5 қадам

Бейне: BH1715 және Arduino Nano көмегімен жарық қарқындылығын есептеу: 5 қадам
Бейне: Arduino Nano - BH1715 Digital Ambient Light Sensor Tutorial 2024, Шілде
Anonim
Image
Image

Кеше біз LCD дисплейлерде жұмыс істедік, ал олармен жұмыс жасау кезінде біз жарық қарқындылығын есептеудің маңыздылығын түсіндік. Жарықтың қарқындылығы бұл әлемнің физикалық саласында ғана маңызды емес, сонымен қатар оның биологиялық салада жақсы айтылған рөлі бар. Жарық интенсивтілігін дәл бағалау біздің экожүйеде, өсімдіктердің өсуінде және т.б. маңызды рөл атқарады. Сондықтан осы мақсатта біз BH1715 сенсорын зерттедік, ол 16 разрядты сериялық шығыс типті сыртқы жарық сенсоры.

Бұл оқулықта біз BH1715 Arduino Nano -мен қалай жұмыс жасайтынын көрсетеміз.

Осы мақсатта сізге қажет аппараттық құралдар:

1. BH1715 - Қоршаған ортадағы жарық сенсоры

2. Arduino нано

3. I2C кабелі

4. Arduino Nano үшін I2C қалқаны

1 -қадам: BH1715 шолу:

Сізге не керек.. !!
Сізге не керек.. !!

Ең алдымен, біз сенсорлық модульдің BH1715 негізгі мүмкіндіктерімен және ол жұмыс істейтін байланыс хаттамасымен таныстырғымыз келеді.

BH1715 - бұл I²C шинасы бар интерфейсі бар цифрлық жарық сенсоры. BH1715 әдетте мобильді құрылғылар үшін СКД мен пернетақта жарығының қуатын реттеу үшін қоршаған жарық туралы мәліметтерді алу үшін қолданылады. Бұл құрылғы 16-биттік ажыратымдылықты және реттелетін өлшеу диапазонын ұсынады.23-тен 100 000 люкске дейін анықтауға мүмкіндік береді.

Сенсор жұмыс істейтін байланыс протоколы I2C болып табылады. I2C интегралды схеманы білдіреді. Бұл байланыс хаттамасы, онда байланыс SDA (сериялық деректер) және SCL (сериялық сағат) желілері арқылы жүзеге асады. Бұл бірнеше құрылғыны бір уақытта қосуға мүмкіндік береді. Бұл қарапайым және тиімді байланыс протоколдарының бірі.

2 -қадам: Сізге не керек..

Сізге не керек.. !!
Сізге не керек.. !!
Сізге не керек.. !!
Сізге не керек.. !!
Сізге не керек.. !!
Сізге не керек.. !!

Мақсатқа жету үшін бізге қажет материалдар келесі аппараттық компоненттерді қамтиды:

1. BH1715 - Қоршаған ортадағы жарық сенсоры

2. Ардуино Нано

3. I2C кабелі

4. Arduino наноға арналған I2C қалқаны

3 -қадам: Жабдықты қосу:

Жабдықты қосу
Жабдықты қосу
Жабдықты қосу
Жабдықты қосу

Аппаратты қосу бөлімі негізінен сенсор мен таңқурай пи арасындағы қажетті сымдық қосылыстарды түсіндіреді. Қажетті шығыс үшін кез келген жүйеде жұмыс істеу кезінде дұрыс қосылуды қамтамасыз ету - бұл негізгі қажеттілік. Сонымен, қажетті байланыстар келесідей:

BH1715 I2C режимінде жұмыс істейді. Датчиктің әр интерфейсін қалай қосуға болатынын көрсететін электр схемасының мысалы.

Қаптамадан тыс тақта I2C интерфейсі үшін конфигурацияланған, сондықтан егер сіз агностикалық болмасаңыз, осы қосылымды пайдалануды ұсынамыз. Сізге тек төрт сым қажет!

Vcc, Gnd, SCL және SDA түйреуіштеріне тек төрт қосылым қажет және олар I2C кабелінің көмегімен қосылған.

Бұл байланыстар жоғарыдағы суреттерде көрсетілген.

4 -қадам: Жарықтың қарқындылығын өлшеу Arduino коды:

Жарық қарқындылығын өлшеу Arduino коды
Жарық қарқындылығын өлшеу Arduino коды
Жарық қарқындылығын өлшеу Arduino коды
Жарық қарқындылығын өлшеу Arduino коды

Енді Arduino кодынан бастайық.

Сенсорлық модульді Arduino -мен қолданған кезде біз Wire.h кітапханасын қосамыз. «Wire» кітапханасында сенсор мен Arduino тақтасы арасындағы i2c байланысын жеңілдететін функциялар бар.

Пайдаланушыға ыңғайлы болу үшін барлық Arduino коды төменде келтірілген:

#қосу

// BH1715 I2C мекенжайы - 0x23 (35) #define Addr 0x23 void setup () {// I2C байланысын MASTER Wire.begin () ретінде инициализациялау; // Serial Communication -ды инициализациялау, жіберу жылдамдығы = 9600 Serial.begin (9600); // Start I2C Transmission Wire.beginTransmission (Addr); // Wire.write (0x01) пәрменін қосу. // I2C Transmission Wire.endTransmission тоқтату (); // Start I2C Transmission Wire.beginTransmission (Addr); // Wire.write (0x10) үздіксіз өлшеу командасын жіберу; // I2C Transmission Wire.endTransmission тоқтату (); кешіктіру (300); } void loop () {unsigned int data [2]; // Wire.requestFrom деректерінің 2 байтын сұрау (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 сериялы мониторға деректер шығару («Қоршаған орта жарығының жарықтығы:»); Сериялық баспа (жарықтық); Serial.println («lux»); }

Кодтың келесі бөлігі i2c байланысын және сериялық байланысты Wire.begin () және Serial.begin () функциясының көмегімен бастайды.

// I2C байланысын MASTER ретінде баптаңыз

Wire.begin (); // Serial Communication -ты инициализациялаңыз, жіберу жылдамдығы = 9600 Serial.begin (9600); // Start I2C Transmission Wire.beginTransmission (Addr); // Wire.write (0x01) пәрменін қосу. // I2C Transmission Wire.endTransmission тоқтату (); // Start I2C Transmission Wire.beginTransmission (Addr); // Wire.write (0x10) үздіксіз өлшеу командасын жіберу; // I2C Transmission Wire.endTransmission тоқтату (); кешіктіру (300);

Жарықтың қарқындылығы кодтың келесі бөлімінде өлшенеді.

қол қойылмаған int деректері [2];

// Wire.requestFrom деректерінің 2 байтын сұрау (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 сериялы мониторға деректер шығару («Қоршаған орта жарығының жарықтығы:»); Сериялық баспа (жарықтық); Serial.println («lux»);

Сізге кодты arduino -да жазу және сериялық порттағы көрсеткіштерді тексеру жеткілікті. Шығару сілтеме үшін жоғарыдағы суретте көрсетілген.

5 -қадам: Өтініштер:

Қолданбалар
Қолданбалар

BH1715 - бұл ұялы телефонға, СКД теледидарына, ЕСКЕРТПЕ ДК -ге қосуға болатын сандық шығыс қоршаған жарық сенсоры, оны портативті ойын машинасында, сандық камерада, сандық бейнекамерада, PDA, СКД дисплейінде және басқа да көптеген құрылғыларда қолдануға болады. жарықты сезудің тиімді қосымшалары.

Ұсынылған: