Датчик освещенности и приближения APDS-9930 для Arduino

Датчик APDS9930 — способен определять близость объектов (препятствий) и уровень освещённости в Lux. У старшей модели APDS9960 более расширенный функционал, помимо определения близости и освещённости, они способны определять цвет, и жесты.

Датчик APDS9930

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

Модуль построен на базе одноимённого датчика APDS9930, в состав которого входят: ИК-светодиод с программируемым драйвером, два фотодиода для определения общей освещённости (Ch0) и освещённости в ИК-диапазоне (Ch1), усилители с программируемым коэффициентом усиления, МК, АЛУ, АЦП, ОЗУ, контроллер шины I2C с адресом ведомого 0x39 и множество дополнительных блоков. Результаты освещённости в Lux выводятся с использованием эмпирической формулы для аппроксимации реакции человеческого глаза.

Подключение:

У датчика APDS-9930 логика и питание только 3,3 В!

Выводы SDA и SCL модуля подключаются к аппаратной шине I2C Arduino. Если Ваша Arduino имеет 5 В логику, то выводы SDA и SCL подключаются через двунаправленный преобразователь уровней 3.3 — 5 В.

Выводы GND, VCC и VL являются выводами питания (вывод VCC — питание модуля +3.3 В, а вывод VL — питание встроенного ИК-светодиода +2.5 … +4.5 В). Если подать питание только на вывод VCC (а вывод VL оставить не подключённым), то модуль будет определять уровень освещённости, но не сможет определять близость, т.к. оно определяется по интенсивности отражённого света от ИК-светодиода, питание на который не подано. На обратной стороне модуля имеется одна SMD площадка, если установить на неё перемычку, то вывод VCC будет электрически соединён с выводом VL и можно будет подавать питание 3,3 В только на вывод VCC, при этом модуль будет определять и освещённость и близость.

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

Ниже представлены 2 варианта работы с датчиком APDS9930, с использованием вывода INT (с прерываниями) и без использования вывода INT (без прерываний).

1) Подключение без использования прерывания:

    Таблица подключения выводов датчика:

  • SDA — линия данных шины I2C. Подключается к выводу A4 Arduino UNO через двунаправленный преобразователь.
  • SCL — линия тактирования шины I2C. Подключается к выводу A5 Arduino UNO через двунаправленный преобразователь.
  • GND — общий вывод питания. Подключается к выводу GND Arduino UNO.
  • VCC — вывод питания модуля. Подключается к выводу 3.3V Arduino UNO.
  • VL — вывод питания драйвера ИК-светодиода. Подключается к выводу 3.3V Arduino UNO (если на обратной стороне модуля установлена перемычка, то питание на данный вывод можно не подавать).
  • INT — выход прерывания модуля. Не используется.
Определение уровня освещённости (без прерываний):

 

Определение приближения (без прерываний):

2) Подключение с использованием прерывания:

    Таблица подключения выводов датчика:

  • SDA — линия данных шины I2C. Подключается к выводу A4 Arduino UNO через двунаправленный преобразователь.
  • SCL — линия тактирования шины I2C. Подключается к выводу A5 Arduino UNO через двунаправленный преобразователь.
  • GND — общий вывод питания. Подключается к выводу GND Arduino UNO.
  • VCC — вывод питания модуля. Подключается к выводу 3.3V Arduino UNO.
  • VL — вывод питания драйвера ИК-светодиода. Подключается к выводу 3.3V Arduino UNO (если на обратной стороне модуля установлена перемычка, то питание на данный вывод можно не подавать).
  • INT — выход прерывания модуля. Подключается к тем выводам Arduino, которые могут обрабатывать внешние прерывания, у Arduino UNO это выводы D2 и D3. В приведённых ниже скетчах используется вывод D2, если Вы захотите использовать вывод D3 — укажите это в скетче (см. комментарии).

В схеме с использованием прерываний, так же можно подключить светодиод к выводу INT (катод к выводу INT, а анод к выводу 3.3V), без внесения изменений в скетчи. Светодиод будет указывать о том, что модуль регистрирует данные.

Определение уровня освещённости (по прерыванию):

Определение приближения (по прерыванию):

Питание:

Напряжение питания модуля от 2,2 до 3,6 В (номинально 3,3 В) постоянного тока, подаётся на выводы «VCC» и «GND» модуля.

Напряжение питания драйвера ИК-светодиода от 2,5 до 4,5 В постоянного тока подаётся на выводы «VL» и «GND» модуля. Если на обратной стороне модуля установлена перемычка, то питание на данный вывод можно не подавать.

Спецификация:

  • Входное напряжение питания (VCC): 2,2 … 3,6 В постоянного тока (номинально 3,3 В).
  • Напряжение питания драйвера ИК-светодиода (VL): от 2,5 до 4,5 В постоянного тока.
  • Ток потребляемый ИК-светодиодом через драйвер: 100 / 50 / 25 / 12.5 мА (устанавливается программно).
  • Ток потребляемый модулем без учёта ИК-светодиода:
    • В режиме измерений: до 200 мкА.
    • В режиме ожидания: до 90 мкА.
    • В спящем режима: до 2,2 мкА.
  • Частота тактирования шины I2C: до 400 кГц.
  • Адрес модуля на шине I2C: 0x39.
  • Рабочая температура: -30 … +85 °С.
  • Температура хранения: -40 … +85 °С.
  • Габариты: 15х18 мм
  • Вес: 3 гр.

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

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

1 × 4 =