Оглавление:

Вычисление интенсивности света с использованием BH1715 и Arduino Nano: 5 шагов
Вычисление интенсивности света с использованием BH1715 и Arduino Nano: 5 шагов

Видео: Вычисление интенсивности света с использованием BH1715 и Arduino Nano: 5 шагов

Видео: Вычисление интенсивности света с использованием BH1715 и Arduino Nano: 5 шагов
Видео: Урок 374. Энергия, переносимая волной. Интенсивность сферической волны 2024, Ноябрь
Anonim
Image
Image

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

В этом уроке мы собираемся продемонстрировать работу BH1715 с Arduino Nano.

Для этого вам понадобится следующее оборудование:

1. BH1715 - Датчик внешней освещенности

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

3. Кабель I2C

4. I2C Shield для Arduino Nano.

Шаг 1: Обзор BH1715:

Что вам нужно..!!
Что вам нужно..!!

Прежде всего, мы хотели бы познакомить вас с основными функциями сенсорного модуля BH1715 и протоколом связи, по которому он работает.

BH1715 - это цифровой датчик внешней освещенности с интерфейсом шины I²C. BH1715 обычно используется для получения данных об окружающем освещении для регулировки мощности подсветки ЖК-дисплея и клавиатуры для мобильных устройств. Это устройство предлагает 16-битное разрешение и регулируемый диапазон измерения, позволяя обнаруживать от 0,23 до 100 000 люкс.

Протокол связи, по которому работает датчик, - I2C. I2C означает межинтегральную схему. Это протокол связи, в котором связь осуществляется через линии SDA (последовательные данные) и SCL (последовательные часы). Это позволяет одновременно подключать несколько устройств. Это один из самых простых и эффективных протоколов связи.

Шаг 2: Что вам нужно..

Что вам нужно..!!
Что вам нужно..!!
Что вам нужно..!!
Что вам нужно..!!
Что вам нужно..!!
Что вам нужно..!!

Материалы, которые нам нужны для достижения нашей цели, включают следующие компоненты оборудования:

1. BH1715 - Датчик внешней освещенности

2. Arduino Nano

3. Кабель I2C

4. I2C Shield для Arduino nano

Шаг 3: Подключение оборудования:

Подключение оборудования
Подключение оборудования
Подключение оборудования
Подключение оборудования

В разделе «Подключение оборудования» в основном объясняются проводные соединения, необходимые между датчиком и Raspberry Pi. Обеспечение правильных соединений является основной необходимостью при работе с любой системой для достижения желаемого результата. Итак, необходимые подключения следующие:

BH1715 будет работать по I2C. Вот пример схемы подключения, демонстрирующий, как подключить каждый интерфейс датчика.

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

Требуются только четыре соединения, выводы Vcc, Gnd, SCL и SDA, которые подключаются с помощью кабеля I2C.

Эти соединения показаны на рисунках выше.

Шаг 4: Код Arduino для измерения интенсивности света:

Код Arduino для измерения интенсивности света
Код Arduino для измерения интенсивности света
Код Arduino для измерения интенсивности света
Код Arduino для измерения интенсивности света

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

При использовании сенсорного модуля с Arduino мы включаем библиотеку Wire.h. Библиотека Wire содержит функции, которые облегчают обмен данными i2c между датчиком и платой Arduino.

Полный код Arduino приведен ниже для удобства пользователя:

#включают

// Адрес I2C BH1715: 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 () {данные типа int без знака [2]; // Запрос 2 байта данных Wire.requestFrom (Addr, 2); // Считываем 2 байта данных // ALS msb, ALS lsb if (Wire.available () == 2) {data [0] = Wire.read (); данные [1] = Wire.read (); } задержка (300); // конвертируем данные float luminance = ((data [0] * 256) + data [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 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); // конвертируем данные float luminance = ((data [0] * 256) + data [1]) / 1.20; // Вывод данных на последовательный монитор Serial.print ("Яркость окружающего света:"); Serial.print (яркость); Serial.println ("люкс");

Все, что вам нужно сделать, это записать код в Arduino и проверить свои показания на последовательном порту. Результат также показан на картинке выше для справки.

Шаг 5: Приложения:

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

BH1715 - это датчик внешней освещенности с цифровым выходом, который может быть встроен в мобильный телефон, ЖК-телевизор, ноутбук и т. Д. Его также можно использовать в портативных игровых автоматах, цифровых камерах, цифровых видеокамерах, КПК, ЖК-дисплеях и многих других устройствах, для которых требуется эффективные светочувствительные приложения.

Рекомендуемые: