Подключение цифрового датчика освещенности TSL2561 к Arduino

TSL2561 — это цифровой датчик освещенности с интерфейсом I2C/TWI. Более подробное описание этого модуля можете найти на странице TSL2561 — Цифровой датчик освещенности (модуль GY-2561). А в этом посте мы подключим по I2C датчик TSL2561 к Arduino, установим необходимую библиотеку и будем выводить значения в последовательный порт компьютера. С помощью TSL2561 можно изготовить самодельный люксметр на Ардуино.

Установка библиотеки Adafruit TSL2561

Для работы с данным модулем необходимо установить библиотеку Adafruit TSL2561. Скачиваем, распаковываем и закидываем в папку Arduino/libraries. В случае, если на момент добавления библиотеки, Arduino IDE была открытой, перезагружаем среду.

Библиотеку можно установить из среды Arduino следующим образом:

  1. В Arduino IDE открываем менеджер библиотек: Скетч->Подключить библиотеку->Управлять библиотеками…Подключение датчика освещенности TSL2561 к Arduino - Управлять библиотеками...
  2. В строке поиска вводим «TSL2561», находим библиотеку от Adafruit, выбираем и устанавливаем последнюю версию.Подключение датчика освещенности TSL2561 к Arduino - Установка Adafruit_TSL2561
  3. Библиотека установлена (INSTALLED).Подключение датчика освещенности TSL2561 к Arduino - Библиотека установлена

Не стоит забывать о Adafruit Unified Sensor Library, эту библиотеку также нужно установить.

Подключение TSL2561 к Arduino

Модуль модуль GY-2561 оборудован пяти-пиновым разъемом стандарта 2.54мм

  • VCC: «+» питания
  • GND: «-» питания
  • SCL: последовательная линия тактирования (Serial CLock)
  • SDA: последовательная линия данных (Serial DAta)
  • INT: выход прерывания

Выводы отвечающие за интерфейс I2C на платах Arduino на базе различных контроллеров разнятся

Arduino Mega Arduino Uno/Nano/Pro Mini TSL2561 модуль Цвет проводов на фото
GND GND GND Черный
5V 5V VCC Красный
20 (SDA) A4 SDA Синий
21 (SCL) A5 SCL Зелёный

Схема подключения TSL2561 к Arduino по I2C

Схема подключения датчика освещенности TSL2561 к Arduino по I2C

Пример скетча

Библиотека довольно проста в использовании. Первая строка кода в примере — это «конструктор», в котором вы можете указать I2C адрес (на случай, если вы захотите его изменить) и уникальный идентификатор для подключения к этому датчику (вы можете просто оставить это значение по умолчанию: 12345 на данный момент). Изменяя адрес I2C, мы можем подключить до трех датчиков TSL2561 к одной плате:

Далее вам нужно будет настроить коэффициент усиления датчика и время интеграции.

Вы можете получить либо усиление 0 (без дополнительного усиления, хорошо в условиях хорошего освещения), либо усиление на 16, которое значительно усилит полученный сигнал с датчика в условиях слабого освещения.

Вы также можете изменить время интеграции, то есть как долго датчик TSL2561 будет собирать данные об освещении. Чем дольше время интеграции, тем выше точность датчика.

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

По умолчанию драйвер возвращает свет в стандартных единицах SI lux, которые являются результатом некоторых сложных вычислений на основе обоих фотодиодов на TSL2561 (один для полного спектра и один для ИК). Чувствительность двух диодов можно увидеть на графике ниже:

TSL2561 - Спектральная чувствительность

Когда вы будете готовы, чтобы получить ваши измерения в lux-ах, просто вызовите getEvent() со ссылкой на объект sensor_event_t, где будут храниться данные датчика. В этом примере предполагается, что мы используем экземпляр tsl Adafruit_TSL2561 из верхней части примера кода:

Если вы хотите вручную прочитать данные от датчика, вы сможете сделать это, вызвав функцию getLuminosity() и передав две переменные, в которых будут храниться данные датчика:

Полный код скетча:

Результат

Подключение цифрового датчика освещенности TSL2561 к Arduino - Результат

Материалы

TSL2561 — Цифровой датчик освещенности (модуль GY-2561)
datasheets_TSL2561.pdf
Arduino Code | TSL2561 Luminosity Sensor | Adafruit Learning System
TSL2560, TSL2561 Light-to-Digital Converter. TAOS059Q. 2009. November.

Похожие записи

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

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