TXS0108E este un schimbător de nivel de tensiune bi-direcțional care permite o comunicare în siguranță între dispozitivele care funcționează la diferite niveluri de tensiune, cum ar fi 3.3V și 5V. Este utilizat în mod obișnuit pentru a interfața microcontrolerele 5V (precum Arduino) cu senzori sau module de 3,3 V. Acest tutorial vă va ghida utilizând TXS0108E cu Arduino.
Ce vei avea nevoie
- TXS0108E Modul de schimbare a nivelului de tensiune
- Arduino Board (de exemplu, Uno, Mega, Nano)
- Dispozitive 3.3V și 5V (de exemplu, senzori, module)
- Tablă de pâine și jumper
- Un computer cu IDE Arduino instalat
Pasul 1: Înțelegerea modulului TXS0108E
Modulul TXS0108E are două domenii de putere:
- VCCA: Sursă de alimentare pentru partea de joasă tensiune (1,2V - 3,6V, de exemplu, dispozitive 3.3V).
- Vccb: Surime de alimentare pentru partea de înaltă tensiune (1,65V - 5,5V, de exemplu, 5V dispozitive).
Poate gestiona până la 8 linii de date bidirecționale, permițând comunicarea în ambele direcții.
TXS0108E PINOUT
Ac | Funcţie |
---|---|
VCCA | Sursă de alimentare laterală de joasă tensiune |
Vccb | Sursă de alimentare laterală de înaltă tensiune |
GND | Sol |
Oe | Activare de ieșire (activă activă) |
Topor | Linii de date laterale de joasă tensiune (A1-A8) |
BX | Linii de date laterale de înaltă tensiune (B1-B8) |
Pasul 2: Cablarea TXS0108E către Arduino
Mai jos este un exemplu de conectare a TXS0108E la un Arduino și un dispozitiv I2C de 3.3V (de exemplu, senzor BMP280):
Conexiuni
TXS0108E PIN | Pinul Arduino | Pinul dispozitivului 3.3V |
---|---|---|
VCCA | 3.3V | 3.3V |
Vccb | 5V | N / A |
GND | GND | GND |
A1 | A4 (SDA, joasă tensiune) | SDA |
A2 | A5 (SCL, joasă tensiune) | SCL |
B1 | Dispozitiv SDA | N / A |
B2 | Dispozitiv SCL | N / A |
Oe | 5V | N / A |
Nota: Asigurați -vă că atât VCCA cât și VCCB sunt conectate la aprovizionarea lor de tensiune respectivă și că
OE
este legat de mare (5V) pentru a activa modulul.
Pasul 3: Încărcați codul Arduino
Iată un exemplu de schiță pentru a comunica cu un dispozitiv I2C de 3.3V (de exemplu, senzor BMP280) prin TXS0108E:
Cod de exemplu
#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
}
Pasul 4: Testați configurarea
- Conectați Arduino la computer prin USB.
- Deschideți IDE Arduino și selectați corect Bord şi Port sub Instrumente meniu.
- Încărcați codul făcând clic pe Încărcați.
- Deschideți monitorul în serie (Instrumente > Monitor în serie) și setați rata de transfer la
9600
. - Observați citirile de temperatură și presiune de la senzorul BMP280.
Aplicațiile TXS0108E
- Interfațarea microcontrolerelor 5V cu senzori sau module de 3,3 V.
- Schimbarea nivelului pentru SPI, I2C, UART sau alte protocoale de comunicare.
- Activarea comunicării bidirecționale între dispozitivele de tensiune mixtă.
Depanare
- Fără comunicare: Verificați cablarea pentru VCCA, VCCB și OE. Asigurați -vă că se folosește adresa I2C corectă.
- Date instabile: Utilizați fire scurte și verificați dacă există surse de alimentare stabile.
- Dispozitivul care nu răspunde: Asigurați-vă compatibilitatea tensiunii și conexiunile de verificare dublă pe ambele părți.
Concluzie
Ați utilizat cu succes schimbătorul de nivel TXS0108E cu Arduino pentru a permite comunicarea între dispozitivele care funcționează la diferite niveluri de tensiune. Acest modul versatil este esențial pentru combaterea lacunelor de tensiune în sistemele cu semnal mixt. Experimentați în continuare conectând alte dispozitive și explorarea aplicațiilor sale în proiectele dvs.!