Подключение датчика освещенности BH1750 к Arduino

В этой статье расскажу о цифровом датчике освещенности BH1750 (GY-30), с помощью которого можно измерять интенсивность света сразу в люксах.

Технические параметры:

► Функция спящего режима: есть;
► Фильтрация световых шумов: 50/60 Гц;
► Рабочее напряжение питания: 3.3 — 5 В;
► Ток потребления: 120 мкА;
► Ток потребления в спящем режиме: 0.01 мкА;
► Чувствительность: 65536 градаций;
► Точность в режиме высокого разрешения: 1 Лк;
► Точность в режиме низкого разрешения: 4 Лк;
► Период измерения в режиме высокого разрешения: 120 мс;
► Период измерения в режиме низкого разрешения: 16 мс;
► Встроенный АЦП;
► Шина данных: I2C;
► Габариты: 18 х 14 х 2 мм;
► Вес: 5 грамм.

Общие сведенья

Основная микросхема модуля GY-30 — это датчик H1750FVI (производится компанией ROHM semiconductor) со встроенным 16-разрядным аналого-цифровой преобразователем, который может выдавать цифровой сигнал сразу в люксах в отличие от фотодиодов и других датчиков. Связь с микроконтроллером осуществляется с помощью интерфейса I2C, по умолчанию адрес устройства 0x23, но его можно изменить на 0x5С, для этого необходимо вывод AD0 подтянуть к питанию.

Датчик BH1750 способен измерять освещенность в двух режимах: непрерывном и однократном. В непрерывном режиме датчик непрерывно измеряет интенсивность света, а во втором режиме измерение осуществляется один раз и датчик выключается. Так же, можно выбрать чувствительность измерение для обоих режимов. Самое низкое разрешение 4 люкса, измеряется примерно за 16 миллисекунд, далее 1 люкса измеряется за 120 миллисекунд, а самое высокое разрешение 0.5 люкса измеряется за 120 миллисекунд.

Назначение контактов:
GND, VCC — Питание модуля 3.3 … 5 В;
AD0 — Выбор адреса модуля на шине I2C, выход притянут к массе и адрес модуля 0x23, если на AD0 подать логическую единицу, адрес будет 0X5C.
SDA, SCL — Выходы интерфейса I2C

Подключение датчика освещенности H1750FVI к Arduino

Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Датчик освещенности BH1750FVI, GY-30 x 1 шт.
► Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.

Описание:
В примере покажу, как подключить датчик освещенности BH1750FVI к Arduino UNO R3, так же покажу пример программы и потестируем датчик в различных условиях, все показания будем передавать в мониторинг порта.

Подключение:
Первым делом, необходимо подключить датчик BH1750FVI к Arduino UNO. Так как модуль работает по I2C, нам понадобится всего четыре провода, вывод AD0 не используем. Сначала подключаем интерфейс I2C, выводы A4 и A5 (Arduino UNO) подключаем к выводам SDA и SCL (BH1750FVI), далее подключаем питание питание GND к GND и VIN к 5V, схема собрана, теперь надо подготовить программную часть.

Установка библиотеки:
Существует много библиотек, для работы датчиком BH1750FVI, но проще всего использовать библиотеку BH1750, скачать ее можно через менеджера библиотек. Переходим в Скетч —> Подключить библиотеку —> Управление библиотеками.

В строке поиска введите «BH1750», найдите библиотеку «BH1750 by Christopher Laws» жмем установить.

Программа:
Схема и библиотека установлена, можно приступить к программой части. Открываем среду разработки Arduino IDE и копируем скетч ниже и загружаем его в Arduino UNO

Теперь открываем мониторинг порта и проводим фонариком по датчику и видим как изменятся показания.

Купить на Aliexpress
  Контроллер Arduino UNO R3 на CH340G
  Контроллер Arduino UNO R3 на Atmega16U2
  Провода DuPont, 2,54 мм, 20 см
  Датчик освещенности BH1750FVI, GY-30

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *