Latch e a Internet das Coisas: Integração prática com Arduino (III)

segunda-feira, 19 de outubro de 2015

No post anterior estava pendente conhecer os detalhes técnicos da conexão entre o Arduino e módulo Wi-Fi. Neste artigo veremos como.

Conexão do módulo ESP8266 com Arduino

Uma característica importante do módulo ESP8266 que deve ser  considerada é a tensão de funcionamento de 3,3 volts (LVTTL), sem tolerância para tensões mais elevadas. Se usarmos um Arduino tradicional, como UNO, que trabalha em 5V (TTL), é necessário realizar uma adaptação das tensões, tanto para a alimentação do módulo como para as linhas de comunicação entre ambos os dispositivos.

Diagrama do Módulo ESP-01


Existem outros modelos que trabalham em 3.3v como o MINI PRO 3v, o DUE, ou o novo M0+, estes podem ser conectados diretamente ao módulo ESP8266 sem qualquer adaptação. Mesmo estes dois últimos modelos podem alimentar o módulo por sua saída de 3.3v, já que fornecem energia suficiente para isso.

Também é possível modificar o Arduino UNO para trabalhar internamente a 3,3 volts, mas será sempre melhor optar por implementar uma adaptação de níveis lógicos entre os dispositivos de tensão diferente.

É fácil quando dispositivos lógicos TTL 5V se conectam com dispositivos lógicos LVTTL 3.3V, porque eles são compatíveis entre si e ao estabelecem os mesmos valores para os níveis lógico HIGH e LOW.

Só é necessário implementar uma limitação ou redução da tensão quando o dispositivo LVTTL 3.3V não é tolerante a 5V. Não acontece o mesmo com conexões I2C ou SPI, que exigem conversores bidirecionais para elevar a tensão de 3.3v a 5V, quando a comunicação for nessa direção.

Níveis de tensão de diferentes famílias lógicas

 Existem várias formas de executar a limitação de tensão de 5v a 3.3v: conversores de nível bidirecionais, limitadores de diodo zener e até mesmo um simples divisor de tensão formadas por duas resistências.

Uma forma pouco usual, mas de excelente resultado, é utilizar um diodo Schottky de polarização invertida com um resistor de pull-up. Desta forma se consegue uma conversão muito mais rápida e precisa, ideal para altas velocidades de transmissão.

Resposta de diferentes limitadores de tensão


Ao utilizar um Arduino UNO é necessário obrigatoriamente adaptar duas linhas de comunicação com o módulo ESP8266:

   Linha de recepção (RX)
   Linha de seleção de chip (CH_PD) "Power Down", obtendo melhores resultados unindo esta linha a linha de reset (RST).

A linha de transmissão (TX), em teoria, não necessitaria qualquer ajuste por ser uma linha de saída, mas é aconselhável incorporar um limitador de tensão. A razão é que esta linha irá ligar-se com o RX0 do Arduino (ATMEGA328P), que por sua vez está conectada com a linha de transmissão do conversor de série USB-série que trabalha em 5V, que são fornecidas quando o conversor transmite, por exemplo, ao carregar um novo sketch.

Ligação interna do conversor USB-Series

Além de adaptar as linhas de comunicação, é necessários alimentar o módulo ESP8266 a 3,3 volts com pelo menos 215mA de corrente. Nas especificações do Arduino UNO indicam 50mA como máxima na sua saída de 3,3 volts. No entanto, este é um valor não atualizado desde as primeiras versões do Arduino USB que utilizavam um conversor USB-Series FTDI com estas características.

Novos modelos de Arduino, como o UNO, incorporam como conversor USB-Série um Atmega16U, juntamente com um regulador linear de 3,3 volts LP2985-33, que é capaz de fornecer até 150mA de corrente.

É possível utilizar a saída de 3.3V do Arduino UNO para alimentar o ESP8266 nas fases de teste, mas para utilização estável e ideal, é aconselhável incorporar um regulador linear com maior capacidade.

Conexão de Arduino UNO e um módulo ESP-01 em operação

O uso de bibliotecas espduino exige a comunicação serial com o módulo ESP8266 seja feita através do hardware UART do Arduino "HardwareSerial" (TX0 e RX0).

Para receber e enviar a depuração através de um terminal virtual, você deve usar um conversor USB-serial adicional como porta SoftwareSerial.

Agora que sabemos como conectá-lo, veremos na próxima edição como carregar o firmware para o ESP8266 para poder usar a biblioteca espduino do Arduino e estabelecer a comunicação SLIP com o módulo de ESP8266.


Jorge Rivera
jorge.rivera@11paths.com

traduzido por Leandro Bennaton

leandro.bennaton@11paths.com

Nenhum comentário:

Postar um comentário