0% acharam este documento útil (0 voto)
147 visualizações

Tutorial LDmicro

Este documento fornece um tutorial passo-a-passo para escrever um programa simples usando o software LDmicro para controlar um microcontrolador PIC. O programa fará com que um LED ligue, pisque ou desligue ao pressionar um botão, demonstrando os estados de um contador circular. Instruções detalhadas são fornecidas sobre como desenhar o diagrama ladder, simular o programa e compilá-lo para o microcontrolador.

Enviado por

scarface666
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
147 visualizações

Tutorial LDmicro

Este documento fornece um tutorial passo-a-passo para escrever um programa simples usando o software LDmicro para controlar um microcontrolador PIC. O programa fará com que um LED ligue, pisque ou desligue ao pressionar um botão, demonstrando os estados de um contador circular. Instruções detalhadas são fornecidas sobre como desenhar o diagrama ladder, simular o programa e compilá-lo para o microcontrolador.

Enviado por

scarface666
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 7

Tutorial LDmicro

Jonathan Westhues, dezembro de 2005.


Traduzido para o português por Eduardo B P de Castro, agosto de 2007.

Este tutorial mostra como escrever um programa muito simples utilizando o programa
LDmicro. Supõe-se que você conhece a lógica LADDER, que você tem alguma familiaridade
básica com microcontroladores, mas que você nunca usou o LDmicro.

Nosso dispositivo terá um botão e um diodo emissor de luz (LED). De início, o LED estará
desligado. Ao ser pressionado o botão uma vez, o diodo emissor de luz ligará e permanecerá
aceso. Ao pressionar o botão uma segunda vez, o LED começará piscar. A terceira vez que o
botão for pressionado, o diodo emissor de luz será desligado. Pressionando-se o botão
subseqüentemente, o ciclo se repetirá.

Seleção do Microcontrolador e Diagrama Esquemático

Usaremos como exemplo o microcontrolador PIC16F876, facilmente disponível no mercado.


Ele pode ser encontrado em vários encapsulamentos diferentes; foi escolhido um DIP.

A figura da esquerda mostra o diagrama esquemático do circuito:

O microcontrolador (IC1) possui o código PIC16F876-20I/SP-ND na Digikey (fabricante).


Quase qualquer ressonador de três terminais (U1) servirá; você pode tentar um 535-9356-ND
ou um X909-ND. Para este exemplo foi escolhido um ressonador cerâmico com capacitores
internos, U1, em vez de um cristal e de dois capacitores de ~20 picofarads. Um cristal
funcionaria tão bem e seria mais exato, mas seria um pouco mais caro, e seriam necessitarias
mais peças.

Você pode construir este circuito de muitas maneiras diferentes. Aqui, ele foi construído
numa proto-board, qua acabou ficando com o aspecto da figura à direita (os valores dos
resistores na figura não são exatamente os mesmos do esquema, mas não representa um
fator crítico.)
Diagrama Ladder para o Programa

Primeiramente, precisamos de um oscilador para gerar sinal de ‘piscar’ para o diodo emissor
de luz. Há uma maneira padrão fazer isto na lógica LADDER:

|| Rosc Tosc_on Tosc_off Rosc ||


