Подключение датчика освещенности TEMT6000 к Arduino
Сегодня расскажу о датчике освещённости TEMT6000 и приведу небольшой пример использовании его совместно с Arduino и LCD дисплеем, на котором будем отображать процент яркости.
Технические параметры:
► Напряжение питания: 3.3 — 5 В;
► Потребляемый ток: до 20 мА;
► Длина фокусируемого излучения: 360 – 970 нм;
► Границы видимого излучения: 380 – 780 нм;
► Угол чувствительности: ±60 °;
► Габариты: 15 × 8 × 3 мм;
► Вес: 1 грамм.
Описание датчика TEMT6000
TEMT6000 был разработан как датчик внешней освещенности для автоматического управления затемнением подсветки мобильных телефонов, ноутбуков, автомобильных приборных панелей и подобных предметов. Его можно использовать во многих приложениях, где желательно измерить относительную яркость света, падающего на датчик.
Если посмотрим на модуль, он содержит всего два элемента, датчик TEMT6000 и резистор, подключение осуществляется с помощью трех проводов.
Сам датчик TEMT6000 состоит из одного фототранзистора, который действует точно так же, как простой NPN транзистор. Чем больше входящий свет на базу, тем больше ток, протекающий от коллектора к излучателю. Датчик работает только в видимом спектре (390-700 нм). Инфракрасный, ультрафиолетовый свет или любой другой источник света не окажут никакого влияния на датчик.
Назначение контактов:
► S / OUT = выходной сигнал – подключается к аналоговому выходы;
► G / GND = земля;
► V / VCC = Vcc (3,0 – 5,5 В).
Датчик работает в диапазоне от 3,3 В до 5 В. Если посмотреть на схему выше, то можно увидеть схему делителя напряжения, которой состоит из резистора на 10 кОм и датчика TEMT6000. Когда свет падает на поверхность фототранзистора, значение сопротивления изменяется, что приводит к изменению напряжения на выводе SIG. Arduino или любой другой микроконтроллер используется для считывания значения, а затем для измерения освещенности и интенсивности света.
Подключение модуля TEMT6000 к Arduino
В примере приведу схему подключения датчика TEMT6000 к плате Arduino UNO и LCD1602 работающим по интерфейсу I2C. Показания выведем в проценты и выведем на дисплей.
Необходимые компоненты.
► Arduino UNO R3 x 1 шт.
► Аналоговый датчик освещенности TEMT6000 x 1 шт.
► Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
► LCD-дисплей 1602A c I2c х 1 шт.
► Кабель USB 2.0 A-B x 1 шт
Подключение.
Для подключения модуля TEMT6000 к плате Arduino необходимо задействовать в общей сложности 3 провода. Подключаем контакты VIN и GND с TEMT6000 к контактам 5 В и GND на Arduino UNO, а контакт G с TEMT6000 подключаем к контакту А5 на Arduino UNO. Теперь осталось подключить LCD1602, контакты VIN и GND к контактам 5 В и GND на Arduino UNO и контакты SCL и SDA к контактам A5 и A4 на Arduino UNO.
Программа №1 — Отображение в процентах.
Открываем среду разработки Arduino IDE и загружаем первую программу в Arduino UNO.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
#include <LCD_1602_RUS.h> // Подключаем библиотеку LCD_1602_RUS LCD_1602_RUS LCD(0x27,16,2); // Указываем габариты дисплея и адрес I2C int temt6000Pin = A0; // Создаем переменную и указываем вывод float light; // Создаем переменную int light_value; // Создаем переменную void setup() { Serial.begin(115200); // Открываем последовательную связь LCD.init(); // Инициализация LCD LCD.backlight(); LCD.backlight(); // Включение подсветки дисплея pinMode(temt6000Pin, INPUT); // Устанавливаем вывод как вход LCD.setCursor(0, 0); // Устанавливаем курсор LCD.print("Интенси-ть света"); // Выводим текст } void loop() { light_value = analogRead(temt6000Pin); // Считывает показания с вывода light = light_value * 0.0976; // Рассчитываем показания в процентах Serial.println(light); // Отправка данных в последовательный порт LCD.setCursor(0, 1); // Устанавливаем курсор LCD.print(light); // Выводим текст LCD.print(" %"); // Выводим текст delay(500); // Пауза } |
Описание программы:
Аналоговое значение считывается с вывода SIG датчика и с помощью некоторых математических вычислений аналоговое значение преобразуется в интенсивность света в процентах.
Программа №2 — Отображение в люменах.
Открываем среду разработки Arduino IDE и загружаем первую программу в Arduino UNO.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#include <LCD_1602_RUS.h> // Подключаем библиотеку LCD_1602_RUS LCD_1602_RUS LCD(0x27,16,2); // Указываем габариты дисплея и адрес I2C void setup() { Serial.begin(115200); // Открываем последовательную связь LCD.init(); // Инициализация LCD LCD.backlight(); LCD.backlight(); // Включение подсветки дисплея pinMode(temt6000Pin, INPUT); // Устанавливаем вывод как вход LCD.setCursor(0, 0); // Устанавливаем курсор LCD.print("Освещенность"); // Выводим текст } void loop() { float volts = analogRead(A0) * 5.0 / 1024.0; float amps = volts / 10000.0; // across 10,000 Ohms float microamps = amps * 1000000; float lux = microamps * 2.0; LCD.setCursor(0, 1); LCD.print(lux); LCD.print(" lux"); delay(500); } |
Описание программы:
Аналоговое значение считывается с вывода SIG датчика и с помощью некоторых математических вычислений аналоговое значение преобразуется в интенсивность света в люменах.
Ссылки
Скачать библиотеку LCD_1602_RUS
Купить на Aliexpress
Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
Аналоговый датчик освещенности TEMT6000
LCD-дисплей 1602A
Купить в Самаре и области
Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
Аналоговый датчик освещенности TEMT6000
LCD-дисплей 1602A