Съдържание:

Изчисляване на интензитета на светлината с помощта на BH1715 и Arduino Nano: 5 стъпки
Изчисляване на интензитета на светлината с помощта на BH1715 и Arduino Nano: 5 стъпки

Видео: Изчисляване на интензитета на светлината с помощта на BH1715 и Arduino Nano: 5 стъпки

Видео: Изчисляване на интензитета на светлината с помощта на BH1715 и Arduino Nano: 5 стъпки
Видео: 40 полезных автотоваров с Aliexpress, которые упростят жизнь любому автовладельцу #7 2024, Ноември
Anonim
Image
Image

Вчера работихме върху LCD дисплеи и докато работихме над тях, осъзнахме важността на изчисляването на интензитета на светлината. Интензивността на светлината е не само важна във физическата област на този свят, но има своята добре казана роля и в биологичната област. Точната оценка на интензитета на светлината играе ключова роля в нашата екосистема, в растежа на растенията и т.н. Така че, за тази цел ние изследвахме този сензор BH1715, който е 16-битов сензор за околна светлина от сериен изход.

В този урок ще демонстрираме работата на BH1715 с Arduino Nano.

Хардуерът, който ще ви е необходим за тази цел, е следният:

1. BH1715 - Сензор за околна светлина

2. Arduino nano

3. I2C кабел

4. I2C щит за Arduino Nano

Стъпка 1: Общ преглед на BH1715:

От какво имаш нужда..!!
От какво имаш нужда..!!

На първо място бихме искали да ви запознаем с основните характеристики на сензорния модул BH1715 и комуникационния протокол, по който работи.

BH1715 е цифров сензор за околна светлина с интерфейс на I²C шина. BH1715 обикновено се използва за получаване на данни за околната светлина за регулиране на мощността на подсветката на LCD и клавиатурата за мобилни устройства. Това устройство предлага 16-битова резолюция и регулируем обхват на измерване, което позволява откриване от.23 до 100, 000 лукса.

Комуникационният протокол, по който работи сензорът, е I2C. I2C означава междуинтегрална схема. Това е комуникационен протокол, в който комуникацията се осъществява чрез линии SDA (серийни данни) и SCL (сериен часовник). Тя позволява свързване на няколко устройства едновременно. Това е един от най -простите и ефективни комуникационни протоколи.

Стъпка 2: Какво ви трябва..

От какво имаш нужда..!!
От какво имаш нужда..!!
От какво имаш нужда..!!
От какво имаш нужда..!!
От какво имаш нужда..!!
От какво имаш нужда..!!

Материалите, от които се нуждаем за постигане на целта ни, включват следните хардуерни компоненти:

1. BH1715 - Сензор за околна светлина

2. Arduino Nano

3. I2C кабел

4. I2C щит за Arduino nano

Стъпка 3: Свързване на хардуера:

Хардуерно свързване
Хардуерно свързване
Хардуерно свързване
Хардуерно свързване

Разделът за свързване на хардуер основно обяснява необходимите кабелни връзки между сензора и малиновото пи. Осигуряването на правилни връзки е основната необходимост, докато работите върху всяка система за желания изход. И така, необходимите връзки са както следва:

BH1715 ще работи през I2C. Ето примерната електрическа схема, демонстрираща как да свържете всеки интерфейс на сензора.

Извън кутията, дъската е конфигурирана за I2C интерфейс, като такава препоръчваме да използвате тази връзка, ако иначе не сте агностици. Всичко, от което се нуждаете, са четири проводника!

Изискват се само четири връзки Vcc, Gnd, SCL и SDA щифтове и те са свързани с помощта на I2C кабел.

Тези връзки са показани на снимките по -горе.

Стъпка 4: Измерване на интензитета на светлината Arduino код:

Измерване на интензитета на светлината Arduino код
Измерване на интензитета на светлината Arduino код
Измерване на интензитета на светлината Arduino код
Измерване на интензитета на светлината Arduino код

Нека започнем с кода на Arduino сега.

Докато използваме сензорния модул с Arduino, ние включваме библиотеката Wire.h. Библиотеката "Wire" съдържа функциите, които улесняват i2c комуникацията между сензора и платката Arduino.

Целият код на Arduino е даден по -долу за удобство на потребителя:

#включва

// BH1715 I2C адресът е 0x23 (35) #define Addr 0x23 void setup () {// Инициализира I2C комуникацията като MASTER Wire.begin (); // Инициализиране на серийна комуникация, зададена скорост на предаване = 9600 Serial.begin (9600); // Стартиране на I2C предаване Wire.beginTransmission (Addr); // Изпращане на команда за включване Wire.write (0x01); // Спиране на I2C предаване Wire.endTransmission (); // Стартиране на I2C предаване Wire.beginTransmission (Addr); // Изпращане на команда за непрекъснато измерване Wire.write (0x10); // Спиране на I2C предаване 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 ("Яркост на околната светлина:"); Serial.print (яркост); Serial.println ("lux"); }

Следващата част от кода инициира комуникацията i2c и серийната комуникация с помощта на функциите Wire.begin () и Serial.begin ().

// Инициализира I2C комуникацията като MASTER

Wire.begin (); // Инициализиране на серийна комуникация, зададена скорост на предаване = 9600 Serial.begin (9600); // Стартиране на I2C предаване Wire.beginTransmission (Addr); // Изпращане на команда за включване Wire.write (0x01); // Спиране на I2C предаване Wire.endTransmission (); // Стартиране на I2C предаване Wire.beginTransmission (Addr); // Изпращане на команда за непрекъснато измерване Wire.write (0x10); // Спиране на I2C предаване 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 ("Яркост на околната светлина:"); Serial.print (яркост); Serial.println ("lux");

Всичко, което трябва да направите, е да запишете кода в arduino и да проверите показанията си на сериен порт. Изходът е показан на горната снимка също за ваша справка.

Стъпка 5: Приложения:

Приложения
Приложения

BH1715 е сензор за околна светлина с цифров изход, който може да бъде вграден в мобилен телефон, LCD телевизор, компютър с бележки и др. Може да се използва и в преносима игрална машина, цифров фотоапарат, цифрова видеокамера, PDA, LCD дисплей и много други устройства, които изискват ефективни приложения за откриване на светлина.

Препоръчано: