Jak używać zmiany zmiany biegów TXS0108E z Arduino

How to Use the TXS0108E Voltage Level Shifter with Arduino

TXS0108E jest dwukierunkowym przemiennikiem poziomu napięcia, który umożliwia bezpieczną komunikację między urządzeniami działającymi na różnych poziomach napięcia, takich jak 3,3 V i 5 V. Jest powszechnie używany do interfejsu mikrokontrolerów 5 V (takich jak Arduino) z czujnikami lub modułami 3,3 V. Ten samouczek poprowadzi Cię do używania TXS0108E z Arduino.


Czego będziesz potrzebować

  1. Moduł zmiany zmiany biegów TXS0108E
  2. Arduino Board (np. UNO, Mega, Nano)
  3. Urządzenia 3,3 V i 5 V (np. Czujniki, moduły)
  4. Druty chleba i skoczków
  5. Komputer z zainstalowanym Arduino IDE

Krok 1: Zrozumienie modułu TXS0108E

Moduł TXS0108E ma dwie domeny mocy:

  • VCCA: Zasilacz po stronie niskiego napięcia (1,2 V - 3,6 V, np. Urządzenia 3,3 V).
  • VCCB: Zasilacz po stronie wysokiego napięcia (1,65 V - 5,5 V, np. Urządzenia 5 V).

Może obsłużyć do 8 dwukierunkowych linii danych, umożliwiając komunikację w obu kierunkach.

TXS0108E Pinout

Szpilka Funkcjonować
VCCA Zasilacz po stronie niskiego napięcia
VCCB Zasilacz po stronie wysokiego napięcia
GND Grunt
Oe Włącz wyjście (Active High)
Topór Linie danych bocznych niskiego napięcia (A1-A8)
Bx Linie danych bocznych wysokiego napięcia (B1-B8)

Krok 2: Okablowanie TXS0108E do Arduino

Poniżej znajduje się przykład podłączenia TXS0108E do Arduino i urządzenia 3.3V I2C (np. Czujnik BMP280):

Znajomości

TXS0108E PIN PIN Arduino PIN urządzenia 3.3 V.
VCCA 3,3 V. 3,3 V.
VCCB 5v Nie dotyczy
GND GND GND
A1 A4 (SDA, niskie napięcie) SDA
A2 A5 (SCL, niskie napięcie) Scl
B1 Urządzenie SDA Nie dotyczy
B2 Urządzenie SCL Nie dotyczy
Oe 5v Nie dotyczy

Notatka: Upewnij się, że zarówno VCCA, jak i VCCB są podłączone do odpowiednich zasobów napięcia i tak że OE jest powiązany z wysokim (5 V), aby włączyć moduł.


Krok 3: Prześlij kod Arduino

Oto przykład szkicu do komunikacji z urządzeniem 3.3V I2C (np. Czujnik BMP280) przez TXS0108E:

Przykładowy kod

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>

Adafruit_BMP280 bmp; // Create BMP280 object

void setup() {
  Serial.begin(9600);
  while (!Serial);

  Serial.println("Initializing BMP280...");

  if (!bmp.begin(0x76)) { // Default I2C address for BMP280
    Serial.println("Could not find a valid BMP280 sensor. Check wiring.");
    while (1);
  }

  Serial.println("BMP280 initialized.");
}

void loop() {
  Serial.print("Temperature: ");
  Serial.print(bmp.readTemperature());
  Serial.println(" °C");

  Serial.print("Pressure: ");
  Serial.print(bmp.readPressure());
  Serial.println(" Pa");

  delay(1000); // Wait for a second before the next reading
}

Krok 4: Przetestuj konfigurację

  1. Podłącz Arduino do komputera za pomocą USB.
  2. Otwórz Arduino IDE i wybierz poprawne Tablica I Port pod Narzędzia menu.
  3. Prześlij kod, klikając Wgrywać.
  4. Otwórz monitor szeregowy (Narzędzia > Monitor szeregowy) i ustaw wskaźnik transmisji na 9600.
  5. Obserwuj odczyty temperatury i ciśnienia z czujnika BMP280.

Zastosowania TXS0108E

  1. Interfejs mikrokontrolerów 5 V z czujnikami lub modułami 3,3 V.
  2. Przesuwanie poziomu dla SPI, I2C, UART lub innych protokołów komunikacyjnych.
  3. Włączanie dwukierunkowej komunikacji między urządzeniami mieszanego napięcia.

Rozwiązywanie problemów

  • Brak komunikacji: Sprawdź okablowanie dla VCCA, VCCB i OE. Upewnij się, że używany jest prawidłowy adres I2C.
  • Niestabilne dane: Użyj krótkich przewodów i sprawdź stabilne zasilacze.
  • Urządzenie nie odpowiada: Upewnij się, że kompatybilność napięcia i podwójne połączenia po obu stronach.

Wniosek

Z powodzeniem użyłeś zmiany zmiany biegów TXS0108E z Arduino, aby umożliwić komunikację między urządzeniami działającymi na różnych poziomach napięcia. Ten wszechstronny moduł jest niezbędny do mostkowania szczelin napięciowych w systemach mieszanego sygnału. Eksperymentuj dalej, łącząc inne urządzenia i badając jego aplikacje w twoich projektach!

Zostaw komentarz

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.