TSL2561 — это цифровой датчик освещенности с интерфейсом I2C/TWI. Более подробное описание этого модуля можете найти на странице TSL2561 — Цифровой датчик освещенности (модуль GY-2561). А в этом посте мы подключим по I2C датчик TSL2561 к Arduino, установим необходимую библиотеку и будем выводить значения в последовательный порт компьютера. С помощью TSL2561 можно изготовить самодельный люксметр на Ардуино.
Установка библиотеки Adafruit TSL2561
Для работы с данным модулем необходимо установить библиотеку Adafruit TSL2561. Скачиваем, распаковываем и закидываем в папку Arduino/libraries
. В случае, если на момент добавления библиотеки, Arduino IDE была открытой, перезагружаем среду.
Библиотеку можно установить из среды Arduino следующим образом:
- В Arduino IDE открываем менеджер библиотек: Скетч->Подключить библиотеку->Управлять библиотеками…
- В строке поиска вводим «TSL2561», находим библиотеку от Adafruit, выбираем и устанавливаем последнюю версию.
- Библиотека установлена (INSTALLED).
Не стоит забывать о 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
Пример скетча
Библиотека довольно проста в использовании. Первая строка кода в примере — это «конструктор», в котором вы можете указать I2C адрес (на случай, если вы захотите его изменить) и уникальный идентификатор для подключения к этому датчику (вы можете просто оставить это значение по умолчанию: 12345 на данный момент). Изменяя адрес I2C, мы можем подключить до трех датчиков TSL2561 к одной плате:
/*
Адрес будет отличаться в зависимости от того, оставляете ли вы плавающий
вывод ADDR (addr 0x39) или привязываете его к GND или Vcc. В этих случаях
используйте TSL2561_ADDR_LOW (0x29) или TSL2561_ADDR_HIGH (0x49) соответственно
*/
Adafruit_TSL2561_Unified tsl = Adafruit_TSL2561_Unified(TSL2561_ADDR_FLOAT, 12345);
Далее вам нужно будет настроить коэффициент усиления датчика и время интеграции.
Вы можете получить либо усиление 0 (без дополнительного усиления, хорошо в условиях хорошего освещения), либо усиление на 16, которое значительно усилит полученный сигнал с датчика в условиях слабого освещения.
Вы также можете изменить время интеграции, то есть как долго датчик TSL2561 будет собирать данные об освещении. Чем дольше время интеграции, тем выше точность датчика.
Впервые в версии драйвера 2.0 есть опция автоматического изменение коэффициента усиления, которая полезна при измерениях в условиях смешанного освещения. Это автоматически включит или отключит усиление в зависимости от уровня освещенности. Это все еще экспериментальная функция, и уровни переключения могут нуждаться в настройке, но эта функция может быть полезна для сбора света как внутри помещения, так и на улице без необходимости изменения кода самостоятельно.
/*
Конфигурация усиления и времени интеграции для TSL2561
*/
void configureSensor(void) {
/*
Вы также можете вручную установить усиление или включить авто-усиление
*/
/*
Нет усиления ... используйте при ярком свете, чтобы избежать насыщения датчика
*/
// tsl.setGain(TSL2561_GAIN_1X);
/*
16-кратное усиление ... используйте при слабом освещении для повышения чувствительности
*/
// tsl.setGain(TSL2561_GAIN_16X);
/*
Авто-усиление ... автоматически переключается между 1x и 16x
*/
tsl.enableAutoRange(true);
/*
Изменение времени интеграции дает вам лучшее разрешение сенсора (402 мс = 16-битные данные)
*/
/*
быстрое, но низкое разрешение
*/
tsl.setIntegrationTime(TSL2561_INTEGRATIONTIME_13MS);
/*
среднее разрешение и скорость
*/
// tsl.setIntegrationTime(TSL2561_INTEGRATIONTIME_101MS);
/*
16-битные данные, но самое медленное преобразование
*/
// tsl.setIntegrationTime(TSL2561_INTEGRATIONTIME_402MS);
/*
Обновите эти значения в зависимости от того, что вы установили выше!
*/
Serial.println("------------------------------------");
Serial.print ("Усиление: "); Serial.println("Auto");
Serial.print ("Времени интеграции: "); Serial.println("13 ms");
Serial.println("------------------------------------");
}
По умолчанию драйвер возвращает свет в стандартных единицах SI lux, которые являются результатом некоторых сложных вычислений на основе обоих фотодиодов на TSL2561 (один для полного спектра и один для ИК). Чувствительность двух диодов можно увидеть на графике ниже:
Когда вы будете готовы, чтобы получить ваши измерения в lux-ах, просто вызовите getEvent()
со ссылкой на объект sensor_event_t
, где будут храниться данные датчика. В этом примере предполагается, что мы используем экземпляр tsl
Adafruit_TSL2561
из верхней части примера кода:
/*
Функция цикла Arduino, вызываемая после завершения
установки (здесь должен быть указан ваш собственный код)
*/
void loop(void) {
/*
Получить новое событие датчика
*/
sensors_event_t event;
tsl.getEvent(&event);
/*
Показать результаты (Освещённость измеряется в люксах)
*/
if (event.light) {
Serial.print(event.light); Serial.println(" lux");
} else {
/*
Если event.light = 0 люкса датчик, вероятно, насыщенные
и достоверные данные не может быть сгенерированы!
*/
Serial.println("Sensor overload");
}
delay(250);
}
Если вы хотите вручную прочитать данные от датчика, вы сможете сделать это, вызвав функцию getLuminosity()
и передав две переменные, в которых будут храниться данные датчика:
uint16_t broadband = 0;
uint16_t infrared = 0;
getLuminosity (&broadband, &infrared);
Полный код скетча:
#include <Wire.h>
#include <Adafruit_TSL2561_U.h>
/*
Адрес будет отличаться в зависимости от того, оставляете ли вы плавающий
вывод ADDR (addr 0x39) или привязываете его к GND или Vcc. В этих случаях
используйте TSL2561_ADDR_LOW (0x29) или TSL2561_ADDR_HIGH (0x49) соответственно
*/
Adafruit_TSL2561_Unified tsl = Adafruit_TSL2561_Unified(TSL2561_ADDR_FLOAT, 12345);
/*
Отображает некоторую основную информацию об этом датчике
*/
void displaySensorDetails(void) {
sensor_t sensor;
tsl.getSensor(&sensor);
Serial.println("------------------------------------");
Serial.print ("Датчик: "); Serial.println(sensor.name);
Serial.print ("Версия драйвера: "); Serial.println(sensor.version);
Serial.print ("Уникальный ID: "); Serial.println(sensor.sensor_id);
Serial.print ("Макс. значение: "); Serial.print(sensor.max_value); Serial.println(" lux");
Serial.print ("Мин. значение: "); Serial.print(sensor.min_value); Serial.println(" lux");
Serial.print ("Разрешение: "); Serial.print(sensor.resolution); Serial.println(" lux");
Serial.println("------------------------------------");
Serial.println("");
delay(500);
}
/*
Конфигурация усиления и времени интеграции для TSL2561
*/
void configureSensor(void) {
/*
Вы также можете вручную установить усиление или включить авто-усиление
*/
/*
Нет усиления ... используйте при ярком свете, чтобы избежать насыщения датчика
*/
// tsl.setGain(TSL2561_GAIN_1X);
/*
16-кратное усиление ... используйте при слабом освещении для повышения чувствительности
*/
// tsl.setGain(TSL2561_GAIN_16X);
/*
Авто-усиление ... автоматически переключается между 1x и 16x
*/
tsl.enableAutoRange(true);
/*
Изменение времени интеграции дает вам лучшее разрешение сенсора (402 мс = 16-битные данные)
*/
/*
быстрое, но низкое разрешение
*/
tsl.setIntegrationTime(TSL2561_INTEGRATIONTIME_13MS);
/*
среднее разрешение и скорость
*/
// tsl.setIntegrationTime(TSL2561_INTEGRATIONTIME_101MS);
/*
16-битные данные, но самое медленное преобразование
*/
// tsl.setIntegrationTime(TSL2561_INTEGRATIONTIME_402MS);
/*
Обновите эти значения в зависимости от того, что вы установили выше!
*/
Serial.println("------------------------------------");
Serial.print ("Усиление: "); Serial.println("Auto");
Serial.print ("Времени интеграции: "); Serial.println("13 ms");
Serial.println("------------------------------------");
}
/*
Функция настройки Arduino (автоматически вызывается при запуске)
*/
void setup(void) {
Serial.begin(9600);
Serial.println("Тест датчика света"); Serial.println("");
/*
Инициализировать датчик
*/
/*
использовать tsl.begin() to default to Wire,
tsl.begin(&Wire2) направляет API для использования Wire2 и т.д.
*/
if (!tsl.begin()) {
/*
При обнаружении TSL2561 возникла проблема ... проверьте подключение
*/
Serial.print("Ooops, no TSL2561 detected ... Check your wiring or I2C ADDR!");
while (1);
}
/*
Показать основную информацию об этом датчике
*/
displaySensorDetails();
/*
Настройка коэффициента усиления датчика и времени интеграции
*/
configureSensor();
/*
Мы готовы к работе!
*/
Serial.println("");
}
/*
Функция цикла Arduino, вызываемая после завершения
установки (здесь должен быть указан ваш собственный код)
*/
void loop(void) {
/*
Получить новое событие датчика
*/
sensors_event_t event;
tsl.getEvent(&event);
/*
Показать результаты (Освещённость измеряется в люксах)
*/
if (event.light) {
Serial.print(event.light); Serial.println(" lux");
} else {
/*
Если event.light = 0 люкса датчик, вероятно, насыщенные
и достоверные данные не может быть сгенерированы!
*/
Serial.println("Sensor overload");
}
delay(250);
}
Результат
Материалы
TSL2561 — Цифровой датчик освещенности (модуль GY-2561)
datasheets_TSL2561.pdf
Arduino Code | TSL2561 Luminosity Sensor | Adafruit Learning System
TSL2560, TSL2561 Light-to-Digital Converter. TAOS059Q. 2009. November.
банкротство физических лиц отзывы
1 вин. http://pboarders.borda.ru/?1-11-0-00000929-000-0-0-1742818701 .
мосбет казино https://shorts.borda.ru/?1-18-0-00000397-000-0-0 .
что делать с бонусным балансом на 1win что делать с бонусным балансом на 1win .
mostbet kg скачать на андроид https://tagilshops.forum24.ru/?1-4-0-00000205-000-0-0 .
бк 1win https://www.boardwars.forum24.ru/?1-10-0-00000406-000-0-0 .
мостбет авиатор http://www.tagilshops.forum24.ru/?1-4-0-00000205-000-0-0 .
мостбет скачать бесплатно http://kharkovbynight.forum24.ru/?1-15-0-00003047-000-0-0-1742814422/ .
1 вин официальный 1 вин официальный .
motsbet https://kharkovbynight.forum24.ru/?1-15-0-00003047-000-0-0-1742814422/ .
mostbet casino http://www.maksipolinovtsu.forum24.ru/?1-1-0-00000194-000-0-0-1742815870 .
1win официальный сайт вход http://www.mymoscow.forum24.ru/?1-6-0-00026928-000-0-0 .
бк 1win https://dogzz.forum24.ru/?1-10-0-00000155-000-0-0-1742818537/ .
мостбет скачать на андроид мостбет скачать на андроид .
адин вин https://dogzz.forum24.ru/?1-10-0-00000155-000-0-0-1742818537 .
скачать mostbet http://www.corgan.borda.ru/?1-0-0-00000265-000-0-0 .
mostbet mostbet .
1вин сайт https://www.zdorovie.forum24.ru/?1-7-0-00000231-000-0-0-1742818050 .
мост бет мост бет .
Узнайте мнение тех, кто уже прошел процедуру банкротства и списал свои долги http://bankrotstvo-v-moskve123.ru .
партнёрка 1win http://knowledge.forum24.ru/?1-0-0-00000101-000-0-0-1742817704/ .
скачать мостбет официальный сайт скачать мостбет официальный сайт .
1вин официальный мобильная http://www.knowledge.forum24.ru/?1-0-0-00000101-000-0-0-1742817704 .
мостбет авиатор http://mostbet6004.ru .
1 win http://belbeer.borda.ru/?1-6-0-00001583-000-0-0 .
мостбет казино https://www.girikms.forum24.ru/?1-1-0-00000361-000-0-0-1742819287 .
1win com http://www.belbeer.borda.ru/?1-6-0-00001583-000-0-0 .
мастбет мастбет .
скачать мостбет http://alfatraders.borda.ru/?1-0-0-00004917-000-0-0-1743053068/ .
скачать mostbet на телефон https://hiend.borda.ru/?1-16-0-00000259-000-0-0-1743052953 .
mostbest https://alfatraders.borda.ru/?1-0-0-00004917-000-0-0-1743053068/ .
mostbet kg скачать на андроид http://cah.forum24.ru/?1-3-0-00000096-000-0-0-1743053764/ .
1win войти https://www.fanfiction.borda.ru/?1-0-0-00029708-000-0-0-1743051664 .
мостбет войти https://www.cah.forum24.ru/?1-3-0-00000096-000-0-0-1743053764 .
1вин официальный https://www.fanfiction.borda.ru/?1-0-0-00029708-000-0-0-1743051664 .
1 win.kg http://realistzoosafety.forum24.ru/?1-11-0-00001540-000-0-0-1742816894 .
1 вин скачать http://www.realistzoosafety.forum24.ru/?1-11-0-00001540-000-0-0-1742816894 .
1win com https://www.balashiha.myqip.ru/?1-12-0-00000437-000-0-0-1743258848 .
Узнайте мнение тех, кто уже прошел процедуру банкротства и списал свои долги https://bankrotstvo-v-moskve95.ru .
mostbet chrono https://www.svstrazh.forum24.ru/?1-18-0-00000136-000-0-0-1743260517 .
1win букмекер https://www.1win6051.ru .
мостбет скачать на андроид http://mostbet6029.ru .
cazino md https://1win5010.ru/ .
1win регистрация 1win6043.ru .
mostbet kg https://mostbet6033.ru/ .
1win скачать kg 1win скачать kg .
1win официальный 1win официальный .
скачать mostbet https://mostbet5002.ru .
1вин войти 1вин войти .
1win rossvya 1win rossvya .
скачать мостбет скачать мостбет .
descărca 1win 1win5027.ru .
1вин официальный сайт http://1win7017.ru/ .
мосбет казино https://mostbet7003.ru .
1win online http://1win7006.ru/ .
1wiun 1wiun .
мос бет 1win5028.ru .
most bet most bet .
1win партнерка вход 1win7018.ru .
melbet kg скачать melbet kg скачать .
скачать мостбет официальный сайт https://mostbet5010.ru .
мостбет авиатор http://www.mostbet5009.ru .
мосбет казино mostbet6033.ru .
баланс ван вин https://1win7012.ru/ .
most bet mostbet6040.ru .
мостбет вход https://mostbet7007.ru .
1win.com официальный сайт 1win.com официальный сайт .
1win cazinou 1win707.ru .
сайт 1 win сайт 1 win .
1 вин официальный сайт регистрация https://1win8013.ru/ .
авиатор игра 1вин 1win8005.ru .
1вин сайт http://1win8006.ru/ .
1win ставки на спорт зеркало онлайн https://1win8003.ru/ .
мостбет вход официальный сайт http://mostbet8003.ru .
1win moldova download https://www.1win5051.ru .
мелбет кг http://www.melbet1005.ru .
cod promoțional 1win https://1win5050.ru .
1win http://1win5053.ru .
melbet kg скачать http://www.melbet1004.ru .
mostbet uz скачать http://mostbet3025.ru .
mostbet официальный сайт https://mostbet3024.ru/ .
1win md http://www.1win5054.ru .
1win зеркало скачать приложение http://1win8020.ru .
как потратить бонусы казино в 1вин как потратить бонусы казино в 1вин .
1win coin получить промокод https://www.1win8004.ru .
1win регистрация ставки онлайн http://1win10002.ru/ .
мостбет вход на сегодня http://ugilas.com.kg .
¡Hola estrategas de las apuestas!
Con 100 giros gratis sin depГіsito EspaГ±a, tu experiencia de juego comienza sin riesgos. Puedes incluso ganar premios reales. ВЎSolo por registrarte!
Aprovecha tus 100 tiradas gratis en slots ahora mismo — 100 euros gratis sin deposito.
¡Que tengas magníficas botes extraordinarios!
продажа аккаунтов маркетплейс аккаунтов
аккаунт для рекламы безопасная сделка аккаунтов
услуги по продаже аккаунтов купить аккаунт
mosbet http://mostbet10009.ru .
1 вин официальный сайт войти https://1win10004.ru/ .
casino 1win http://1win1016.top/ .
мостбет вход официальный сайт мостбет вход официальный сайт .
mostbet kyrgyzstan http://mostbet10006.ru/ .
Sell Account Buy and Sell Accounts
продамус промокод скидка продамус промокод скидка .
Buy Pre-made Account Account Exchange Service
Account exchange Online Account Store
1win букмекерская контора сайт http://www.1win10030.ru .
Account Buying Platform Buy and Sell Accounts
Buy Pre-made Account Social media account marketplace
Sell Account https://socialmediaaccountsale.com/
1 win регистрация http://www.1win10028.ru .
1vin вход https://1win10023.ru/ .
1win регистрация ставки онлайн 1win регистрация ставки онлайн .
account market secure account purchasing platform
account marketplace account selling service
account selling platform account catalog
website for selling accounts account trading
теннис букмекерская скачать https://www.mostbet10010.ru .
1win официальный сайт букмекерской https://1win10066.ru/ .
скачать официальное приложение мостбет скачать официальное приложение мостбет .
account buying platform account trading platform
sell account buy account
1win зеркало сайта онлайн http://1win10063.ru/ .
website for buying accounts account marketplace
account trading buy accounts
account selling platform account trading service
account selling platform account purchase
account catalog accounts marketplace
online account store account acquisition
игра ракета на деньги 1win отзывы https://1win10070.ru .
1win акции http://1win10076.ru .
buy and sell accounts accounts for sale
purchase ready-made accounts buy accounts
buy account verified accounts for sale
profitable account sales buy pre-made account
1win казино скачать 1win казино скачать .
online account store account trading service
buy accounts sell pre-made account
accounts marketplace accounts marketplace
бк мостбет скачать mostbet10013.ru .
1win http://www.1win1031.top .
account trading platform secure account sales
account acquisition buy pre-made account
¡Hola apasionados del juego !
casinogurues.com
Empieza hoy mismo a girar y a ganar desde casa sin gastar dinero real https://25girosgratissindeposito.xyz con esta excelente promociГіn.
¡Que tengas magníficas momentos emocionantes !
1win cassino https://www.1win1017.top .
buy pre-made account accounts marketplace
¡Hola, entusiastas del entretenimiento !
10 euros gratis sin depГіsito casino
AquГ tienes una serie de textos Гєnicos, cada uno compuesto por un solo pГЎrrafo de tres oraciones, que incorporan los tГ©rminos clave proporcionados. Estos textos estГЎn diseГ±ados para ser utilizados en contextos relacionados con promociones de casinos en lГnea sin necesidad de depГіsito.
Casino Gran Madrid: bono de 10€ gratis — п»їhttps://www.youtube.com/watch?v=DvFWSMyjao4
¡Que tengas excelentes sesiones de juego !
Cialis without prescription: reliable online pharmacy Cialis — Cialis without prescription
best price for Viagra: buy generic Viagra online — generic sildenafil 100mg
verified accounts for sale https://social-accounts-marketplaces.live/
https://zipgenericmd.com/# buy generic Cialis online