🛒
0 товаров
0 руб.

Интернет-магазин «Неглупый Дом»


↕️ Проект: согласование уровней 3.3V ESP8266 с 5V-периферией через TXS0108E

ESP8266 — логика 3.3V, при этом множество готовых модулей (реле, датчики, дисплеи), уже разбиравшихся в других проектах на сайте, рассчитаны на 5V. Многие такие модули на практике "прощают" прямое подключение к 3.3V-пинам ESP8266, но формально это выход за рамки спецификации и не гарантирует стабильную работу — модуль TXS0108E корректно и безопасно решает эту проблему, преобразуя сигнал в обе стороны по каждому из 8 независимых каналов.

Как это работает

TXS0108E — двунаправленный преобразователь логических уровней: в отличие от простого резистивного делителя (который работает только в одну сторону и не поднимает слабый сигнал обратно), эта микросхема автоматически определяет направление передачи сигнала по каждому из 8 каналов независимо и преобразует уровень в обе стороны — низковольтная сторона (LV, подключается к 3.3V ESP8266) и высоковольтная сторона (HV, подключается к 5V-периферии) разделены, а общий GND у обеих сторон обязателен.

Для цифровых сигналов (HIGH/LOW, включая I2C, SPI и большинство простых цифровых модулей вроде датчиков и реле) TXS0108E работает прозрачно: ESP8266 общается со своей стороной на привычном 3.3V, а периферия — на своих родных 5V, при этом каждая сторона "видит" сигнал в своём собственном уровне напряжения без необходимости переписывать код под другое напряжение.

Пошаговая сборка

Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.

  1. TXS0108E: сторона LV → питание 3.3V с ESP8266, сторона HV → питание 5V, GND обеих сторон — общий с GND ESP8266 и GND 5V-периферии.
  2. Любой цифровой пин ESP8266 (например, D1) → соответствующий канал LV1 преобразователя, а с другой стороны этого же канала HV1 → сигнальный пин 5V-периферии (например, реле или кнопочный модуль).
  3. Для каждого дополнительного сигнала используйте следующий свободный канал (LV2/HV2 и так далее) — всего на плате 8 независимых каналов.

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.

const int SIGNAL_PIN = D1; // идёт через канал TXS0108E к 5V-периферии (например, реле)

void setup() {
  Serial.begin(9600);
  pinMode(SIGNAL_PIN, OUTPUT);
}

void loop() {
  digitalWrite(SIGNAL_PIN, HIGH); // ESP8266 выдаёт 3.3V, TXS0108E поднимает до 5V на выходе
  Serial.println("Сигнал: HIGH (на 5V-стороне тоже HIGH)");
  delay(2000);

  digitalWrite(SIGNAL_PIN, LOW);
  Serial.println("Сигнал: LOW");
  delay(2000);
}

Дополнительных библиотек не требуется — преобразователь полностью прозрачен для кода, пин ESP8266 программируется точно так же, как если бы периферия была подключена напрямую. Если какой-то канал не работает — проверьте, что соответствующие LV и HV стороны именно этого номера канала подключены к своим цепям, каналы не взаимозаменяемы случайным образом.

Частые проблемы

Как улучшить проект

Товары по теме

Ещё модули для Arduino: Электронные модули.

← ⚠️ сигнализация превышения безопасного напряж…🔌 автономный сетевой узел управления нагрузк… →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу в корзину: 303 ₽ 273 ₽ (экономия 30 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина


Поиск



Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA