top of page
Crescer (fundo transparente)_Negativo_pn
Você sabia que a Crescer ensina, fornece e faz soluções de automação e IoT com Arduino e ESP32?

Fale com um especialista

2.png
3.png
1.png
Foto do escritorThales Gonçalves Ferreira

CPB32h - Módulo I/O I2C

Atualizado: 20 de jul.

Para permitir o aumento fácil da quantidade de entradas optoacopladas e saídas a relé das CPB, desenvolvemos módulos de expansão. Essas placas de expansão, conhecidas como Módulos I/O, possuem uma interface de conexão I2C isolada que aumenta a segurança da comunicação entre a CPB e os Módulos I/O.

 

Neste blog, vamos aprender como utilizar os módulos de expansão I/O com a CPB32h.



Sumário



1. Visão geral

 

Para a conexão entre os Módulos I/O e a CPB32h, devemos utilizar o Shield de Expansão I2C. O shield possui uma interface que permite a conexão de dispositivos I2C através de um conector RJ45, simplificando a conexão entre as placas. Além disso, ele possui hardware para isolar a I2C e a alimentação entre o microcontrolador e o campo, garantindo mais robustez. Na figura a seguir, podemos ver o Shield de Expansão I2C.



O Shield Expansão I2C utiliza os pinos de comunicação do microcontrolador. Na tabela a seguir podemos ver os pinos utilizados para I2C quando utilizamos o Shield com a CPB32h.



A região de conexão com shields da CPB32h segue o mesmo padrão de posição e distância utilizado nas placas Arduino. No entanto, a numeração dos pinos é adaptada para as necessidades da CPB32h e de alguns dos nossos shields. Na figura a seguir, podemos ver essa região em destaque.



Com a imagem ampliada, conseguimos ver onde cada pino do ESP32 está conectado, permitindo-nos projetar a aplicação com maior precisão. Veja a figura a seguir.



Na figura, podemos identificar 5 conectores, designados como J1, J2, J3, J4 e J5. O conector J1 nos concede acesso aos pinos de alimentação e ao Enable do ESP32, com algumas especificações adicionais. Por exemplo, Vin fornece uma tensão de 7 volts, essa tensão é destinada a alimentar shields do barramento, de modo que não necessitem utilizar os 3,3V da CPB32h caso consumam uma corrente alta (por exemplo, superior a 100mA). Nesse caso, se a corrente for superior, é recomendado que haja um regulador 3,3V na própria shield.

 

Os conectores J3 e J4 fornecem acesso direto aos outros pinos do ESP32, sendo que no J3 estão os pinos 21 e 22, comumente utilizados para comunicação I2C. O conector J5 fornece acesso aos pinos comumente usados para comunicação SPI.

 

De um modo geral, a disposição dos pinos permite a conexão com shields de outros fabricantes, entretanto, devemos sempre analisar a compatibilidade dos pinos da CPB32h com o shield que será utilizado. Na figura a seguir podemos ver um exemplo de conexão de dois módulos I/O com a CPB32h.




2. Como utilizar os módulos I/O

 

Para um exemplo mais detalhado da utilização dos módulos I/O, vamos controlar duas lâmpadas utilizando o Módulo I/O 9x7. No entanto, a lógica é a mesma para o Módulo I/O 4x4. Na figura a seguir, podemos ver a topologia utilizada neste exemplo.



Os relés irão acionar duas lâmpadas, e na entrada optoacoplada será conectada uma botoeira. Como exemplo, vamos controlar a lâmpada da direita utilizando a botoeira, enquanto a lâmpada da esquerda ficará piscando. A seguir, podemos ver o código utilizado no exemplo.


#include <Arduino.h>
#include <Wire.h>

#include "PCAL9535A.h"

PCAL9535A::PCAL9535A<TwoWire> gpio(Wire);

void setup() {
  Wire.begin(21, 22); //Joing I2C bu
  Serial.begin(9600);
  gpio.begin(PCAL9535A::HardwareAddress::A001);  // 0x20 - Pins = 000

  for (int i = 9; i < 16; i++)
  {
    gpio.digitalWrite(i, 0); // LED Off
    gpio.pinMode(i, OUTPUT);
  }
}

bool pisca = 0;

void loop() {

  for (int i = 0; i < 9; i++)
  {
    Serial.print(gpio.digitalRead(i));
  }
  Serial.println();
  gpio.digitalWrite(9, gpio.digitalRead(0));

  gpio.digitalWrite(10, pisca);
  delay(500);
  pisca = !pisca;
}

A biblioteca utilizada no código (PCAL9535A.h) está disponível para download neste link. Para incluí-la na IDE do Arduino, vá em Sketch -> Incluir Biblioteca -> Adicionar Biblioteca.zip.



Neste blog, vimos como utilizar o módulo I/O com a CPB32h. Estes módulos permitem que a CPB32h expanda a quantidade de entradas e saídas controladas por ela. Se você deseja ver mais detalhes sobre nossos produtos, clique neste link.


Posts recentes

Ver tudo

Comments


ícone do whatsapp

Fale com um
especialista:

bottom of page