
Интернет-магазин «Неглупый Дом»
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, при этом каждая сторона "видит" сигнал в своём собственном уровне напряжения без необходимости переписывать код под другое напряжение.
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.
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 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.