Cara menggunakan shifter level tegangan TXS0108E dengan Arduino

How to Use the TXS0108E Voltage Level Shifter with Arduino

TXS0108E adalah shifter level tegangan dua arah yang memungkinkan komunikasi yang aman antara perangkat yang beroperasi pada tingkat tegangan yang berbeda, seperti 3.3V dan 5V. Ini biasanya digunakan untuk menghubungkan mikrokontroler 5V (seperti Arduino) dengan sensor atau modul 3.3V. Tutorial ini akan memandu Anda melalui menggunakan TXS0108E dengan Arduino.


Apa yang Anda Butuhkan

  1. TXS0108E Modul Shifter Tingkat Tegangan
  2. Dewan Arduino (mis., Uno, mega, nano)
  3. Perangkat 3.3V dan 5V (mis., Sensor, modul)
  4. Papan tempat memotong papan dan kabel jumper
  5. Komputer dengan IDE Arduino diinstal

Langkah 1: Memahami modul TXS0108E

Modul TXS0108E memiliki dua domain daya:

  • VCCA: Catu daya untuk sisi tegangan rendah (1.2V - 3.6V, mis., Perangkat 3.3V).
  • VCCB: Catu daya untuk sisi tegangan tinggi (1.65V - 5.5V, mis., Perangkat 5V).

Ini dapat menangani hingga 8 jalur data dua arah, memungkinkan komunikasi di kedua arah.

TXS0108E Pinout

Pin Fungsi
VCCA Catu daya sisi tegangan rendah
Vccb Catu daya samping tegangan tinggi
Gnd Tanah
Oe Output mengaktifkan (aktif tinggi)
Kapak Garis data sisi tegangan rendah (A1-A8)
Bx Garis data sisi tegangan tinggi (B1-B8)

Langkah 2: Pengkabelan TXS0108E ke Arduino

Di bawah ini adalah contoh menghubungkan TXS0108E ke Arduino dan perangkat 3.3V I2C (mis., Sensor BMP280):

Koneksi

PIN TXS0108E Pin Arduino Pin perangkat 3.3V
VCCA 3.3v 3.3v
Vccb 5v N/a
Gnd Gnd Gnd
A1 A4 (SDA, tegangan rendah) SDA
A2 A5 (SCL, tegangan rendah) Scl
B1 Perangkat SDA N/a
B2 Perangkat SCL N/a
Oe 5v N/a

Catatan: Memastikan bahwa VCCA dan VCCB terhubung ke persediaan tegangan masing -masing dan itu OE diikat ke tinggi (5V) untuk mengaktifkan modul.


Langkah 3: Unggah kode Arduino

Berikut contoh sketsa untuk berkomunikasi dengan perangkat 3.3V I2C (mis., Sensor BMP280) melalui TXS0108E:

Kode contoh

#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
}

Langkah 4: Uji pengaturan

  1. Hubungkan Arduino ke komputer Anda melalui USB.
  2. Buka IDE Arduino dan pilih yang benar Papan Dan Pelabuhan di bawah Peralatan menu.
  3. Unggah kode dengan mengklik Mengunggah.
  4. Buka monitor serial (Peralatan > Monitor serial) dan atur baud rate ke 9600.
  5. Amati pembacaan suhu dan tekanan dari sensor BMP280.

Aplikasi TXS0108E

  1. Mikrokontroler 5V yang berinteraksi dengan sensor atau modul 3.3V.
  2. Pergeseran level untuk protokol komunikasi SPI, I2C, UART, atau lainnya.
  3. Mengaktifkan komunikasi dua arah antara perangkat tegangan campuran.

Pemecahan masalah

  • Tidak ada komunikasi: Verifikasi kabel untuk VCCA, VCCB, dan OE. Pastikan alamat I2C yang benar digunakan.
  • Data yang tidak stabil: Gunakan kabel pendek dan periksa catu daya yang stabil.
  • Perangkat Tidak Menanggapi: Pastikan kompatibilitas tegangan dan koneksi periksa ganda di kedua sisi.

Kesimpulan

Anda telah berhasil menggunakan shifter level TXS0108E dengan Arduino untuk memungkinkan komunikasi antar perangkat yang beroperasi pada tingkat tegangan yang berbeda. Modul serbaguna ini sangat penting untuk menjembatani kesenjangan tegangan dalam sistem sinyal campuran. Eksperimen lebih lanjut dengan menghubungkan perangkat lain dan mengeksplorasi aplikasinya di proyek Anda!

Tinggalkan komentar

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.