O PLC 32 possui uma interface I2C isolada que possibilita a conexão com placas de expansão. Essas placas são utilizadas para aumentar o número de entradas optoacopladas, saídas de relé, além de entradas e saídas analógicas do PLC 32.
Neste blog, vamos aprender como utilizar as saídas do módulo analógico I2C com o PLC 32.
Sumário
1. Visão geral
O PLC 32 possui uma interface que permite a conexão de dispositivos I2C ao ESP32 através de um conector RJ45, facilitando a integração. O hardware conta com um ADUM1250, que isola os pinos de comunicação I2C, e um B0305S, que separa a alimentação do PLC 32 da placa de expansão, garantindo um isolamento elétrico completo. A figura a seguir ilustra a área da placa dedicada a essa comunicação.
Na placa PLC 32, como o LAN8720 incorporado utiliza os pinos I2C padrão do ESP32, é necessário redefinir os pinos para comunicar com as expansões I2C. A tabela a seguir mostra os pinos utilizados para a comunicação.
Na parte inferior da placa, há 4 jumpers. Ao removê-los, é possível desativar os resistores de pull-up (SDA e SCL). Por padrão, o PLC 32 fornece energia para a placa conectada ao barramento. No entanto, se for necessário desconectar essa alimentação, basta cortar os jumpers 5V e GND. Os jumpers estão destacados na figura a seguir.
Na figura a seguir, podemos ver uma representação da topologia utilizada para conectar o PLC 32 (placa preta) a duas placas de expansão (vermelhas), utilizando a conexão I2C via RJ45.
No link I2C estamos disponibilizando exemplos de como utilizar a comunicação I2C no PLC 32.
2. Como utilizar as entradas do módulo analógico
O módulo analógico possui uma saída de tensão de 0 a 10V e outra de corrente de 4 a 20mA. Na figura a seguir podemos ver um exemplo de ligação para testar o funcionamento das saídas do módulo analógico. Vale ressaltar que estamos utilizando um resistor de 230Ω para simular a carga. Como demonstrado na imagem, utilizamos uma fonte dedicada especificamente para a saída de corrente.
O PLC 32 receberá um valor de 0 a 4095, que será aplicado nos conversores digitais-analógicos presentes na placa, definindo os valores de tensão e corrente das saídas. A seguir, podemos ver o código utilizado no exemplo.
#include <Wire.h>
#include <Adafruit_MCP4725.h>
TwoWire I2CNew = TwoWire(0);
#define I2C_SDA 33
#define I2C_SCL 5
Adafruit_MCP4725 dac;
Adafruit_MCP4725 dac2;
void setup(void) {
Serial.begin(9600);
Serial.println("Hello!");
I2CNew.begin(I2C_SDA, I2C_SCL);
// For Adafruit MCP4725A1 the address is 0x62 (default) or 0x63 (ADDR pin tied to VCC)
// For MCP4725A0 the address is 0x60 or 0x61
// For MCP4725A2 the address is 0x64 or 0x65
dac.begin(0x61, &I2CNew);
dac2.begin(0x60, &I2CNew);
}
int a = 0;
long tempo = 3000;
int ciclo = 0;
int saida = 2000;
void loop(void) {
if (Serial.available()){
int comando = Serial.parseInt();
if (comando == 1){
ciclo = 0;
}
if (comando == 2){
saida = Serial.parseInt();
}
if (comando == 3){
tempo = Serial.parseInt();
}
if (comando == 5){
ciclo = 1;
}
}
if (ciclo == 1){
if (a){
dac.setVoltage(saida, false);
dac2.setVoltage(saida, false);
a = 0;
delay(tempo);
}
else{
dac.setVoltage(0, false);
dac2.setVoltage(0, false);
a = 1;
delay(tempo);
}
}
else{
dac.setVoltage(saida, false);
dac2.setVoltage(saida, false);
}
}
A biblioteca utilizada no código (Adafruit_MCP4725.h) está disponível no gerenciador de bibliotecas da IDE do Arduino. Para instalá-la, vamos em “Ferramentas", depois em “Gerenciador de Bibliotecas” e pesquisamos por Adafruit_MCP4725. Em seguida, basta clicar em “Instalar”, como mostrado na figura a seguir.
Neste exemplo, podemos utilizar o monitor serial para definir um valor para a saída ou fazer com que ela oscile com um período também definido pelo usuário. Para ver a demonstração do seu funcionamento, recomendamos que assistam ao vídeo a seguir.
Neste blog, vimos como utilizar o módulo analógico no PLC 32. Esse módulo permite que o PLC 32 utilize saídas analógicas com isolamento elétrico.
Se você deseja ver mais detalhes sobre o PLC 32, acessar o seu manual ou adquirir uma unidade, clique neste link.
Autor: Thales Ferreira
留言