segunda-feira, 15 de março de 2021

Aula 13 - Linguagem de programação Ladder para Arduino

 Programar Arduino em Ladder é interessante pois treinamos outras linguagens de programação, pois devemos entender que essa lógica é vastamente utilizado na indústria, logo, se você tem essa pretensão, esse aprendizado é indispensável. 
Figura 01 - Pinagem ATmega328.


Relembrando que o Arduino Uno é uma placa de desenvolvimento, o componente principal do Arduino é o microcontrolador. O chip que se encontra no centro da placa é responsável por todo o processamento do código que escrevemos. Os outros elementos da placa são acessórios que facilitam o desenvolvimento de projetos, como uma interface USB, regulador de tensão, led onboard, cristal oscilador e tantas outras facilidades.


A maneira como a placa foi construída abstrai, inclusive, a numeração e identificação dos pinos do microcontrolador. Isso é feito separando as entradas analógicas de um lado e as digitais do outro lado e enumerando-as de maneira lógica e de fácil entendimento. Veja o diagrama da pinagem real do microcontrolador ATmega328p. Iremos precisar utilizar os nomes dos pinos originais quando formos trabalhar com o Ladder no Arduino.

Figura 02 - Configuração do controlador no LDmicro.
Existe um compilador chamado LDmicro, ele é usado para programar microcontroladores pic e avr. Como todos nós sabemos, o Arduino é uma placa de prototipagem que tem como base um microcontrolador avr, o ATmega328. Assim, conseguimos, com poucas modificações, e cumprindo alguns passos, programar nosso querido Arduino com a linguagem ladder.

Assim como os outros compiladores, ele gera o arquivo .hex que posteriormente é usado para gravação utilizando gravadores de pic ou avr.

Como você pode ter percebido o ATmega328 não está listado, porém a versão do LDmicro que vamos usar é modificada e nela foram acrescentados vários outros microcontroladores, inclusive o que desejamos.

Figura 03 - Endereçamento dos comandos em Ladder

Em Settings > Microcontrollers selecionamos o ATmega328 e posteriormente em Settings > MCUparameters escrevemos o valor do Crystal Frequency para 16.

Em Instructions encontramos todos os comandos básicos da linguagem ladder, inclusive a entrada como insert contacts e a bobina de saída como insert coil. Ao clicarmos sobre o elemento podemos alterar seu estado, como por exemplo, normalmente-fechado ou normalmente-aberto.

Figura 04 - Programa ladder para Arduino
Repare que ao incluirmos entradas e saídas, o painel abaixo do ambiente de escrita ladder indica e detalha o que foi escrito, vamos nos atentar a essa janela. Os elementos com a legenda “X”, por convenção nossa, sempre indicarão entradas e os elementos com a legenda “Y” indicarão saídas. Ao lado do nome, temos o tipo de elemento, entrada ou saída. Mais adiante, quando falarmos sobre simulação, veremos como funciona o estado. Já na opção “pino no processador”, selecionamos as linhas e determinamos a qual pino físico do microcontrolador o nosso elemento estará conectado. Para fazer o último passo utilizaremos a informação sobre a arquitetura do Arduino que vimos no inicio do artigo.


Veja, na parte do “pino do processador” vamos escolher o pino do processador que se relaciona com o pino da placa Arduino, por exemplo o pino PB1 do microcontrolador é o pino 9 e o PC0 é o pino A0 do Arduino .

Figura 05 - Circuito para teste
Podemos interpretar o código ladder nessa aplicação da mesma forma como interpretamos o exemplo no inicio desse artigo, com a exceção do contato virtual “Pronto para funcionar”. No nosso exemplo cada contato corresponde a uma entrada digital no mundo real, mais precisamente um botão. E a saída corresponde a um LED no mundo real. Assim que apertamos o botão “Ligar” o LED é acionado, bem como o seu respectivo contato, assim mesmo que pressionamos o botão Ligar novamente nada acontece. Em contrapartida, pressionando o botão “Desligar”, ele interrompe o circuito, visto que está normalmente fechado, quando pressionado ele abre o circuito, e assim desligamos o LED.

Agora podemos fazer a simulação, e para tal, basta clicar em simulação e posteriormente em simulação em tempo real. Essa simulação permitirá ao usuário ver a lógica ladder funcionando no programa e conferir a alteração dos estados das bobinas no painel de cor branca na parte de baixo do programa.

Agora, precisamos realizar uma simulação para nos assegurar que está tudo certo e posteriormente podemos compilar. Para compilar basta ir na barra de ferramentas e clicar em Compile. Salve o arquivo .hex onde achar mais conveniente. 

Atenção! o Arduino não está pronto para receber o nosso código!

Figura 06 - Programa Avrdudess para gravação do Arduino 
Abra o Avrdudess já instalado anteriormente e siga os passos como na imagem da figura 05:

  • Selecione Arduino em Programmer, depois a porta de comunicação do Arduino com o computador, normalmente essa porta é o prefixo COM com um numeral ao final que varia de 1 a 9, Baud rate 115200.
  • Em MCU o ATmega328p deve estar selecionado.
  • Bem como em Presets a placa Arduino Uno.
  • Em Flash, clique no botão com 3 pontos e selecione o programa que foi compilado no LDMicro.
  • Por fim, clique em programar!
Construímos uma aplicação em Arduino com apenas uma linha de código e alguns cliques de mouse para configuração do ambiente de desenvolvimento. Veja como nesse caso foi mais fácil usar a solução em ladder do que programar em Arduino C na IDE. Somente a função Setup na IDE já teria mais linhas de código.
A lógica ladder se mostra uma ferramenta muito eficiente para resolução rápida de problemas. Isso se deve, principalmente, a possibilidade de realizar a simulação do sistema e supervisionar a execução do programa degrau por degrau.
Como na indústria, podemos nos beneficiar das facilidades da lógica ladder em projetos onde entradas e saídas digitais são norma. Na presença de entradas ou saídas analógicas, se desejamos realizar cálculos matemáticos complexos ou se o nosso programa conter loops devemos optar por linguagens de programação textuais.

Os programas necessários para usar Ladder no Arduino estão disponíveis em: LDmicro – para programação em ladder e AVRdudess – para gravação do código no Arduino.

© Direitos de autor. 2020: Gomes; Sinésio Raimundo. Última atualização: 27/02/2021

Nenhum comentário:

Postar um comentário