Обзор
Модуль KY-053 представляет собой высокоточный аналого-цифровой преобразователь (АЦП), построенный на чипе ADS1115. Он предоставляет 4 канала с 16-битным разрешением и работает через интерфейс I2C.
KY-053 (ADS1115) — это идеальное решение для микроконтроллеров без встроенного АЦП (например, Raspberry Pi) или для случаев, когда требуется более высокая точность измерений, чем стандартные 10-12 бит встроенных АЦП Arduino или ESP32.
Примеры кода
Приобретите KY-053 Аналого-цифровой преобразователь (АЦП)
Характеристики KY-053
Основные параметры аналого-цифрового преобразователя ADS1115:
| Параметр | Значение |
|---|---|
| Скорость выборки | от 8 до 860 выбор/сек (SPS) |
| Встроенный усилитель (PGA) | До x16 |
| Режимы работы | Непрерывный или одиночный замер |
| Размеры модуля | 18 x 28 мм |
Распиновка KY-053
Модуль имеет 7 контактов для подключения питания, интерфейса I2C и аналоговых входов.
Настройка адреса I2C
Используйте пин **ADDR** для изменения адреса I2C: - **GND**: 0x48 (по умолчанию) - **VDD**: 0x49 - **SDA**: 0x4A - **SCL**: 0x4B
Совет по подключению
Пины A0–A3 используются для подачи аналогового напряжения. Не превышайте напряжение питания (VDD) на этих входах во избежание повреждения чипа.
| Пин | Имя | Тип | Описание |
|---|---|---|---|
| 1 | GND | Power | Земля (0В) |
| 2 | VDD | Power | Питание (2.0В – 5.5В) |
| 3 | SDA | I2C | Линия данных I2C |
| 4 | SCL | I2C | Линия тактирования I2C |
| 5 | ADDR | Input | Выбор адреса I2C |
| 6 | ALRT | Output | Оповещение / готовность (Alert) |
| 7 | A0–A3 | Analog | Аналоговые входы |
Подключение KY-053 к ESP32
Для высокоточного измерения аналоговых сигналов подключите модуль к ESP32 через шину I2C.
| KY-053 Пин | ESP32 Пин | Описание |
|---|---|---|
| GND | GND | Общий минус |
| VDD | 3.3V | Питание (для ESP32 лучше 3.3В) |
| SDA | GPIO21 | I2C Данные |
| SCL | GPIO22 | I2C Тактирование |
Точность 16 бит
Это в 16 раз точнее 12-битного встроенного АЦП ESP32, что критично для прецизионных датчиков веса или давления.
Дифференциальный режим
Модуль позволяет измерять разность напряжений между двумя входами (например, A0-A1), что снижает уровень шумов.
Устранение неполадок KY-053
Распространенные проблемы и способы их решения.
Модуль не обнаружен на шине I2C
- Проверьте надежность контактов SDA и SCL.
- Убедитесь, что пин ADDR подключен к GND (адрес 0x48) или другому стабильному потенциалу.
- Используйте I2C-сканер для проверки присутствия устройства по адресу 0x48.
Нестабильные или неверные показания
- Проверьте, не превышает ли входное напряжение уровень VDD.
- Настройте Programmable Gain Amplifier (PGA) в коде под ваш диапазон напряжений.
- Убедитесь, что питание модуля стабильно и не имеет сильных пульсаций.
Программирование модуля KY-053
Ниже приведены примеры для популярных платформ с использованием стандартных библиотек ADS1115.
Пример для Arduino
Используется библиотека Adafruit_ADS1X15
C++
Пример для Arduino
Используется библиотека Adafruit_ADS1X15
// Подключение библиотек
#include <Wire.h>
#include <Adafruit_ADS1X15.h>
// Создаем объект АЦП
Adafruit_ADS1115 ads;
void setup() {
Serial.begin(9600);
// Настройка усиления (Gain)
// GAIN_TWOTHIRDS: +/- 6.144V 1 bit = 0.1875mV
ads.setGain(GAIN_TWOTHIRDS);
// Инициализация модуля
if (!ads.begin()) {
Serial.println("Ошибка инициализации ADS1115!");
while (1);
}
}
void loop() {
int16_t adc0, adc1, adc2, adc3;
// Чтение одиночных каналов
adc0 = ads.readADC_SingleEnded(0);
adc1 = ads.readADC_SingleEnded(1);
adc2 = ads.readADC_SingleEnded(2);
adc3 = ads.readADC_SingleEnded(3);
// Вывод в Serial Monitor
Serial.print("Канал 0: "); Serial.println(adc0);
Serial.print("Канал 1: "); Serial.println(adc1);
Serial.print("Канал 2: "); Serial.println(adc2);
Serial.print("Канал 3: "); Serial.println(adc3);
Serial.println("----------------");
delay(1000);
}
Пример для MicroPython
Код для ESP32 или Raspberry Pi Pico
Python
Пример для MicroPython
Код для ESP32 или Raspberry Pi Pico
import machine
import time
from ads1x15 import ADS1115
# Настройка I2C на ESP32 (SCL=22, SDA=21)
i2c = machine.I2C(0, scl=machine.Pin(22), sda=machine.Pin(21))
# Инициализация АЦП (адрес по умолчанию 0x48)
adc = ADS1115(i2c, address=0x48)
while True:
for i in range(4):
# Чтение значения канала
value = adc.read(i)
print(f"Канал {i}: {value}")
time.sleep(1)
Итоги
Модуль KY-053 (ADS1115) — это мощный инструмент для тех, кто ищет высокую точность и надежность в аналоговых измерениях. Благодаря 16-битному разрешению и гибкой настройке через I2C, он подходит как для простых проектов, так и для сложных профессиональных систем.
Рекомендации
- Используйте дифференциальный режим для датчиков со слабым сигналом.
- Правильно настраивайте Gain (усиление), чтобы использовать весь динамический диапазон 16 бит.
- Не забывайте про pull-up резисторы на линиях SDA/SCL, если их нет на самом модуле.
Безопасность
- Не подавайте на входы A0–A3 напряжение выше напряжения питания VDD.
- Избегайте статического электричества при работе с открытой платой модуля.
Готовы начать проект на KY-053?
Скачайте спецификации или посмотрите подробные примеры программирования, чтобы запустить ваш АЦП прямо сейчас!