Рейтинг@Mail.ru
Модуль GY-302 c датчиком BH1750
Модуль GY-302 c датчиком BH1750

Как подключить датчик освещённости BH1750 к Arduino

На этот раз подключим цифровой 16-битный датчик освещённости BH1750 (люксометр), реализованный на модуле GY-302, к Arduino.

Инструкция по подключению датчика освещённости BH1750 к Arduino

Вам понадобится

  • Arduino;
  • модуль GY-302 с цифровым датчиком освещённости BH1750;
  • соединительные провода;
  • персональный компьютер.

1Схема подключения датчика BH1750 к Arduino

Рассмотрим модуль GY-302 с сенсором BH1750. Сенсор BH1750 представляет собой цифровой 16-битный цифровой датчик освещённости, что задаёт диапазон его измерений: от 1 до 65535 люкс. Согласно паспорту, датчик BH1750 чувствителен к видимому свету и практически не подвержен влиянию инфракрасного излучения, т.е. реагирует примерно на тот же спектральный диапазон, что и человеческий глаз. Вследствие этого такие сенсоры получили широкое распространение в современной электронной аппаратуре – мобильных устройствах, фото- и видеокамерах, в системах «умный дом» и многих других.

Подключение модуля производится по двухпроводному интерфейсу I2C, а питание осуществляется от +5 В. Интерфейс I2C в платах Arduino реализован на аналоговых пинах A4 и A5, которые отвечают за SDA (шина данных) и SCL (шина тактирования), соответственно. Вывод ADDR модуля GY-302 можно оставить не подключённым или соединить с землёй.

Схема подключения модуля GY-302 с датчиком BH1750 к Arduino
Схема подключения модуля GY-302 с датчиком BH1750 к Arduino

2 Библиотека и скетчдля датчика BH1750

Не будем углубляться в тонкости реализации интерфейса взаимодействия датчика BH1750 с Arduino, а воспользуемся готовой библиотекой для BH1750. Скачанный архив распакуем в директорию со средой разработки Arduino IDE/libraries/.

Напишем вот такой скетч и загрузим его в Arduino.

// подключаем библиотеку I2C:
#include <Wire.h>
// подключаем библиотеку датчика BH1750:
#include <BH1750.h> 

// объявляем объект lightMeter:
BH1750 lightMeter; 

void setup() {
  Serial.begin(9600); //инициализация послед. порта
  lightMeter.begin(); //инициализация датчика BH1750
}

void loop() {
  //считываем показания с BH1750:
  uint16_t lux = lightMeter.readLightLevel(); 
  //выводим показания в послед. порт:
  Serial.println(String(lux) + " lx");
  delay(100); //задержка 100 мсек
}

В скетче мы каждые 100 мсек считываем с датчика BH1750 показания освещённости в люксах и выводим эти данные в последовательный порт.

3Сенсор BH1750 и Arduino в работе

Подключим датчик освещённости BH1750 к Arduino по приведённой выше схеме. Подключим Ардуино к компьютеру. Запустим среду разработки Arduino IDE и откроем монитор последовательного порта сочетанием клавиш Ctrl+Shift+M или через меню Инструменты. В мониторе последовательного порта побегут значения освещённости с нашего датчика BH1750.

Модуль GY-302 с датчиком BH1750 подключён к Arduino
Модуль GY-302 с датчиком BH1750 подключён к Arduino

Направьте датчик на источник света, потом закройте его от света, и вы увидите, как меняются показания.

Последнее изменениеВторник, 31 Январь 2017 19:07
(5 голосов)
Прочитано 6470 раз

Поделиться

Оставить комментарий

Убедитесь, что вы вводите (*) необходимую информацию, где нужно
HTML-коды запрещены