16 novembro 2015

Como funciona o conversor de nível lógico 3,3 - 5V

Muitas vezes ligar um módulo que trabalha com nível de sinal de 3.3V ao Arduino (cujo nível de sinal é de 5V, na maioria das placas) pode ser um exercício complicado, e nem sempre montar um divisor de tensão com resistores consegue trazer os resultados esperados, seja em interfaces I2C ou SPI. Isso sem contar a perda de espaço ao montar um circuito desse tipo.

Nessas situações, você pode utilizar um componente barato e confiável, o Conversor de Nível Lógico 3,3 - 5V:

Conversor de nível lógico 3.3 - 5V Bidirecional

Com este conversor você tem 2 canais bidirecionais (convertem tensão de 3,3 para 5v e de 5v para 3,3V), e dois unidirecionais (convertem de 5V para 3,3V), além de ser ideal para montagem em uma protoboard.

Ele também é muito útil para ser utilizado com o Raspberry Pi (nível de sinal de 3.3V) para conectar alguns módulos que trabalham com nível de sinal de 5V. 

Pinagem e estrutura


Essa placa tem internamente dois circuitos: um divisor de tensão comum, que vai diminuir a tensão de 5V para 3,3V, e um circuito baseado em MOSFET, que vai fazer a conversão em ambos os sentidos (menor para o maior e maior para o menor).

Na imagem abaixo temos a disposição dos dois canais nas laterais da placa, e na parte central temos os conectores de tensão de referência, cuja ligação é obrigatória para que a placa funcione.

Conversor de nível lógico - Canais


Em cada canal temos 2 entradas e 2 saídas, que funcionam da seguinte maneira:

  • RXI e RXO (RX Input e RX Output) - Pinos do divisor de tensão. Esses pinos convertem o sinal de 5V para 3,3V, e NÃO funcionam no sentido inverso.
  • TXI e TXO (TX Input e TX Output) - Pinos do circuito MOSFET. Esses pinos convertem o sinal de 5V para 3,3V e de 3,3V para 5V, se necessário.

A imagem abaixo mostra de maneira mais clara como funciona cada canal:

Conversor de nivel logico - Detalhes


Conversor de nível lógico - Exemplos de uso


Uma das aplicações mais comuns do conversor de nível lógico é com o módulo bluetooth, que trabalha com nível de sinal de 3,3V, e nos posts aqui do Arduino e Cia geralmente usamos com um divisor de tensão formado por resistores.

Em uma ligação básica desse conversor com o Arduino e um módulo bluetooth HC-05, por exemplo, teríamos a seguinte ligação:

Circuito Arduino Uno HC-05 e LLC


Já com um módulo cartão SD, que no post Gravando dados do Arduino no cartão SD usou 8 resistores, a ligação ficaria assim, bem mais simples:

Circuito Arduino Uno e modulo cartão SD


Como comentamos no início do post, você pode utilizar também o conversor de nível lógico para ligar ao Raspberry Pi módulos que trabalham exclusivamente com 5V, como o módulo RTC DS1307:

Raspberry Pi e Conversor de Nível Lógico


O Conversor de Nível Lógico é uma opção simples e prática para o seu circuito, deixando o seu projeto com um aspecto mais profissional.


14 comentários:

  1. Se eu preciso apenas converter os 5v de um carregador de celular para ligar um módulo que trabalha a 3,3v posso utilizar um regulador de tensão comum ou mesmo um compacto como por exemplo AMS1117 ?

    ResponderExcluir
    Respostas
    1. Bom dia Elvis,

      Pode ser um regulador de tensão comum. Eu já fiz algo desse tipo usando o módulo LM317:

      http://www.arduinoecia.com.br/2015/06/modulo-regulador-tensao-lm317-step-down.html

      Abraço!

      Excluir
  2. Comprei esse componente mas ele não veio com aquelas "cabecinhas" nos pinos como tem no anúncio do site http://www.filipeflop.com/pd-14770b-conversor-de-nivel-logico-3-3-5v-bidirecional.html?ct=&p=1&s=1

    Os pinos ficam soltos. É assim mesmo ou precisa comprar algo pra prender?

    ResponderExcluir
    Respostas
    1. Oi Adriano,

      Esses pinos precisam ser soldados no módulo.

      Abraço!

      Excluir
  3. Pessoal, acredito que isso seja a solução para o meu problema que é ter um arduino rodando com alimentação de bateria de litium de 3.7v, com demanda de 5v para alguns sensores, mas a duvida que ficou é: O consumo de energia aumenta ? devido ao fato de trabalhar com baterias, o consumo é um fator crucial para o meu projeto, então se há um aumento, eu preciso saber como calcular isso para dimensionar a bateria de acordo.

    Obrigado,

    ResponderExcluir
  4. Bom dia! Estou utizando o NodeMCU ESP8266 que trabalha com tensão de 3.3V e não tem nenhum pino 5v. Quero saber se posso usar esse conversor para conectar um componente de 5v no NodeMCU?

    ResponderExcluir
    Respostas
    1. Oi Ivanildo,

      Sim, este é o conversor mais indicado.

      Abraço!

      Excluir
  5. Olá, você saberia me dizer a limitação da frequência de operação que este circuito consegue tem, se está muito abaixo dos tempos especificados no datasheet do BSS138?

    ResponderExcluir
    Respostas
    1. Oi Felipe,

      O que você quer dizer exatamente com frequência de operação ?

      Abraço!

      Excluir
    2. Olá,
      Eu posso enviar os dados com uma taxa de transmissão de 5 Mbps, 10 Mbps ou mais?

      Excluir
    3. Olá,

      talvez me expressei mal, gostaria de saber a taxa de transmissão suportada, ex: 10 Mbps ou 5 Mbps, pelo conversor e se já foi usado em taxas próximas a exemplificada?

      Abraço!

      Excluir
    4. Oi Felipe,

      Entendi. eu realmente não testei com essas taxas, mas creio que não tenha problema. O módulo deve suportar tranquilamente.

      Abraço!

      Excluir
  6. Bom dia. Tá, e quando vc tem um arduino standalone que não tem a tensao de 3.3v como é que faz?

    ResponderExcluir