Explore o mundo da eletrônica e programação de microcontroladores no nosso blog! Aprenda sobre desenvolvimento de projetos, dicas práticas e tutoriais passo a passo. Além disso, encontre manuais e notas de aplicação de produtos de automação industrial para otimizar seus processos. Conteúdo técnico, claro e direto, para entusiastas, estudantes e profissionais. Junte-se a nós e eleve suas habilidades em automação e eletrônica!" 😊
sábado, 18 de julho de 2026
Manual do Usuário do CLP Apollo - Versão 1.00
Descrição:
Neste blog vamos mostrar em detalhes o nosso CLP com ESP-32. Vamos escrever um artigo de modo que possa ser utilizado até como manual de consulta de funcionamento deste Controlador Lógico Programável com microcontrolador da Espressif, o famoso ESP-32. Vamos falar um pouco do controlador interno, ESP-32, da circuitaria externa, das aplicações e especificações deste CLP.
O ESP-32
O ESP32 é uma família de microcontroladores de 32 bits desenvolvida pela Espressif Systems, projetada para aplicações embarcadas e Internet das Coisas (IoT). O grande diferencial do ESP32 é que ele já integra Wi-Fi e Bluetooth no próprio chip, eliminando a necessidade de módulos externos para comunicação sem fio.
Principais características:
Processador de 32 bits (Xtensa LX6 nas versões clássicas)
Clock de até 240 MHz
Um ou dois núcleos (dependendo da versão)
Alimentação em 3,3 V
Wi-Fi 2,4 GHz integrado
Bluetooth Classic e Bluetooth Low Energy (BLE)
Conversores ADC e DAC
PWM por hardware
Interfaces UART, SPI, I²C, I²S
Temporizadores (Timers)
Touch Sensor capacitivo
RTC (Real Time Clock)
Modos de baixo consumo de energia (Deep Sleep)
Para efeito de comparação, abaixo temos uma tabela entre o ESP-32 e um Arduino com microcontrolador ATMEGA328P.
O ESP32 pode ser adquirido em três formatos principais: chip (CI), módulo e placa de desenvolvimento. Cada um é indicado para uma fase diferente do projeto. Para inicio do desenvolvimento e montagem em protoboard ou placa perfurada (Padrão) é recomendável utilizar o DEV-KIT, ou seja um módulo pronto com USB, conversor serial USB (Normalmente com CHIP CH340C), LED onboard, regulador e etc. Já agora com sua placa pronta e produção em baixa escala, recomenda-se utilizar o módulo com ESP-32. Uma "caixinha" metálica com a pinagem na própria PCB e montagem em superficie. E para grandes escalas de montagem, a melhor solução seria utilizar o CHIP que é um pastilha em formato SMD e encapsulamento QFN. Detalha, quanto mais próximo do CHIP, é necessário acrescentar outros circuitos como memória e circuitos auxiliares. Veja na imagem abaixo essas três formas que podemos encontrar o ESP-32
O módulo utilizado em nosso CLP é o módulo ESP-32 modelo ESP-WROON-32E. O datasheet pode ser baixado neste link. Existem dois modelos, o final "E" e o final "UE". O primeiro tem antena Onboard, ou seja, na própria placa. E o outro modelos possui um conector para se conectar uma entena externa.
Se o integrador for instalar o CLP dentro de uma caixa metálica e aterrada, recomenda-se utilizar a versão com antena externa "UE". Pois desta forma, pode-se colocar um cabo do módulo para a caixa e instalar uma anterna externa sem problemas. Veja a imagem abaixo:
Existem diversos módulos da própria Espressif ou de outros fabricantes que podem ser cópias ou mesmo módulos compatíveis. Os principais módulos são destacados abaixo:
ESP32-WROOM-32
ESP32-WROOM-32D
ESP32-WROOM-32E
ESP32-WROVER
ESP32-S3-WROOM-1
ESP32-C3-WROOM
ESP32-C6-WROOM
Pinagem do ESP-32 (ESP-WROON-32E)
O ESP-WROON-32 tem um total de 38 pinos, veja abaixo a posição e suas características principais.
Fonte desta imagem aqui. Esta imagem foi retirada do site "last minute engineer".
O CLP Apollo:
Agora que já estamos brevemente o ESP-32, vamos apresentar nosso CLP com base no ESP-WROON-32E. As principais características estão listadas abaixo:
Microcontrolador ESP32-WROOM-32E.
Arquitetura 32 bits RISC.
5 Entradas opto-acopladas.
8 Saídas opto-acopladas.
Comunicação RS-485 com proteção (TVS e PTC).
Alimentação de 24 volts.
Barramento I2C para módulo LCD externo.
4 Entradas analógicas selecionáveis (4-20mA ou 0-10V).
1 Buzzer ativo para sinalizações em geral
O CLP Industrial da QSP Tecnologia com microcontrolador ESP32-WROOM-32E é uma solução inovadora que alia a flexibilidade do desenvolvimento em ambiente Arduino, com a robustez necessária para aplicações industriais. Com um microcontrolador de 32 bits da empresa Espressif, este Controlador Lógico Programável (CLP) permite automação eficiente, conectividade avançada e integração com sistemas IoT, tudo em um único dispositivo. Com este CLP baseado no ESP-32, você pode modernizar processos industriais utilizando tecnologias abertas, flexíveis e acessíveis, mostrando que o Arduino é uma ferramenta viável para a indústria. Ideal para empresas que desejam inovar sem depender de soluções fechadas e de alto custo!
A placa interna do CLP Apollo:
Abaixo temos a placa interna do nosso CLP Apollo versão 2.0. Esta placa é instalada dentro de um gabinete industrial de ABS com suporte para trilho DIN, padrão industrial.
Todos os componentes são SMD (Surface Mounted Device). Podemos observar as principais partes listdas abaixo:
Entrada da alimentação de 24V
Regulador Chaveado de 24V para 5V
Buzzer ativo
Comunicação RS-485 com proteções PTC e TVS
Bornes de entradas digitais
Bornes de saídas digitais
Conector USB para gravação e comunicação com terminal e supervisório
O módulo ESP-32
Opto-acopladores de entrada e saída
Amplificador das entradas analógicas
O botão de reset
A barra de pinos responsáveis por selecionar corrente ou tensão
Conector para comunicação I2C
Dois JUMPERS para conecxão do GND
Vamos mostrar agora a pinagem externa do nosso CLP. A Imagem mostra a placa versão 1.XX mas esta nova placa tem a mesma pinagem até para manter compatível os modelos de CLP.
Fonte de alimentação de 24V:
A fonte de alimetnação do CLP é de 24V nominais mas pode ser alimentado por uma faixa de 18V até 26V DC. Ele utiliza um conversor DC-DC com CHIP MC34063 para gerar 5V para o restante dos circuitos. Tem proteção contra inversão de polaridade na entrada, tem proteção contra sobre tensão com TVS e filtro capacitivo. A frequência de chaveamento deste regulador é de aproximadamente 100Khz. Na saída tem um TVS de 5V para proteção dos demais circuitos no caso deste regulador entrar em curto. Veja na imagem abaixo o circuito eletrônico dele.
A sua capacidade de corrente é de 250mA contínua, mas suficiente para alimentar o ESP-32 e demais circuitos.
Fonte de 3,3V
O Circuito também possui um regulador de 3,3V baseado no LD1117 de 3,3 volts. Ideal para alimentar o ESP-32 que opera com essa tensão. Ele é um regulador linear com encapsulamento SMD
Essas tensões de 24V e de 3,3V bem como a tensão de entrada de 24V menos a queda do diodo de proteção podem ser medidas em pontos específicos, utilizando um multímetro na função de Voltímetro e utilizando o GND da placa e três pontos de teste mostrados abaixo:
Comunicação USB:
Este circuito é a interface USB ↔ UART utilizando o CH340C, responsável por permitir que o computador grave o firmware no ESP32 e também faça comunicação serial (monitor serial). Além disso, ele implementa o reset e a entrada automática no modo bootloader, dispensando que o usuário pressione os botões BOOT e RESET manualmente
Por que dois transistores Q9 e Q10?
Os sinais RTS e DTR são ativos em nível baixo e podem variar simultaneamente. A configuração com dois transistores BC847 implementa uma lógica que evita combinações indesejadas desses sinais, garantindo que RESET e GPIO0 (BOOT) sejam acionados na sequência correta para colocar o ESP32 em modo de programação sem provocar resets espúrios. Os resistores de 10 kΩ (R55 e R57) atuam como polarização (pull-up/pull-down conforme a topologia), mantendo os transistores desligados quando não há comando do CH340.
Microcontrolador ESP-32
O modelo do microcontrolador utilizado é o ESP-WROON-32E. Podemos ver as ligações dos seus pinos ao circuitos externos. Basicamente podemos dividir a pinagem nos tipos abaixo:
Pinos digitais de entrada
Pinos digitais de saída
Pinos analógicos
Pinos de comunicação serial UART e I2C
Pinos de controle como o RESET e o BOOT
Pinos de alimentação
Existe um capacitor multicamada de 1uF que esta localizado bem próximo dos pinos de alimentação do módulo. A sua posição é C24
Circuito de RESET
O circuito de reset é responsável por resetar o microcontrolador toda vez que liga a placa eletrônica ou resetar pelo usuário, através de uma chave de pressão TACTIL, veja o circuito abaixo. A chave SW1 quando pressionada, reseta o módulo ESP-32
Porta I2C:
Usado para conexão com uma IHM ou modelos de IHM com este tipo de interface. Consulte o nosso site para ver os modelos disponíveis. Também é possível conectar módulos externos como expansores de IO, medidores, acionadores e etc. Importante mencionar que este cabo não pode ultrapassar 50 cm. Também não é possivel alimentar dispositivos com corrente superior a 50mA. Respeite esses limites para não danificar o equipamento. Abaixo temos a pinagem deste conector:
Entrada de 4 à 20mA:
Esta é uma entrada de corrente analógica padrão industrial, ideal para sensores industriais como por exemplo, transmissores de temperatura PT100, sensores de posição, como réguas potênciométricas, sensores de profundidade ou de pressão. Abaixo temos uma imagem de um sensor de temperatura de 4 à 20mA e fundo de escala de até 200°C.
Este é um exemplo de sensor que utiliza um padrão industrial de corrente de 4-20mA. De um lado instala-se um sensor PT100 de 3 fios (3 parafusos na parte de baixo) e nos outros 2 parafusos instala-se na fonte de alimentação e na entrada analógica do CLP conforma imagem baixo:
Na imagem acima podemos ver o transmissor de temperatura, a fonte de alimentação de 24V, o sensor PT100 de 3 fios e o Data Colletor que seria o nosso CLP. O positivo do Data Colletor mostrado na imagem acima é uma das entradas analógicas de 4-20mA do CLP. Portanto podemos dizer que a entrada estará em série com o transmissor de temperatura, por isso a forma de sinal é de corrente.
Para converter o sinal de corrente em tensão para posterior medição pelo conversor AD de 12 bits do ESP32, temos um circuito com amplificador operaciona LM324 que converte a corrente que passa por um resistor de 100R e amplifica para os níveis de medição do ADC.
O cálculo de ganho deste circuito esta mostrado abaixo. Os resistores de realimentação R42 e o R46 aplicam um ganho de 1,65 neste amplificador. Para uma corrente de 20mA, a tensão na saída deve estar por volta de 3,3V
Exemplo, se a corrente de entrada for 4mA, a tensão de saída será 0,66V. se a corrente de entrada for 20mA a tensão de saída será 20mA x 165, ou seja, 3,3V. O programador deve realizar em seu código uma regra de três. O valor de 3,3V na entrada do ADC, reflete 4095 na saída do ADC. Vamos mostrar a equação que devemos aplicar em nosso código. Exemplo, se tivermos medindo um sensor de temperatura com faixa de 0-200ºC. O valor medido seria:
Onde:
TempMed é o valor de temperatura medido
TempFC é o valor de fundo de escala, por exemplo 200 graus centígrados
Circuito de comunicação RS-485
Este circuito é muito utilizado para comunicação entre equipamentos industriais, muito comum em automação industrial, comercial e residencial. Alguns equipamentos como CLPs, Inversores de frequência, módulos sensores, alarmes de incêndio e centrais industriais. Pode-se utilizar um protócolo proprietário ou um já padronizado como é o caso do MODBUS RTU. Quem vai decidir qual usar, vai ser o programador do CLP. Veja o circuito abaixo.
O coração deste circuito é o transceptor SP485 ou também poderá ser o MAX485. Os dispositivos que irão se comunicar com o CLP, devem ser conectados no conector CN3, respeitando a polaridade RSA e RSB. Os dois componentes PTC1 e 2 protegem em caso de curto, limitando a corrente e não danificando o SP485. Os diodos D6, D7 ceifam tensões acima de 5V. A rede resistiva formada pelos resistores R4, R5 e R6 criam um balanço na tensão, fazendo com que o sinal tenha uma excursão praticamente no centro da tensão de alimentação do CI, ou seja, no meio de 5V. O tipo de comunicação é HALF DUPLEX, ou seja, hora se transmite a informação, hora recebe. Não é possível enviar e receber ao mesmo tempo. É necessário adicionar um resistor fim de linha de 120R 2W para balancear a linha. Veja na imagem abaixo os sinais RSA (Amarelo) e RSB (Azul), eles estão opostos um do outro. A informação é a diferença entre eles, por isso são muito utilizados em ambientes industriais devido a presença de muitos ruídos, provenientes de motores, contatores e etc.
Podemos conectar diversos dispositivos no barramento RS-485, apenas diferenciando pelo endereçamento de cada dispositivo. Desta forma, teremos um mestre e diversos escravos ou clientes. Veja a imagem abaixo:
Circuito do Buzzer
O CLP tem um BUZZER para uso geral. Trata-se de um BEEP ativo. Ele quando ativado toda um sinal de aproximadamente 3Khz. Este BUZZER esta conectado no pino GPIO27. Quando coloca este pino em nível lógico 1, é ativado este buzzer. Veja o circuito abaixo:
Entradas digitais
As entradas digitais são opto-acopladas pelo EL3H7-A, veja data sheet aqui. Uma tensão acima de 12V, já ativa a entrada, mas é recomendada utilizar 24V nominais. Podemos ver na imagem abaixo, uma das entradas. As demais são identicas. O capacitor de saída filtra qualquer acionamento não desejavel, eliminando ruido. O resistor R22 limita a corrente no LED interno do Opto-Acoplador.
Saídas Digitais
As saídas digitais são Opto-Acopladas pelo EL3H7-A e um Transistor NPN. Como temos 8 saídas digitais, é utilizado uma matris de transistores ULN2803, datasheet aqui. Para cada saída temos um LED que indica que a saída esta ativada ou não. Para ligar um dispositivo na saída, colocamos a alimentação de 24V no dispositivo, exemplo relé, e o negativo nai saída do CLP.
Este circuito acima mostra apenas uma saída para exemplificar. Mas temos 8 saídas. É usada uma rede resistiva de 270R para limitar a corrente dos LEDs dos 8 Opto-Acopladores. Veja na imagem abaixo a posição dos opto-acopladores, da matriz de transistores ULN2803, os 8 LEDs de saída e os conectores KRE.
Programação no CLP Apollo
Para se programar este CLP, podemos utilizar algumas ferramentas que vamos mostrar agora. A programação é feita em linguagem C/C++. Pode-se programar em LADDER mas vou deixar para o usuário pesquisar as ferramentas, pois sempre recomendo utilizar a linguagem C/C++. As ferramentas de programação estão listadas abaixo:
Muitos irão preferir a IDE do Arduino e é perfeitamente possivel realizar qualquer tipo de código com ela no nosso CLP Apollo. Mas eu recomendo utilizar a segunda opção, pois podemos fazer tudo que a IDE do Arduino faz, só que com uma "pegada" mais profissional. Vou deixar abaixo um vídeo do nosso canal de como instalar, configurar e usar o VS Code mais o Platformio.
Temos em nosso canal no Youtube, muitos vídeos explicando como utilizar e damos diversos exemplos de aplicação. Nosso canal vai ficar aqui para vocês conferirem.
Para terminarmos este BLOG, vou deixar a documentação do nosso CLP que compoem de manual do usuário, folder, Pinout, datasheet e exemplos de código.
Obrigado por ler nosso BLOG e qualquer dúvida, entre em contato com a QSP Tecnologia ou em nossa loja RoboMakers. Também pode entrar em contado com nosso Whatsapp (11) 98647-0924
Nenhum comentário:
Postar um comentário