1 ||-----] [-------[TON 250.0 ms]---[TOF 250.0 ms]-----(/)------||

Isto piscará com uma freqüência de 1 ((250+250) ms), ou 2 hertz, ou duas vezes por segundo.
O ciclo de trabalho será 50%-250 ms ligado, e 250 ms desligado. Este circuito pode fazer
qualquer tipo de oscilador, com qualquer período ou ciclo requerido, assim é um bom
comando para se guardar na memória.

Observe também que foi escolhido usar um relé interno (‘Rosc’) em vez de um ligado a um
pino de entrada/saída (‘Yosc’ ou ‘Xosc’). Isto faz sentido, porque não há nenhuma razão
particular para emitir esse sinal a um pino do microcontrolador. O LDmicro atribuirá
automaticamente uma posição de memória para o relé interno.

Nosso programa terá três estados: desligado, ligado, e piscando. O programa deve mudar seu
estado a cada acréscimo do sinal do botão. Esta é uma boa aplicação para um contador
circular. Consideraremos que o estado ZERO é o ’desligado’, o estado 1 é o ‘ligado’, e o
estado 2 é o ‘piscando’. O contador conta 0, 1, 2, 0, 1, 2,…, assim apenas é necessário
associarmos a condição de entrada do contador no rung à entrada do botão, e tudo
funcionará como desejado:

|| Xbutton Cstate ||
2 ||-------] [---------------------------------------{CTC 0:2}----||

Agora só resta uma instrução para utilizar o estado do programa para ‘setar’ o estado do LED.
Podemos fazer isto desta meneira:

|| [Cstate ==] Yled ||


3 ||---[ 1 ]-------------------+------ -----------( )-------||
|| | ||
|| [Cstate ==] Rosc | ||
||---[ 2 ]----------] [------+ ||

É fácil convencer-se que este programa faz o que nós queremos. Se o programa estiver no
estado 1, então a instrução ‘Cstate == 1’ energiza o ‘Yled’, como desejado. No estado 2, a
instrução ‘Cstate == 2’ energiza o ‘Yled’, mas somente quando ‘Rosc’ é também verdadeiro.
Como ‘Rosc’ está oscilando, isse significa que o diodo emissor de luz piscará, como desejado.
Finalmente, no estado 0 (zero), nenhuma das instruções de igualdade será verdadeiras, assim
não há nenhuma maneira de ‘Yled’ ser ligado.
Entrando com o Diagrama Ladder

Agora que temos nosso circuito, podemos desenhá-lo no LDmicro. Quando você iniciar o
programa, verá um rung vazio:

Nós queremos entrar com o primeiro rung da lista acima. Nós começaremos com a bobina,
assim escolhemos Instruction - > Insert Coil. Isto criará uma bobina chamada ‘Ynew.’ É
isto o que queremos, exceto que o nome está errado, e ela deve ser do tipo ‘negada’. Dê um
duplo-clique sobre a bobina; isto fará aparecer uma caixa de diálogo onde nós podemos
escolher:

Agora podemos introduzir o restante daquele rung da mesma maneira. Clique sobre a borda
esquerda da bobina, de modo que o cursor apareça vertical, e à esquerda da bobina. Escolha
agora Instruction - > Insert TON (Timer com atraso para ligar). Mais uma vez dê um
duplo-clique sobre o temporizador para rebatizá-lo e ajustar o período (tempo). Adicione
então o temporizador TOF e os contatos, da mesma maneira.

Agora é necessário entrar com o segundo rung, assim escolha Edit - > Insert Rung After
. Clique então sobre o segundo rung para mover para lá o cursor:

Entrar com o segundo rung é fácil: apenas preencha as duas instruções na ordem certa,
colocando o cursor onde você quer introduzir a instrução e escolhendo Instruction - >
Insert …. Lembre-se de atribuir um nome (‘Xbutton’) aos contatos, e ajustar o nome e o
limite superior do contador. Escolha então Edit - > Insert Rung After outra vez. Seu
programa deve ficar assim:

O terceiro rung é um pouco mais complicado, porque tem ramificações paralelas. Isso
significa que você tem que pensar na ordem em que você introduz as instruções.
Primeiramente, introduza a bobina, e rebatize-a (Yled):

Introduza agora a primeira instrução de comparação de igualdade à esquerda da bobina,


como usual, e preencha corretamente o nome e o valor da variável. Depois que você fizer isto,
adicione a ramificação paralela. Você pode fazer isto clicando na borda inferior da instrução
de comparação; o cursor aparecerá horizontal e abaixo daquela instrução:

Escolha agora Instruction -> Insert EQU (comparação de igualdade). Como o cursor está
abaixo da primeira instrução de comparação, a nova instrução será introduzida abaixo da
primeira, paralela a ela. Rebatize-a como usual. Para terminar o rung, você deve introduzir
contatos os contatos ‘Rosc’ à direita da segunda instrução de comparação de igualdade. Para
fazer isto, clique sobre a borda direita da segunda instrução de comparação:
Neste ponto escolha Instruction -> Insert Coil; a bobina sera inserida em série com a
segunda instrução de comparação de igualdade, como desejado. Renomeie a bobina e o
diagrama estará finalizado.
Simulando o Programa

Agora nós estamos prontos para simular nosso circuito. Escolha Simulate -> Simulation
Mode. A tela do programa mudará; o diagrama ladder aparecerá em cinza em sua maior
parte, mas você não verá qualquer coisa se modificar com o tempo. Isso é porque o PLC ainda
não está “ciclando’. Para iniciá-lo, escolha Simulate -> Start Real-Time Simulation.
Agora você verá o funcionamento das coisas: o oscilador está obviamente funcionando, mas o
diodo emissor de luz (‘Yled’) ainda está desligado, que é o que nós queremos, porque
ninguém pressionou a tecla ainda. Para simular o pressionamanto da tecla, dê um duplo-
clique sobre o ‘Xbutton” na lista existente no final da tela. Você agora simulou a modificação
do estado de entrada do botão, de zero para 1; este é o que aconteceria se alguém
comprimisse (mas ainda não liberasse) a tecla.

Você pode ver que o programa está funcionando: o contador ‘Cstate’ agora é igual a 1, que
corresponde ao estado ‘ligado’, que é o que queremos. A saída do LED passa de zero para 1;
você pode ver que seu valor é 1 na lista, e a bobina do ‘Yled’ aparece vermelha no diagrama.
Dê outro duplo-clique no texto do ‘Xbutton’ na lista para simular a liberação da tecla, e outro
duplo-clique para simular então outro pressionamento; a bobina do ‘Yled’ começará piscar,
como projetado. Finalmente, se você simular um terceiro pressionamento do botão, a saída
irá para o estado ‘desligado’.
Compilando para um Arquivo IHEX

Agora que estamos razoavelmente certos que o programa funciona, estamos prontos para
gerar o código real, e testá-lo no microprocessador. Primeiramente, saia da a modalidade de
simulação escolhendo Simulate -> Simulation Mode, ou pressionando a tecla ‘ESC’.

Em seguida nós devemos escolher um microcontrolador. Escolha Settings ->


Microcontroller -> Microchip PIC16F876 28-PDIP ou 28-SOIC. É necessário
também informar ao LDmicro que tipo de cristal estaremos usando, e qual o tempo de ciclo
utilizado. Escolha Settings -> MCU Parameters, e preencha nossa velocidade de pulso
de 20 megahertz. Deixe o tempo do ciclo em 10 ms; este é geralmente um bom valor.

Agora podemos atribuir os pinos a nossas entradas e saídas. Dê um duplo-clique sobre


‘Xbutton” na lista no fim da tela do programa, e escolha o pino 14 do PIC, que corresponde à
porta RC3 da MCU. (Geralmente não há razão para se preocupar com qual porta você está
utilizando; verifique apenas o número do pino.)

Clique ‘OK’, e repita então o processo para o ‘Yled’, que você pode ver no diagrama
esquemático que deve ir para o pino 15. Os outros elementos na lista são variáveis internas e
bits na memória, assim não há nenhuma necessidade em atribuir-lhes pinos. O LDmicro
alocará a memória para eles quando você compilar o programa.

Agora você está pronto para compilar. Escolha Compile -> Compile, e especifique onde
você quer gravar o arquivo IHEX. Use então o equipamento de programação do PIC que você
possui para carregar o programa compilado, e você está pronto para testá-lo.

Você também pode gostar