O TXS0108E é um câmbio de nível de tensão bidirecional que permite uma comunicação segura entre dispositivos que operam em diferentes níveis de tensão, como 3.3V e 5V. É comumente usado para interface os microcontroladores 5V (como o Arduino) com sensores ou módulos de 3.3V. Este tutorial o guiará usando o TXS0108E com Arduino.
O que você precisará
- Módulo de câmbio de nível de tensão TXS0108E
- Board Arduino (por exemplo, Uno, Mega, Nano)
- Dispositivos 3.3V e 5V (por exemplo, sensores, módulos)
- Fios de pão e jumper
- Um computador com o Arduino IDE instalado
Etapa 1: Compreendendo o módulo TXS0108E
O módulo TXS0108E possui dois domínios de potência:
- VCCA: Fonte de alimentação para o lado de baixa tensão (1,2V - 3,6V, por exemplo, dispositivos de 3.3V).
- VCCB: Fonte de alimentação para o lado de alta tensão (1,65V - 5,5V, por exemplo, dispositivos 5V).
Pode lidar com até 8 linhas de dados bidirecionais, permitindo a comunicação em ambas as direções.
TXS0108E PILOUT
Alfinete | Função |
---|---|
VCCA | Fonte de alimentação lateral de baixa tensão |
VCCB | Fonte de alimentação lateral de alta tensão |
Gnd | Chão |
OE | Saída Ativar (ativo alto) |
Machado | Linhas de dados laterais de baixa tensão (A1-A8) |
Bx | Linhas de dados laterais de alta tensão (B1-B8) |
Etapa 2: Fiação do TXS0108E para Arduino
Abaixo está um exemplo de conectar o TXS0108E a um Arduino e um dispositivo 3.3V I2C (por exemplo, sensor BMP280):
Conexões
Pino TXS0108E | Pino Arduino | 3,3V PIN do dispositivo |
---|---|---|
VCCA | 3.3V | 3.3V |
VCCB | 5V | N / D |
Gnd | Gnd | Gnd |
A1 | A4 (SDA, baixa tensão) | SDA |
A2 | A5 (SCL, baixa tensão) | SCL |
B1 | Dispositivo SDA | N / D |
B2 | Dispositivo SCL | N / D |
OE | 5V | N / D |
Observação: Verifique se o VCCA e o VCCB estão conectados aos seus respectivos suprimentos de tensão e que
OE
está ligado ao alto (5V) para ativar o módulo.
Etapa 3: Faça o upload do código Arduino
Aqui está um exemplo de esboço para se comunicar com um dispositivo 3.3V I2C (por exemplo, sensor BMP280) através do TXS0108E:
Código de exemplo
#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
}
Etapa 4: teste a configuração
- Conecte o Arduino ao seu computador via USB.
- Abra o Arduino IDE e selecione o correto Quadro e Porta sob o Ferramentas menu.
- Faça o upload do código clicando Carregar.
- Abra o monitor serial (Ferramentas > Monitor serial) e definir a taxa de transmissão como
9600
. - Observe as leituras de temperatura e pressão do sensor BMP280.
Aplicações do TXS0108E
- Microcontroladores de interface 5V com sensores ou módulos de 3,3V.
- A mudança de nível para SPI, I2C, UART ou outros protocolos de comunicação.
- Permitindo a comunicação bidirecional entre dispositivos de tensão mista.
Solução de problemas
- Sem comunicação: Verifique a fiação para VCCA, VCCB e OE. Verifique se o endereço I2C correto é usado.
- Dados instáveis: Use fios curtos e verifique se há fontes de alimentação estáveis.
- Dispositivo não respondendo: Certifique-se de compatibilidade de tensão e verificar as conexões duas vezes nos dois lados.
Conclusão
Você usou com sucesso o shifter de nível TXS0108E com o Arduino para permitir a comunicação entre dispositivos que operam em diferentes níveis de tensão. Este módulo versátil é essencial para a ponte de lacunas de tensão em sistemas de sinal misto. Experimente ainda mais conectando outros dispositivos e explorando seus aplicativos em seus projetos!