Обзор
KY-054 — это модуль фототранзистора, который определяет уровень освещенности окружающей среды и выдает на выходе аналоговое напряжение, пропорциональное интенсивности света. Он широко используется в проектах, требующих измерения освещенности, таких как системы автоматического освещения и детекторы яркости.
KY-054 — это модуль фототранзистора для измерения интенсивности света. Он работает аналогично фоторезистору (LDR), но обеспечивает более быстрое время отклика и более высокую чувствительность, что делает его идеальным для мониторинга освещенности в реальном времени.
О модуле фототранзистора KY-054
Модуль фототранзистора KY-054 предназначен для обнаружения интенсивности света и преобразования её в электрический сигнал. Он работает аналогично фоторезистору (LDR), но обладает более высокой скоростью отклика и чувствительностью. Этот модуль идеально подходит для таких приложений, как мониторинг окружающего освещения, автоматическая регулировка яркости и системы управления на основе света.
⚡ Ключевые особенности
- Высокая чувствительность — точное определение уровней освещенности.
- Быстрый отклик — реагирует на изменения света быстрее, чем обычные фоторезисторы.
- Универсальность — совместим с Arduino, ESP32, Raspberry Pi и другими контроллерами.
Приобретите KY-054
Характеристики KY-054
Полные технические данные для модуля фототранзистора KY-054.
Распиновка KY-054
Модуль KY-054 имеет 3 контакта для подключения:
Аналоговый выход для измерения интенсивности света.
Фототранзистор обеспечивает более быстрый отклик по сравнению с LDR.
Для ESP32 рекомендуется использовать 3.3В для согласования с АЦП (ADC).
| Пин | Имя | Тип | Описание |
|---|---|---|---|
| 1 | GND | Power | Земля |
| 2 | +V | Power | Питание (3.3В / 5В) |
| 3 | Signal | Analog | Аналоговый выход |
Подключение KY-054 к ESP32
Для считывания уровня освещенности с модуля KY-054 используйте АЦП порт (ADC) на вашем микроконтроллере:
| KY-054 Пин | ESP32 Пин | Описание |
|---|---|---|
| 1 GND | GND | Земля |
| 2 +V | 3.3V | Питание модуля |
| 3 Signal | GPIO36 (ADC1_CH0) | Аналоговый вход |
Устранение неполадок KY-054
Распространенные проблемы и их решения для модуля фототранзистора:
Нет отклика от датчика
Остается постоянным или нулевым
- Убедитесь, что на модуль подано правильное рабочее напряжение (3.3В или 5В).
- Проверьте надежность всех соединений и ориентацию проводов.
- Проверьте работоспособность аналогового пина микроконтроллера другим датчиком.
Неточные или скачущие показания
Шум в данных
- Избегайте попадания прямых источников света на датчик, которые могут привести к насыщению.
- Используйте программную фильтрацию (усреднение нескольких подряд идущих измерений).
- Проверьте отсутствие наводок от силовых компонентов рядом с сигнальным проводом.
Примеры кода KY-054
Готовые примеры кода для различных платформ и фреймворков.
Arduino Core
C++ Framework (ESP32/Arduino)
C++
// Объявление пина для фототранзистора
int light_sensor = A5;
// Определение параметров необходимых для расчета
const double U1 = 5.0; // Напряжение питания (5В)
const double R2 = 10000.0; // Постоянное сопротивление (10 кОм)
double U2;
double I;
double R1;
double lux;
int rawValue;
void setup() {
// Установка режима пина
pinMode(light_sensor, INPUT);
// Настройка последовательного монитора
Serial.begin(9600);
Serial.println("Тест яркости KY-054");
}
void loop() {
// Считывание напряжения с датчика освещенности
rawValue = analogRead(light_sensor);
U2 = rawValue * (5.0 / 1023.0); // Для 10-битного АЦП Arduino
// Проверка U2 для исключения деления на ноль
if (U2 != 0) {
// Расчет сопротивления фототранзистора
R1 = (U1 * R2) / U2;
// Расчет тока (в мкА)
I = (U1 / R1) * 1000000.0;
// Оценочный расчет люкс (зависит от калибровки)
lux = log(I) / 0.06;
} else {
lux = 0;
}
// Вывод результата в монитор порта
Serial.print("Яркость (Lux): ");
Serial.println(lux);
// Задержка 1 секунда
delay(1000);
}
Этот код считывает данные с аналогового входа, выполняет расчет напряжения и сопротивления, а затем выводит расчетное значение освещенности в люксах.
</div>
ESP-IDF
Native C/C++ Framework
C++
Этот пример для ESP-IDF настраивает GPIO36 как аналоговый вход для чтения выхода модуля фототранзистора KY-054. Он рассчитывает значение напряжения и оценивает интенсивность света в люксах.
</div>
ESPHome
YAML Configuration for Home Assistant
YAML
sensor:
- platform: adc
pin: GPIO36
name: "KY-054 Датчик света"
update_interval: 1s
unit_of_measurement: "lux"
filters:
- multiply: 3.3
- lambda: |-
// Расчет интенсивности света на основе напряжения
float resistance = (3.3 * 10000.0) / (x == 0 ? 1 : x);
float current = (3.3 / resistance) * 1000000.0;
return log(current) / 0.06;
Эта конфигурация настраивает KY-054 на пине GPIO36 как аналоговый вход в ESPHome, применяя математические фильтры для перевода напряжения в люксы.
</div>
PlatformIO
Professional IDE Extension
Arduino
main.cpp
#include <Arduino.h>
#define LIGHT_SENSOR_PIN 36 // GPIO для ESP32
void setup() {
Serial.begin(115200);
Serial.println("Тест датчика света KY-054");
}
void loop() {
// Считывание сырого значения АЦП
int raw_value = analogRead(LIGHT_SENSOR_PIN);
// Конвертация в напряжение (для АЦП 12-бит на ESP32)
float voltage = raw_value * (3.3 / 4095.0);
Serial.printf("Напряжение датчика: %.2fВ\n", voltage);
delay(1000);
}
Простой пример для PlatformIO, который переводит сырое значение АЦП в напряжение.
</div>
MicroPython
Python for microcontrollers
Python
import machine
import time
import math
# Настройка АЦП на GPIO36
LIGHT_SENSOR_PIN = machine.ADC(machine.Pin(36))
# Установка затухания для диапазона 0-3.3B
LIGHT_SENSOR_PIN.atten(machine.ADC.ATTN_11DB)
while True:
raw_value = LIGHT_SENSOR_PIN.read()
voltage = (raw_value / 4095) * 3.3
# Расчет (оценочный)
if voltage > 0:
resistance = (3.3 * 10000.0) / voltage
current = (3.3 / resistance) * 1000000.0
lux = math.log(current) / 0.06
print("Интенсивность света:", round(lux, 2), "lux")
else:
print("Интенсивность света: 0 lux")
time.sleep(1)
Скрипт MicroPython считывает АЦП, конвертирует в напряжение и рассчитывает освещенность каждую секунду.
</div>
Документация и ссылки
Полезная техническая информация о KY-054.
Итоги
Модуль фототранзистора KY-054 — это быстрое и эффективное решение для измерения освещенности в ваших проектах.
Используйте этот модуль там, где важна скорость реакции на свет. Для более стабильных показаний медленно меняющейся освещенности можно использовать усреднение по 10-20 замерам.
Всегда проверяйте правильность полярности питания. Обратное подключение питания может вывести фототранзистор из строя.
Готовы к созданию проекта?
Интегрируйте KY-054 в свой следующий проект на ESP32 и сделайте его интеллектуальнее!
Похожие варианты
Вам также могут быть интересны эти датчики для ваших проектов.