Модуль фототранзистора KY-054

Узнайте всё о модуле фототранзистора KY-054: характеристики, распиновка, схемы подключения, документация и примеры кода для ESP32, Arduino, Raspberry Pi

Датчики освещенности Аналоговый

Обзор

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

KY-054 — это модуль фототранзистора для измерения интенсивности света. Он работает аналогично фоторезистору (LDR), но обеспечивает более быстрое время отклика и более высокую чувствительность, что делает его идеальным для мониторинга освещенности в реальном времени.

Модуль фототранзистора KY-054

О модуле фототранзистора KY-054

Модуль фототранзистора KY-054 предназначен для обнаружения интенсивности света и преобразования её в электрический сигнал. Он работает аналогично фоторезистору (LDR), но обладает более высокой скоростью отклика и чувствительностью. Этот модуль идеально подходит для таких приложений, как мониторинг окружающего освещения, автоматическая регулировка яркости и системы управления на основе света.

Ключевые особенности

  • Высокая чувствительность — точное определение уровней освещенности.
  • Быстрый отклик — реагирует на изменения света быстрее, чем обычные фоторезисторы.
  • Универсальность — совместим с Arduino, ESP32, Raspberry Pi и другими контроллерами.
Где купить

Приобретите KY-054

Технические характеристики

Характеристики KY-054

Полные технические данные для модуля фототранзистора KY-054.

Рабочее напряжение
3.3В - 5В
Тип выхода
Аналоговый
Размеры
28 x 15 x 7 мм
Температура
от -25°C до 70°C
Распиновка

Распиновка KY-054

Модуль KY-054 имеет 3 контакта для подключения:

Распиновка KY-054
1
🔌 Интерфейс

Аналоговый выход для измерения интенсивности света.

2
🎯 Сенсор

Фототранзистор обеспечивает более быстрый отклик по сравнению с LDR.

Совет по питанию

Для ESP32 рекомендуется использовать 3.3В для согласования с АЦП (ADC).

Пин Имя Тип Описание
1 GND Power Земля
2 +V Power Питание (3.3В / 5В)
3 Signal Analog Аналоговый выход
Подключение

Подключение KY-054 к ESP32

Для считывания уровня освещенности с модуля KY-054 используйте АЦП порт (ADC) на вашем микроконтроллере:

Пины данных
1
Сигнальный
Статус АЦП
Готов
Особенности ESP32
GPIO36 (VP) 3.3V
KY-054 Пин ESP32 Пин Описание
1 GND GND Земля
2 +V 3.3V Питание модуля
3 Signal GPIO36 (ADC1_CH0) Аналоговый вход
Устранение неполадок

Устранение неполадок KY-054

Распространенные проблемы и их решения для модуля фототранзистора:

Нет отклика от датчика
Остается постоянным или нулевым
  • Убедитесь, что на модуль подано правильное рабочее напряжение (3.3В или 5В).
  • Проверьте надежность всех соединений и ориентацию проводов.
  • Проверьте работоспособность аналогового пина микроконтроллера другим датчиком.
Неточные или скачущие показания
Шум в данных
  • Избегайте попадания прямых источников света на датчик, которые могут привести к насыщению.
  • Используйте программную фильтрацию (усреднение нескольких подряд идущих измерений).
  • Проверьте отсутствие наводок от силовых компонентов рядом с сигнальным проводом.
Примеры программирования

Примеры кода KY-054

Готовые примеры кода для различных платформ и фреймворков.

Arduino
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
ESP-IDF
Native C/C++ Framework
C++

Этот пример для ESP-IDF настраивает GPIO36 как аналоговый вход для чтения выхода модуля фототранзистора KY-054. Он рассчитывает значение напряжения и оценивает интенсивность света в люксах.

</div>
ESPHome
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
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
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 и сделайте его интеллектуальнее!

Похожие варианты

Вам также могут быть интересны эти датчики для ваших проектов.