Curso de Engenharia Mecânica Automação e Sistemas
PROPOSTA DE AUTOMAÇÃO: ACIONAMENTO DO
MAÇARICO PARA TÊMPERA SUPERFICIAL POR CHAMA.
Paulo Fernando Madiuto
Itatiba – São Paulo – Brasil
Dezembro de 2005
II
Curso de Engenharia Mecânica Automação e Sistemas
PROPOSTA DE AUTOMAÇÃO: ACIONAMENTO DO
MAÇARICO PARA TÊMPERA SUPERFICIAL POR CHAMA.
Paulo Fernando Madiuto
Monografia apresentada à disciplina Trabalho de
Conclusão de Curso, do Curso de Engenharia
Mecânica – Automação e Sistemas da
Universidade São Francisco, sob a orientação do
Prof. André Renato Bakalereskis, como exigência
parcial para conclusão do curso de graduação.
Orientador: Prof. André Renato Bakalereskis
Itatiba – São Paulo – Brasil
Dezembro de 2005
III
Proposta de automação: acionamento do maçarico para têmpera
superficial por chama.
Paulo Fernando Madiuto
Monografia defendida e aprovada em 01 de dezembro de 2005 pela Banca
Examinadora assim constituída:
Prof Esp André Renato Bakalereskis - orientador
USF – Universidade São Francisco – Itatiba – SP.
Prof Ms Josemar dos Santos
USF – Universidade São Francisco – Itatiba – SP.
Eng. Jose Luiz Zanotto
Magneti Marelli Escapamentos – Amparo – SP
IV
Faltou luz, mas era dia, o sol invadiu a sala e fez
da TV um espelho... refletindo o que a gente esquecia...
O Rappa
V
A meus pais Líbia e Laércio, sem os mesmos este
sonho não se realizaria.
A minha esposa Denise, por ter sido tão paciente
e amável.
Ao meu filho, Giuliano, que depois de esperar por
tanto tempo, não vê à hora do pai ficar em casa para
poder brincar e montar o seu carrinho que prometi.
A todos o meu carinho.
VI
.Agradecimentos
Agradeço, primeiramente, ao Professor Werner Mertzig que, com coragem, me disse
sim, abrindo-me as fronteiras do conhecimento.
Ao Professor André que, no início do projeto, concedeu-me a idéia e que depois de
muito tempo, se tornou meu orientador, mostrando-me o caminho que deveria seguir.
Aos amigos Celso, Luisinho, Alex, Marcos, Cleber e os demais companheiros da
USF, que de alguma forma, seja física ou inconsciente, ajudaram-me, incentivaram-me,
criticaram-me, ouviram-me por horas falar deste projeto e de todas as suas fases. Ficam
aqui os meus sinceros agradecimentos.
À Universidade São Francisco, representada pela Engenharia Mecânica, pelo
aproveitamento nos laboratórios e por todos estes anos de ensinamento.
Aos colegas de sala, que contribuíram com todos os meios para que este projeto
tomasse forma, pelas idéias trocadas, pelos relatórios criticados, enfim, pelo
companheirismo e os goles tomados no bar.
E, é claro que não posso deixar de agradecer à minha família, que por longos dias e
noites não tiveram-me no aconchego do nosso lar. Não me ouviram falar em outra coisa e,
mesmo assim, tiveram a paciência e a dedicação de me esperar e estarem ao meu lado.
Também agradeço a Helder Laudares e a Magneti Marelli, pelos dias que fiquei na
minha casa para a conclusão da digitação destes parágrafos.
VII
Sumário
Resumo
II
Abstract
III
1. INTRODUÇÃO
1
2. OBJETIVO
1
3. JUSTIFICATIVA
2
4. REVISÃO BIBLIOGRÁFICA
2
4.1 Têmpera
2
4.2 Tratamento de endurecimento superficial
2
4.2.1 Têmpera superficial
3
4.2.2 Têmpera superficial por chama
4
4.3 O sistema proposto
6
4.4 Estudo da chama
8
4.4.1 Características dos gases
11
4.4.2 O gás liquefeito de petróleo (GLP)
11
4.4.3 Diferenças entre gás liquefeito de petróleo e gás natural
12
4.5 Microcontrolador
12
4.5.1 Arquitetura harvard e filosofia risc
13
4.5.2 O PIC 16F877
14
4.5.3 A linguagem Assembly
15
4.6 Elementos de automação
16
4.6.1 Motor de passo
16
4.6.1 Sensor de oxigênio
17
4.6.3 Válvula reguladora de fluxo
18
4.7 O sistema de controle
19
4.7.1 Modelo matemático
20
4.7.2 Sistema em malha aberta e fechada
20
4.7.3 As estratégias de controle
22
5. MATERIAIS E MÉTODOS
23
VIII
6. RESULTADOS
6.1 Os testes práticos
25
27
7. CONCLUSÃO E PROPOSATAS FUTURAS
30
8. REFERÊNCIA BIBLIOGRÁFICA
32
Apêndice 1 Fluxograma do programa do microcontrolador
33
Apêndice 2 Circuito elétrico
35
Apêndice 3 Circuito pneumático e do gás GLP
36
Apêndice 4 Código-fonte do microcontrolador em assembly
37
IX
MADIUTO, Paulo Fernando. Proposta de Automação: Acionamento do Maçarico
da Têmpera Superficial por Chama. 2005. 30f. Monografia (Engenharia Mecânica) –
Curso de Engenharia Mecânica – Automação e Sistemas da Universidade São Francisco,
Campus de Itatiba.
Resumo
Este projeto tem por objetivo descrever o desenvolvimento da automatização do
acionamento do maçarico para o processo de têmpera superficial por chama, utilizando para
esta tarefa um microcontrolador. A têmpera superficial consiste em aquecer
superficialmente uma amostra de material metálico e, em seguida, resfriá-la com água.
Desta
forma,
altera-se
a
microestrutura
somente
na
superfície
do
material,
conseqüentemente, aumentando a sua dureza superficial. Desenvolveu-se uma bancada
didática, onde os componentes utilizados eram todos de nível industrial, simulando o
processo de têmpera superficial. Foi utilizado para o aquecimento um maçarico a gás (Gás
Liqüefeito de Petróleo e Ar Comprimido) e para fazer as movimentações necessárias, um
circuito com elementos pneumáticos. O microcontrolador foi o dispositivo de controle para
acionar e controlar o gás de entrada e acendê-lo, acionar o posicionamento da amostra,
verificar através de um sensor de oxigênio a chama e automaticamente cessar o
aquecimento e acionar o resfriamento da amostra. O microcontrolador é um dispositivo
eletrônico, especifico para tarefas dedicadas de processos dos mais variados, desde
equipamentos industriais a eletrodomésticos. Utilizou um programa especifico, o qual foi
gravado no dispositivo e com ele podê-se comandar solenóides, sensores (mecânicos e
elétricos), motores de passo, entre outros instrumentos. Pretendeu-se com este estudo
propor um sistema automático para o processo de têmpera superficial, comprovando a
vantagem do microcontrolador para tarefas dedicadas.
Palavras-chave: têmpera superficial, microcontrolador, automação em têmpera.
1
1. INTRODUÇÃO
Este trabalho realizou o estudo do processo de automação para a têmpera superficial
focalizando no acionamento do maçarico e utilizou um microcontrolador da família PIC.
O processo de têmpera superficial exige uma chama homogênea e com características
próprias, dependendo do material empregado. A têmpera superficial, consiste em aquecer
uma amostra de material metálico, de médio teor de carbono, acima da temperatura de
recristalização.
Este aquecimento tem de ser controlado, pois, o que se espera é que somente a
superfície seja aquecida em tal temperatura, para que posteriormente e rapidamente se
inicie o resfriamento.
Desta forma, altera-se a microestrutura somente na superfície do material,
conseqüentemente, aumentando a sua dureza superficial.
O sistema que este projeto propõe, é que, com um microcontrolador PIC 16F877 se
possa fazer o controle preciso e rápido que o sistema de têmpera superficial requer. O
sistema proposto está apto a controlar os gases de entrada no maçarico, verificar através de
um sensor sonda lambda a condição da chama produzida pelo maçarico, em função da
quantidade de oxigênio queimada.
O sistema mecânico foi montado com sucesso, e também uma placa protótipo, para o
controle. O desenvolvimento da lógica de programação, bem como as adaptações dos
elementos de automação foram necessárias para o sucesso deste trabalho, que consistiu em
unir válvulas reguladoras de fluxo, motores de passo, e elemento sensor, como a sonda
Lambda, na composição da proposta que foi desenvolvida nas páginas seguintes.
2. OBJETIVO
O objetivo deste trabalho é propor um sistema utilizando um microcontrolador, que
possa acionar o maçarico da têmpera superficial por chama. E, para isto, construir uma
2
bancada didática com o sistema de têmpera superficial por chama e uma placa eletrônica
protótipo com os elementos de automação necessários.
3. JUSTIFICATIVA
Os processos empregados atualmente na indústria para a têmpera
superficial, utilizam máquinas que são de acionamento e controle através
de relês, ou com CLP (Controlador Lógico Programável). O CLP é uma
plataforma muito apropriada para este pequeno controle, porém de alto
custo, e os acionamentos por relês são muito antigos para o emprego
industrial atual.
Estes dois fatores encarecem demasiadamente o projeto; assim, a
alternativa de se trabalhar com um microcontrolador.
Os microcontroladores são elementos para sistemas dedicados e de
baixo custo. Devido ao seu alto desempenho e flexibilidade em se adaptar
aos mais diversos sistemas, é uma ferramenta poderosa da automação dos
dias atuais.
4. REVISÃO BIBLIOGRÁFICA
4.1. Têmpera
Para a BRASIMET Comércio e Indústria S.A (2003), a têmpera é o tratamento
térmico que consiste no aquecimento de uma peça numa temperatura superior à sua
temperatura crítica e, em seguida, resfriamento rápido do material, em meio de
resfriamento específico - obtendo uma estrutura martensítica. Sem o necessário
complemento de um revenimento, as peças temperadas apresentar-se-ão, quase sempre
frágeis.
3
4.2. Tratamento de endurecimento superficial
Os aços, quando temperados, apresentam uma estrutura martensítica que se estende
da superfície para o núcleo das peças, tanto mais profundamente quanto maior a sua
temperabilidade.
Segundo Chiaverini (1987), nem sempre é necessário que se obtenha uma elevada
dureza à máxima profundidade possível, ou seja, para muitas aplicações, a prática tem
demonstrado que uma dureza superficial adequada, abrangendo camadas superficiais
relativamente finas, é mais do que suficiente.
Alia-se a esse fator, a constatação que alguns dos tratamentos que endurecem o aço
apenas superficialmente, como os métodos de têmpera superficial, são mais econômicos,
sobretudo do ponto de vista energético. Além disso, o equipamento apresenta menor custo,
porém com maior manutenção, principalmente nos queimadores, segundo Silva (1988).
Por isso, os tratamentos de endurecimento superficial são largamente utilizados em
aços, com resultados excelentes sob vários aspectos. Sob o aspecto metalúrgico, os
tratamentos de endurecimento superficial podem ser divididos em dois grupos
(CHIAVERINI, 1987):
Têmpera superficial;
Tratamentos termo-químicos, como cementação, nitretação, etc.
Este projeto, apenas englobará o primeiro grupo.
4.2.1 Têmpera superficial
Neste método, o procedimento consiste em aquecer a superfície do
aço rapidamente, de modo que a sua temperatura atinja a zona
austenítica, até uma certa profundidade, seguindo-se resfriamento rápido.
Desse modo, somente uma camada superficial, de espessura que pode ser
pré-determinada com alguma segurança, ficará temperada e adquirirá a
estrutura martensítica. Abaixo dessa camada, o aço permanece na sua
4
condição original de estrutura recozida ou, eventualmente, normalizada,
com uma zona de transição, segundo Chiaverini (1987).
As vantagens decorrentes deste processo sobre a têmpera total são
(CHIAVERINI, 1996):
Endurecimento somente de determinadas seções das peças onde a dureza é
propriedade crítica (dentes de engrenagens grandes, guias de máquina operatrizes
etc.);
Menores riscos de empenamento e fissuração durante o resfriamento;
Utilização de aços de menor custo, como os aços-carbono;
Menor investimento em equipamento do que a têmpera convencional.
Para Chiaverini (1987), a têmpera superficial confere aos aços boa resistência à
fadiga por dobramento e boa capacidade de resistir a cargas de contato.
Para se ter uma maior segurança em relação aos riscos de empenamento ou
fissuração, devem-se evitar camadas muito profundas; com essa preocupação, previne-se
ainda o desenvolvimento de tensões levadas abaixo da camada endurecida (CHIAVERINI,
1987).
A têmpera superficial pode ser executada por quatro processos principais, segundo
Chiaverini (1996):
Têmpera por chama;
Têmpera por indução;
Têmpera por laser;
Têmpera por feixe eletrônico.
Este projeto trata apenas do primeiro processo.
4.2.2 Têmpera superficial por chama
Na têmpera por chama, a superfície a ser endurecida é rapidamente aquecida à
temperatura de austenitização por intermédio de uma chama de oxiacetileno ou outros gases
- propano, gás natural, GLP, etc - e é, logo a seguir, resfriada por meio de um jato de água
5
(SILVA, 1988). A Figura 4.1, mostra o esquema de têmpera superficial, pelo método
rotativo e progressivo (CHIAVERINI, 1987).
Figura 4.1: Esquema de tempera superficial, método rotativo e progressivo.
(CHIAVERINI, 1987).
Segundo Chiaverini (1987), o processo é indicado para peças grandes e delgadas ou
planas com geometrias que não permitem têmpera convencional. A profundidade de
endurecimento não ultrapassa 10 mm, sendo geralmente menor. A Figura 4.2 mostra a
espessura da camada endurecida por têmpera superficial por chama (CHIAVERINI, 1987).
Figura 4.2: Espessura da camada endurecida por têmpera superficial por chama.
(CHIAVERINI, 1987)
6
A temperatura de aquecimento para atingir a zona austenítica depende principalmente
do teor de carbono, segundo Chiaverini (1987): quanto mais baixo o teor de carbono maior
a temperatura, a qual varia de 850ºC à 875ºC para aços com 0,60% C e de 900ºC à 975ºC
para aços com 0,30%C. O meio de resfriamento é a água e, eventualmente, ar ou óleo.
Três métodos usuais são empregados para se realizar a têmpera superficial, segundo
Chiaverini (1996). A Figura 4.3 mostra os métodos de têmpera superficial,
esquematicamente. São eles:
Método “estacionário”: o método mais simples, em que se aquece apenas localmente
as áreas selecionadas da peça, com subseqüente resfriamento por imersão ou borrifo.
Método “progressivo”: empregado para endurecer secções grandes que não podem
ser endurecidas pelo processo “estacionário”. As dimensões e a forma da peça a ser
endurecida, assim como o volume de gás oxigênio e gás combustível necessário para
aquecer a seção, são fatores a serem levados em consideração na escolha deste processo.
O método progressivo consiste em um ou mais cabeçotes de chama e de resfriamento,
montados sobre um carro para a movimentação, a uma velocidade regulável. Assim, com o
movimento do cabeçote sobre a peça consegue-se, num limite prático, temperar a peça no
seu comprimento.
Método “giratório”: empregado em peças circulares ou semicirculares, tais como,
rodas, cames, e pequenas engrenagens. Na sua forma mais simples, utiliza-se um
mecanismo para girar a peça num plano horizontal ou na vertical, ficando sua superfície à
ação da chama. Desde que se consiga um aquecimento uniforme, a velocidade de rotação é
relativamente pouco importante. Depois que a superfície da peça estiver aquecida – por
intermédio de um ou mais cabeçotes de chamas – a chama é extinta ou retirada e inicia-se o
resfriamento, por borrifo ou imersão, ou ambos combinados.
Finalmente, o método “combinado progressivo-giratório” alia os dois métodos
descritos anteriormente, ou seja, a peça gira e a tocha se movimenta de uma extremidade à
outra. Somente uma faixa estreita na circunferência é aquecida progressivamente pela
chama e, logo atrás, vem o bocal de resfriamento.
7
Figura 4.3: Três métodos de aplicação do endurecimento superficial por chama. A figura
superior corresponde ao método progressivo; a figura central corresponde ao método
giratório;
e
finalmente,
a
figura
inferior
corresponde
ao
método
combinado
(CHIAVERINI, 1987).
4.3 O Sistema proposto
O sistema que este trabalho propõe é baseado na construção de uma bancada didática
de Têmpera Superficial por Chama, que foi montada no laboratório de Sistemas Térmicos
da Universidade São Francisco. Esta bancada utilizou equipamentos encontrados na própria
Universidade e, após a sua montagem, pôde-se estudar o controle de acionamento do
maçarico.
Praticamente todos os elementos de construção da bancada eram existentes, porém,
não estavam unidos de forma a integrar este equipamento; isto se deu com a idealização do
projeto em construir este protótipo.
Montou-se uma estrutura em alumínio, o maçarico, a bomba d´água, o reservatório de
água, as mangueiras para instalação das válvulas de controle da chama, uma coifa para a
sonda lambda, tudo isto representando a parte mecânica. As válvulas de controle da chama
8
foram construídas a partir de uma válvula reguladora de fluxo e de um motor de passo e o
acoplamento se deu com um sistema de engrenagem. A Figura 4.4 mostra um esquema para
representar o sistema proposto.
Figura 4.4: Esquema do sistema proposto para a automação.
O sistema montado foi idealizado para o método estacionário, devido a não utilização
de movimento da amostra ou do maçarico.
Na parte eletrônica, foi necessária a montagem de uma placa protótipo para simular
todo o sistema, antes desta funcionar na bancada construída. (Cabe mencionar que não foi
possível realizar um teste prático na bancada, ficando aqui uma sugestão para a continuação
deste trabalho).
E é nesta placa protótipo que se encontra o microcontrolador, atuando nos elementos
ao seu redor, seguindo a programação efetuada, para atender a necessidade da bancada que
é de acionar o maçarico para a têmpera superficial automaticamente.
Na placa, efetuou-se a montagem de vários circuitos que, independentes, tem efeito
quase nulo sobre a bancada, mas integrados ao microcontrolador, são de fundamental
importância para o perfeito funcionamento do mesmo.
A bancada é própria para utilizar a têmpera superficial por chama com o aço ABNT
1045, aço de médio teor de carbono, excelente para esta aplicação e de fácil acesso no
9
mercado. Também possibilita uma boa estrutura, diferenciando a estrutura temperada da
estrutura do centro da amostra (normalizada).
A justificativa de se utilizar para esta aplicação o gás GLP (Gás Liquefeito de
Petróleo), é que no Laboratório de Sistemas Térmicos há uma instalação deste gás e isto
levou a fazer esta proposta de automação baseada neste gás. Apesar do seu poder de
aquecimento ser menor que os demais gases largamente utilizados na indústria atual, os
teste apontados verificaram uma eficiente ação para esta aplicação.
Sobre o programa, pode-se verificar que, ao iniciar o processo, algumas perguntas são
realizadas, solicitando ao operador da bancada, as informações para que o programa atue de
forma correta. Estas informações estão dispostas no display LCD. Esta idéia surgiu para
poder testar vários tempos de aquecimento e resfriamento, forçando variações no processo
de têmpera e viabilizando uma futura aula sobre o assunto, visto que, este equipamento foi
produzido para a disciplina de Materiais de Construção Mecânica da Universidade São
Francisco.
O programa contido no microcontrolador, está representado no Fluxograma 1
(Apêndice 1).
Os sub-capítulos posteriores, vão demonstrar, de forma sintética, os estudos
realizados para a conclusão deste projeto.
4.4 Estudo da chama
Ao estudar a chama para o processo de têmpera superficial, deve-se ter em mente que
tipo de chama é apropriada para o processo de aquecimento do material em questão. O aço,
neste caso, é o aço 1045, que deve ser aquecido em torno de 900ºC.
Para se atingir esta temperatura em poucos segundos, deve-se ter uma chama que
ultrapasse este limite facilmente. Inicialmente, trata-se do comportamento da chama
independente de seu combustível.
A chama se baseia em uma combustão que ocorre em duas etapas:
1º- A combustão primária, a qual ocorre somente entre o combustível e o oxigênio da
mistura de gases;
2º- A combustão secundária, a qual ocorre entre a mistura e o ar atmosférico.
10
A Figura 4.5 demonstra esquematicamente a formação da chama em um bico de
maçarico.
Figura 4.5:
Localização das reações de combustão na chama de um
maçarico.(WAINER, BRAND E MELLO 1995).
No detalhe da Figura 4.5, está a formação da chama. O esquema de um bico de
maçarico está na figura maior. As partes que a chama possui são: dardo e penacho, as quais
são constituintes de qualquer tipo de chama. No dardo ocorre a combustão primária e no
penacho, a combustão secundária.
As características da chama dependem da relação entre o combustível (acetileno,
hidrogênio, propano ou GLP) e o comburente (oxigênio). Define-se a regulagem da chama,
ou relação de consumo, a razão entre os volumes do comburente e do combustível na zona
de combustão primária:
A = regulagem da chama =
Volume do comburente (oxigênio)
Volume do combustível (gás)
(4.1)
11
Com o conceito de regulagem da chama podem-se definir 3 tipos de chama: neutra,
redutora (ou carburante) e oxidante, cujas características são mostradas na Tabela 4.1.
Tabela 4.1: Tipos e
1995).
Regulagem da chama
características das chamas.(WAINER, BRAND E MELLO
Tipo da chama
Formato da chama
Característica
Penacho longo.
Aplicação
Soldagem de aços (ou
regulagem neutra
1,0 < A < 1,1
Neutro
Fig. 4.6a
Dardo branco,
levemente redutora).
brilhante e
Cobre e suas ligas
arredondado.
(exceto latão).
Níquel e suas ligas.
Penacho esverdeado.
Véu branco
A < 1,0
Redutora
Fig. 4.6b
circundando o dardo.
Revestimento duro,
Dardo branco,
ferro fundido, alumínio
brilhante e
e chumbo.
arredondado.
Chama menos quente.
Penacho azulado ou
A > 1,1
Oxidante
Fig. 4.6c
avermelhado, mais
Aços em geral
curto e turbulento.
(regulagem neutra
Dardo branco,
levemente oxidante).
brilhante, pequeno e
Latão.
pontiagudo.
Bronze.
Chama mais quente.
Ruído característico.
A Figura 4.6, especifica cada tipo de chama citada na Tabela 4.1.
12
Figura 4.6: (A) chama neutra; (B) chama redutora; (C) chama oxidante, segundo
Wainer, Brand e Mello 1995.
Necessariamente, neste projeto, precisa-se de uma chama oxidante devido a sua
característica de alta temperatura, porém, trabalha-se para conseguir uma mistura levemente
oxidante para não prejudicar o processo, não precipitando a oxidação do material e
conseqüentemente, dificuldades no aquecimento da amostra.
A temperatura da chama é uma função da distância, medida a partir da extremidade
do dardo. Existe um ponto onde ela atinge o máximo e depois começa a decrescer. Da
mesma maneira, a atmosfera do penacho muda sua composição química, tornando-se mais
oxidante à medida que aumenta a distância a partir da extremidade do dardo.
4.4.1 Características dos gases
Como a chama é gerada pela combustão de um gás, as propriedades químicas do gás
determinam as características da chama. Esta deve possuir, do ponto de vista do
aquecimento localizado, uma elevada temperatura máxima de chama, além de uma
repartição térmica no volume da chama suficiente para suprir o calor de fusão.
A temperatura máxima do combustível, ou temperatura teórica da chama, é uma
propriedade física do combustível, obtida a partir do calor de reação.
A repartição térmica é determinada pelos calores de reação da combustão primária e
da secundária. Uma das maneiras de quantificar a repartição térmica da chama é dividir a
13
soma dos calores das reações de combustão secundária pelo calor de reação da combustão
primária. Quanto maior o valor mais concentrada é a chama.
Os cálculos deste sistema seriam inviáveis de se conseguir devido a dificuldade
prática de se levantar este dados, pois a composição do GLP pode variar e a do ar
comprimido tem todos os elementos encontrados na nossa atmosfera, em quantidades que
somente um laboratório de análise de gases poderiam mensurar, ficando fora do escopo
deste projeto.
4.4.2 O gás liquefeito de petróleo (GLP).
O GLP - gás liquefeito de petróleo - pode ser separado das frações mais leves de
petróleo ou das mais pesadas de gás natural. À pressão atmosférica e temperaturas
normalmente encontradas no ambiente, é um produto gasoso, inflamável, inodoro e
asfixiante, quando aspirado em altas concentrações.
Para Ultragás S/A. o GLP é um derivado composto da mistura de hibrocarbonetos
com 3 e 4 átomos de carbono com ligação simples, denominados de propano e butano. Na
composição do GLP, a mistura ideal é de 50% de propano + 50% de butano, mas ocorrem
variações nesta composição. Se tivermos uma proporção de propano maior do que a de
butano, teremos um GLP rico, com mais pressão e menos peso. Se ocorrer o inverso,
teremos um GLP pobre, com mais peso e menos pressão.
Aplicações:
Butano – Utilizado como propelente em aerossóis e isqueiros;
Propano – Utilizado em vidreiras e indústrias metalúrgicas;
GLP – Utilizado na avicultura, aquecimento de ambientes, chamuscadeira de tecidos,
desidratação de alimentos, empilhadeiras, fabricação de massas alimentícias e biscoitos,
preparação de gêneros alimentícios, solda (latão, prata), secagem de papel, iluminação,
hospitais e laboratórios, vulcanização de borracha, aquecimento de aço em alguns
processos industriais, etc.
14
Para que os vazamentos de gás sejam facilmente identificados, compostos à base de
enxofre são adicionados, apenas para lhe dar um odor característico, sem lhe atribuir
características corrosivas.
Sua densidade, isto é, a relação entre massa e volume (conceito básico) é 2,10 kg/m³,
ou seja, 1m³ de GLP pesa 2,10 kg (a 15 °C e à pressão atmosférica).
4.4.3 Diferenças entre gás liquefeito de petróleo e o gás natural.
Gás liqüefeito de petróleo (GLP): Produto constituído de hidrocarbonetos com três ou
quatro átomos de carbono (propano, butano), podendo apresentar-se misturados entre si.
Sua produção está essencialmente ligada à de petróleo.
Gás Natural (GN): Hidrocarbonetos combustíveis gasosos, essencialmente metano,
cuja produção pode ser associada ou não à de petróleo.
4.5 Microcontrolador
O microcontrolador é um dispositivo eletrônico, específico para tarefas dedicadas de
processos dos mais variados, desde equipamentos industriais a eletrodomésticos. Utiliza um
programa específico, o qual é gravado no dispositivo e com ele pode-se comandar diversos
instrumentos e periféricos.
O microcontrolador utilizado neste projeto é o PIC 16F877, da família PIC da
Microchip.
Para Souza (2003), uma definição rápida é que o microcontrolador é um “pequeno”
componente eletrônico, dotado de uma inteligência programável, utilizado largamente no
controle de processos lógicos. Para um melhor entendimento, este será exposto por partes:
É composto por uma única pastilha de silício encapsulado, mais conhecido por CI
(circuito integrado) ou CHIP. Possui internamente todos os meios necessários para
automações, como: memória de programa, memória de dados, portas de entrada e/ou saída,
timers, contadores, comparadores, PWM, comunicação serial, conversores analógicodigitais, etc.
Este é o ponto principal de diferença entre um microprocessador e um
microcontrolador: o primeiro não possui todos estes elementos em uma única pastilha.
15
O microcontrolador é programável, utilizando um software que compreende um
compilador, como MPLab (Assembly) da Microchip, ou outros compiladores em C++, que
permitem a criação do arquivo de programa, para posteriormente, o arquivo gerado ser
gravado no PIC, possibilitando ao microcontrolador controlar as suas memórias, portas,
timers, e outros mais.
O microcontrolador utiliza a ULA – Unidade Lógica Aritmética, para processar todas
as operações de matemática e lógica. Quanto mais poderosa a ULA do componente, maior
a capacidade de processar informações.
O controle de processos deve ser entendido como controle de periféricos, tais como:
botões, leds, displays de sete segmentos, displays de cristal líquido (LCD), resistências,
relês, sensores de diversos tipos (pressão, temperatura, vazão, etc.) e muitos outros
analógicos ou digitais. Estes elementos fazem parte dos chamados controles lógicos, pois as
operações de controle sobre os mesmos, dependem das ações lógicas executadas pelo
microcontrolador em função do estados das entradas e saídas.
4.5.1 Arquitetura harvard e a filosofia risc
Os microcontroladores da família PIC são dotados de uma arquitetura baseada em
dois barramentos de comunicação, um para dados e outro para instruções. Isto facilita e
agiliza a comunicação interna do microcontrolador, possibilitando que, enquanto uma
instrução seja executada outra possa ser buscada da memória, tornando-o mais rápido. O
barramento de dados é sempre de 8 bits e o de instrução pode chegar a 16 bits, dependendo
do modelo de microcontrolador.
Segundo Souza (2003), a filosofia RISC (Reduced Instruction Set Computer) nada
mais é que um set de instruções reduzido, com cerca de 35 instruções (número pode variar
de acordo com o modelo do PIC) que facilitam a programação e o aprendizado. Por outro
lado, pode haver uma solicitação de maior habilidade por parte do usuário, pois, muitas
operações têm de ser construídas pelo simples fato de não existirem como instrução pronta;
é o caso da divisão ser complexa dentro do PIC.
4.5.2 O PIC 16F877
16
As características do microcontrolador PIC 16F877, segundo o Data Sheet Microchip
PIC16F87XA (2003), são:
-
Microcontrolador de 40 pinos;
-
Possui 14,3K de 14 palavras de Flash, 368K de RAM, 256K de EEPROM;
-
33 Entradas e Saídas (I/O) configuráveis;
-
8 canais A/D de 10-bit;
-
2 módulos CCP e PWM;
-
Comunicação serial USART;
-
3 Timers de 8/16-bits, para interrupções;
-
2 Comparadores;
-
Porta paralela (PSP).
-
Baixo-consumo, baixo custo, alta velocidade de comunicação;
-
Range de operação de 2,0v a 5,5v
Em cada pino das PORT, podem existir particularidades, como o pino RC2/CCP1.
Este pino pode ser configurado como entrada ou saída simplesmente, ou ser um pino para o
Capture 1 input / Compare 1 output / PWM 1 output. Esta característica demonstra que os
pinos podem ter várias funcionalidades, desde que configurados previamente para cada
função.
As propriedades de cada pino podem ser visualizadas na Figura 4.7.
17
Figura 4.7: Pinagem do PIC 16F877 (DATA SHEET, PIC16F87XA, 2003).
4.5.3 A linguagem Assembly
Esta linguagem de programação foi estudada para programar o PIC 16F877. Mas
antes de expor a programação, apresentar a ferramenta de trabalho é muito importante esta ferramenta é o MPLab.
O MPLab é um programa para PC, que roda em plataforma Windows, e serve como
ambiente de desenvolvimento de programas PIC. È uma ferramenta muito poderosa, pois
junta, no mesmo ambiente, o gerenciamento de projetos, compilação, simulação e até a
gravação do PIC (SOUZA, 2003).
O ambiente de programação se assemelha a uma página de documento de texto,
aonde as colunas com os comandos vão preenchendo o vazio e tomando forma a
programação. Este programa também é chamado de código-fonte. É neste ambiente que se
forma a linguagem assembly, uma linguagem de baixo nível, de entendimento fácil para os
microcontroladores. Um exemplo desta programação é feito na Figura 4.8, demonstrando
uma rotina para o LCD.
18
;*****************************************************
*********
; INICIALIZA O DISPLAY
;*****************************************************
*********
;
DISPLAY_INIT:
MOVLW 0x038
; Comando para interface 8-bits
call SEND_CMD
MOVLW 0x00E
CALL SEND_CMD
; liga display
;
MOVLW 0x006
; incrementa display
CALL SEND_CMD
;
Figura 4.8: Rotina para iniciar o display LCD.
As rotinas são freqüentemente utilizadas na programação. Elas são pequenos
programas e são chamadas através da instrução CALL, a qual indica onde se localiza o
programa chamado, para poder executá-lo.
Em resumo, com este conhecimento adquirido, pode-se construir o código-fonte,
compilar e gravar no microcontrolador como realizado neste projeto, ou outro controle de
um sistema qualquer.
4.6 Elementos de atuação
4.6.1 Motor de passo
O motor de passo é um transdutor que converte energia elétrica em movimento
controlado através de pulsos, o que possibilita o deslocamento por passo, onde passo é o
menor deslocamento angular (Braga, 1999).
19
Uma vantagem do motor de passos em relação aos outros motores é a estabilidade.
Quando se obtêm uma rotação específica de um certo grau, calcula-se o número de rotação
por pulsos o que nos possibilita uma boa precisão no movimento.
Tipos de Motores de Passo
Relutância Variável: Apresenta um rotor com muitas polaridades construídas a partir
de ferro doce, apresentado também em estator laminado.
Imã Permanente: Apresenta um rotor de material alnico ou ferrite e é magnetizado
radialmente; devido a isto, o torque estático não é nulo.
Híbridos: É uma mistura dos dois anteriores e apresenta rotor e estator multidentados
. O rotor é de imã permanente e magnetizado axialmente. Apresenta grande precisão (3%),
boa relação torque/tamanho e ângulos pequenos (0,9 e 1,8 graus).
Dentro dos três tipos, encontra-se, o unipolar e o bipolar. São diferenciados na sua
construção. Os unipolares possuem dois enrolamentos com uma derivação central. Os
bipolares possuem mais enrolamentos e não são energizados num terminal central.
Funcionamento básico do motor de passo
Motores de passo unipolares são caracterizados por possuírem um center-tape entre o
enrolamento de suas bobinas. Normalmente utiliza-se este center-tape para alimentar o
motor, que é controlado aterrando-se as extremidades dos enrolamentos.
Para que um motor de passo funcione, é necessário que sua alimentação seja feita de
forma seqüencial e repetida. Ligam-se os fios do motor de passo a um circuito que execute
a seqüência requerida pelo motor.
Para que se obtenha uma rotação constante é necessário que a energização das
bobinas seja periódica. Esta periodicidade é proporcionada por circuitos eletrônicos que
controlam a velocidade e o sentido de rotação do motor. Este trabalho utilizou o SAA 1027,
um drive especifico para esta aplicação.
20
O torque do motor de passo depende da freqüência aplicada ao clock. Quanto maior a
freqüência, menor o torque, porque o rotor tem menos tempo para mover-se de um ângulo
para outro.
4.6.2 Sensor de oxigênio
Muito conhecido como sonda lambda, estes sensores têm uma aplicação vasta na
indústria automotiva e em indústrias em geral. Como nenhuma combustão pode se realizar
sem a presença de oxigênio este sensor é vital quando se quer verificar o elemento oxigênio
numa combustão. Os sensores de oxigênio são baseados em elementos de zircônio.
Sensores de Zircônio
A superfície externa do elemento zircônio está em contato com o gás do escape; a
interna está em contato com o ar. Ambas estão revestidas por uma fina camada de platina.
O elemento de zircônio, a uma temperatura acima de 300ºC, conduz os íons de
oxigênio, gerando uma tensão elétrica. Esta tensão elétrica é gerada se a concentração de
oxigênio na parte interna e externa do elemento for diferente, e uma baixa voltagem
(próxima a zero) é gerada se a mistura ar/combustível for pobre e uma voltagem próxima
de 1000mV é gerada se ela for rica.
Quando a mistura ar/combustível se aproxima da relação ideal (estequiométrica; λ
=1) existe uma variação brusca na tensão gerada, entre 0 e 1000mV.
Um controle usa a voltagem produzida pela sonda lambda para instruir o sistema de
mistura de combustível para enriquecer ou empobrecer a mistura. Por um exemplo, como
em um automóvel, visto que o sensor apenas produz a voltagem quando o elemento está
acima de 300ºC, o gás de escape leva algum tempo para aquecer o elemento a esta
temperatura, após o motor ter sido acionado. Para reduzir o tempo que leva para o sensor
começar a funcionar, muitos sensores hoje em dia possuem um aquecedor interno de
cerâmica. Estes sensores têm 3 multicamadas, assegurando alta performance e
confiabilidade
21
Um sensor de Zircônio utilizado neste trabalho é a Sonda lambda, que é altamente
confiável, mesmo em condições de utilização severas, tem rápida resposta e é de tipo
compacto.
Características:
- alta precisão e alta repetibilidade;
- resposta rápida;
- sinal de saída proporcional à concentração de oxigênio.
4.6.3 Válvula reguladora de fluxo
À válvula reguladora de fluxo é muito utilizada para controlar a vazão em um
sistema. É composta de uma agulha, um manípulo, válvula de retenção.
Neste projeto, a válvula foi acoplada a um motor, para o controle automático da
vazão dos gases de entrada no maçarico. A Figura 4.9, mostra uma válvula reguladora de
fluxo em corte.
Figura 4.9: Válvula reguladora de fluxo em corte e a sua simbologia.
4.7 O sistema de controle
O termo sistema é usado para descrever uma série de componentes que interagem em
torno de uma condição limite imaginária, e somente a entrada e a saída são de interesse, ou
22
seja, não há a necessidade de explorar as interações detalhadas entre os componentes,
segundo Bolton (1995). Em resumo, o aspecto importante é a relação entre entrada e saída
no sistema envolvido.
Estes sistemas podem tomar a forma de diversos mecanismos, como por exemplo, o
controle de temperatura de um ar condicionado em uma sala, um motor elétrico, o nível em
um reservatório. Uma representação viável para os sistemas é utilizar blocos demonstrando
o sistema e suas respectivas entradas e saídas. A Figura 4.10 exemplifica um sistema por
blocos.
Entrada
Combustível
Saída
Maçarico
Calor
Figura 4.10: Sistema: um maçarico.
Para um sistema de controle, a saída é controlada para se ter um valor específico ou
variar de forma determinada pela entrada do sistema. (BOLTON, 1995).
4.7.1 Modelo matemático
Modelo pode ser um meio de transferir alguma relação de sua forma real para outra
forma. Muito utilizado, para simplificar e facilitar a análise de sistemas complexos.
A Figura 4.10, é um exemplo de modelo para um maçarico. Outros exemplos podem
surgir como um modelo de um navio, o qual está representado em sua forma reduzida, mas
deve conter todos as relações de entrada e saída, da forma real.
Outras relações podem ser transferidas para o modelo, são as relações de interesse,
não apenas as relações de entrada e saída. O que não pode ser confundido é que o modelo
seja realmente o sistema real.
Modelar matematicamente um sistema é torná-lo representativo em números. Esta
apresentação pode variar de um mesmo modelo e, para cada tipo de análise, exigir um
modelo matemático diferente, mas com a mesma representação para, posteriormente, ser
23
utilizado com várias ferramentas analíticas ou computacionais para efeito de análise e
síntese.
4.7.2 Sistema em malha aberta e fechada
Existem duas formas básicas de sistemas de controle; sistemas em malha aberta e
sistemas em malha fechada. Para um sistema de malha aberta, a entrada é escolhida com
bases na experiência, de tal forma que o sistema dê o valor desejado. A saída, entretanto,
não é modificada de forma a seguir as alterações nas condições de operação.
Em um sistema em malha fechada, um sinal é realimentado da saída para a entrada e
usado para modificar a entrada, em função de uma saída constante, mesmo em condições de
operação. Este tipo de sistema, é o utilizado neste trabalho, onde o controlador atua sobre
os motores das válvulas e a sonda lambda realimenta o sinal de entrada em função da
queima dos gases no maçarico.
A Figura 4.11, mostra um diagrama de blocos de um sistema de controle em malha
fechada.
Entrada
Aquecedor
Temperatura
desejada
Saída
Temperatura
Medição de
Temperatura
Figura 4.11: Exemplo de um sistema de controle em malha fechada.
Os elementos básicos para o sistema de malha fechada, segundo Bolton (1995), são:
24
→
Elemento de comparação: Compara o valor desejado, ou de referência, da
variável controlada com o valor medido e determina o sinal de erro que
indica quanto o valor da saída está desviado do valor desejado.
→
Elemento de controle: Decide qual ação tomar quando recebe um sinal de
erro.
→
Elemento de correção: é utilizado para provocar uma mudança no processo
de forma a corrigir o erro e é freqüentemente chamado de atuador.
→
Processo: o processo ou planta é o sistema no qual uma variável está sendo
controlada.
→
Elemento de medida: Gera um sinal relacionado com a condição da variável
que está sendo controlada e fornece o sinal realimentado para o elemento de
comparação, para que ele determine o erro que existe.
Uma característica necessária de um sistema de malha fechada é a realimentação.
Existem dois modos de realimentação, uma positiva e a outra negativa.
Chamada de negativa, quando o sinal realimentado é subtraído do valor de
referência, isto é:
Sinal de erro = Valor de referência – sinal realimentado
(4.2)
A realimentação positiva, é quando o sinal realimentado é somado do valor de
referência, isto é:
Sinal de erro = Valor de referência + sinal realimentado
(4.3)
4.7.3 As estratégias de controle
Segundo Bolton (1995), o elemento de controle tem como entrada um sinal de erro e
como saída um sinal que se torna a entrada da unidade de correção, tal que uma ação possa
ser iniciada para eliminar o erro.
Para um sistema em malha fechada os controles são do tipo on-off (duas posições),
controle proporcional, ou controle proporcional combinado com integrativo ou derivativo.
25
O controle PID é o tipo de controle mais completo, A combinação das ações
proporcionais, integrais e derivativas com a finalidade de gerar um só sinal de controle, dá
origem
ao
que
chamamos
de
controlador
proporcional-integral-derivativo
ou
simplesmente PID. O objetivo é aproveitar as características particulares de cada uma
destas ações a fim de se obter uma melhora significativa do comportamento transitório e
em regime permanente do sistema controlado. O sinal de controle gerado pelo controlador
PID é assim genericamente dado como:
(4.4)
Desta forma tem-se três parâmetros de sintonia no controlador: o ganho proporcional
K(ação proporcional), o tempo integral Ti (ação integral) e o tempo derivativo Td (ação
derivativa).
Apesar de termos a disponibilidade das três ações básicas, dependendo da aplicação,
não é necessária a utilização de uma ou mais destas ações. Basicamente temos 4
configurações possíveis de controladores a partir de uma estrutura PID:
1. proporcional (P)
2. proporcional-integral (PI)
3. proporcional-derivativo (PD)
4. proporcional-integral-derivativo (PID)
Para este trabalho, estudou-se o controle, para após a aplicação na bancada, ser
aplicado a sintonia, esta por sua vez não aconteceu devido ao teste final na bancada não se
realizar.
5. MATERIAIS E MÉTODOS
Para o desenvolvimento deste trabalho, uma bancada didática para o ensaio de
tratamento térmico de têmpera superficial por chama, foi construída.
26
Ao idealizar os componentes necessários para a montagem da bancada de têmpera
superficial, pode-se perceber a necessidade de automação da mesma. A bancada é composta
por:
-
uma estrutura em alumínio;
-
maçarico circular com misturador para dois gases;
-
coifa para coleta dos gases provenientes da queima no maçarico e suporte para
sonda Lambda, com ajuste de altura;
-
Duas válvulas reguladoras de fluxo com motores acoplados para possibilitar a
abertura e fechamento das válvulas;
-
Solenóides, para os gases – Ar comprimido e GLP – também para o acionamento
da água de resfriamento;
-
Sistema hidráulico com tubulação, bomba e reservatório para bombeamento da
água do resfriamento;
-
Sistema pneumático para movimentação da amostra;
-
Sistema elétrico-eletrônico, para o controle da bancada (placa protótipo).
A bancada foi construída com materiais existentes nos laboratórios da Engenharia
Mecânica da Universidade São Francisco, com a estrutura; dimensionado a partir do estudo
de espaço do laboratório de Sistemas Térmicos e do tamanho real do maçarico, reservatório
de água, bomba d´água, entre outros.
O maçarico utilizado é do tipo circular, contém 8 bicos ajustáveis em posição e
vazão, e pode operar com pressões de até 10 bar. É construído em aço inox, e nele se
encontra o misturador de gás (combustível e oxigênio).
As válvulas simples solenóide, são as mesmas utilizadas nas aulas de Circuitos
Hidráulicos e Pneumáticos da graduação em engenharia Mecânica, marca Festo. Estas
foram utilizadas na segurança para os gases, e uma outra, do tipo controladora para o
posicionamento do cilindro pneumático.
Outro sistema adaptado com meios existentes, foi o sistema hidráulico para o
resfriamento. Posicionou-se o reservatório com volume de 50L (disponível), alojou-se a
bomba d´água para ser ativada afogada, na elevação da bomba a tubulação ganhou um
solenóide do tipo diafragma, que controla a saída da água para o esguicho do resfriamento.
27
Uma construção de destaque, foi a de uma válvula proporcional, que é utilizada para
a liberação dos gases GLP e Ar comprimido. Utilizou-se uma válvula reguladora de fluxo,
um motor de passo e um conjunto de engrenagens. O acoplamento se deu devido a uma
junta metálica, entre as peças já mencionadas.
Com estes sistemas montados sobre a bancada de têmpera superficial, iniciou-se
testes que demonstraram o funcionamento individual de cada elemento aqui comentado.
Testes realizados:
•
Acionamento do maçarico:
Consistiu em conectar os gases GLP e Ar comprimido nas entradas do maçarico,
centelhar para que o mesmo iniciasse a combustão. Neste ensaio, definiram-se alguns
parâmetros, como vazão dos gases, temperatura da chama, tipo de chama para se
trabalhar com o aço ABNT 1045.
Observação importante quanto à segurança:
O acionamento do maçarico exige que alguns cuidados sejam tomados, sendo de
ordem técnica, para se trabalhar com segurança. Antes de acender o maçarico devese:
-
Observar a NÃO obstrução de não nenhum queimador;
-
Verificar se há vazamentos na linha;
-
Se as pressões dos gases estão em níveis adequados ao trabalho;
-
Trabalhar com o local ventilado, porém sem correntes de ar na direção do
maçarico;
-
Manter distância segura do local no momento de acender o maçarico;
-
Usar EPI’s necessários à atividade, luvas e óculos de proteção.
•
Acionamento do sistema de resfriamento.
Teste da tubulação, bomba d´água, altura do reservatório (volume de água), solenóide
com diafragma e esguicho de resfriamento.
•
Acionamento do sistema pneumático.
28
Testou-se atuação da válvula de controle sobre o cilindro pneumático, e as válvulas
simples solenóides, verificando o sistema construído.
Com a parte mecânica concluída parcialmente, pois faltavam as interações dos
sistemas e os devidos ajustes, a parte eletroeletrônica teve a sua construção iniciada.
Uma medida tomada quanto à execução dos trabalhos em função dos circuitos
eletrônicos foi, de testar o circuito fora do ambiente do microcontrolador e se certificar dos
sinais e valores encontrados, antes de incorporar este circuito ao circuito principal. Pesquisa
sobre circuitos e lógicas foram muito utilizadas, neste período.
Em paralelo a este acontecimento, o microcontrolador era preparado na placa
protótipo e recebia os circuitos à medida que os mesmos eram estudados e aprovados. Um
drive de grande importância, foi o gravador para o microcontrolador, via in-circuit, é um
sistema de gravação do PIC que não é necessário a retirada do microcontrolador do circuito
do qual está montado para receber o arquivo de programa, ele é gravado no próprio
circuito, se o mesmo tiver alguns pinos ligados de maneira a permitir esta ação. O drive e o
circuito foram montados para agilizar o processo de teste de programa, durante o
desenvolvimento do código-fonte.
A programação do PIC foi muito trabalhosa, devido estar aprendendo a utilizar o
software e a linguagem Assembly. Montavam-se as rotinas necessárias para o
funcionamento de uma função, realizava a compilação e, posteriormente, gravava-se no
PIC, por meio do gravador in-circuit.
Após este procedimento, o programa estava rodando dentro do microcontrolador e
poderia ser testado na placa protótipo.
Estes passos foram executados até a conclusão final do circuito e do arquivo-fonte.
Um meio eficaz de visualizar o que estava acontecendo com o programa dentro do
PIC nas simulações, foi a colocação de leds em algumas saídas, simbolizando o
acionamento correto do pino pelo PIC, também a estruturação de algumas frases no display.
6. RESULTADOS
29
A montagem da bancada fez parte deste projeto, pois foi a partir desta montagem que
surgiu a idéia de se controlar a chama e todos os elementos da bancada utilizando um
microcontrolador.
Os resultados obtidos são divididos em algumas etapas, conforme descrito no item 5
deste trabalho.
Os resultados aqui apresentados, são os considerados os mais relevantes, visto que,
poderiam ser detalhados em vários pontos do projeto, e estes poderiam ser constituídos
outros trabalhos, dada a amplitude deste trabalho. Visando abordagem à automação com
um microcontrolador, este trabalho é um apanhado de informações básicas para o seu
desenvolvimento.
A bancada montada conforme a última atualização, com as válvulas de controle, com
o sistema de resfriamento, sonda lambda, mas sem funcionar integralmente, devido à não
implementação nesta bancada do programa, pode ser visualizada na Figura 6.1, a qual
demonstra a bancada e seus elementos de automação.
Válvulas
simples
solenóide,
para os
gases.
Tubulação
para o
resfriamen
Válvula
direcional
para
controlar o
cilindro
Válvula
solenóide
tipo
diafragma
Válvulas
regulador
as de fluxo
e os
Maçarico e
a coifa
com a
sonda
Porta
amostr
Bomba
centrifuga
e
30
Figura 6.1: Construção final da Bancada Didática de Têmpera Superficial por Chama.
6.1 Os testes práticos
O maçarico e os gases
Um teste prático realizado com o maçarico no laboratório de Sistemas Térmicos da
Universidade São Francisco, onde a bancada foi implantada revelou que a mistura de
oxigênio e GLP, se mostrou ideal para aplicação na bancada de têmpera superficial.
A Tabela 6.1, demonstra os resultados obtidos no ensaio:
Tabela 6.1: resultado do ensaio com os gases Oxigênio e GLP.
31
Gases
Pressão em
Vazão
Temperatura a 200 mm da
KPa
(l/min)
chama.
9800
0,015
2,7
0,02
Oxigênio
GLP
≈1400ºC
Um segundo teste foi realizado com a troca do gás oxigênio pelo ar comprimido, e
este foi satisfatório, demonstrando a viabilidade de não se utilizar o gás oxigênio neste
aquecimento. O principal motivo de trocar os gases, foi a disponibilidade dos gases GLP e
Ar comprimido no laboratório de Sistemas Térmicos, como o oxigênio não há esta
disponibilidade, pois o mesmo é envazado em garrafa e disponibilizado em outro
laboratório, visto que isto resultaria em uma troca freqüente deste gás. A Tabela 6.2,
demonstra os resultados obtidos no ensaio:
Tabela 6.2: resultado do ensaio com os gases Ar comprimido e GLP.
Gases
Ar
comprimido
GLP
Pressão em
Vazão
Temperatura a 200 mm
KPa
(l/min)
da chama.
500
0,035
2,7
0,02
≈1250ºC
Neste ensaio, comprovou-se o deslocamento necessário, do manípulo
da
válvula
reguladora de fluxo, para a automação.
O circuito pneumático e do gás GLP, para esta aplicação está no Apêndice 3.
Válvula de controle de vazão.
Com a montagem da válvula, pode-se colocar em prática os conhecimentos
adquiridos com o acionamento de motor de passo. Testou-se a operação e obteve-se
32
resultados satisfatórios. A montagem e os testes foram realizados respectivamente na
Oficina Mecânica e no Laboratório de Elétrica da Universidade São Francisco.
O acoplamento se deu com o ajuste de um conjunto de engrenagens de nylon, sendo,
uma coroa e um pinhão. A coroa tem 67 dentes e o pinhão tem 14 dentes. Sendo Z2 e Z1 os
números de dentes das engrenagens e se considerarmos Z2= 67 dentes e Z1= 14 dentes,
pode-se aplicar a relação de transmissão de engrenagens, onde:
t=
Z
Z
2
Onde :
1
(6.1)
t = relação de transmissão entre engrenagens.
A relação de transmissão entre engrenagens obtida é de 4,78, representa que
praticamente todos os esforços, força, velocidade e torque serão multiplicados por esta
relação na saída do motor, ou seja o motor com este acoplamento de engrenagens vai
fornecer 4,78 vezes o torque que produz.
Esta válvula foi desenvolvida para o controle de ar comprimido na chama do
maçarico. A Figura 6.2 mostra a montagem da válvula de controle de vazão e seu teste de
funcionamento. A válvula do gás GLP mantém a mesma característica construtiva.
Um drive de importância, é o SAA 1027, que controla motores de passo e facilita a
programação. Este circuito integrado, possui todos os componentes internamente para se
controlar os motores de passo. Apenas é necessário: alimentação, um clock, e os sinais de
parar, sentido de giro. E a saída para o motor é chaveada por ele.
33
Motor de passo
Circuito com o
SAA 1027
Conjunto de
engrenagens
Válvula
reguladora
de vazão.
Figura 6.2: Válvula de controle de vazão, e teste de movimento e torque.
Em seqüência à montagem da bancada, foi desenvolvido o código-fonte, que é a base
de controle, juntamente à placa protótipo. A Figura do Apêndice 2 mostra o esquema
elétrico da bancada de Têmpera Superficial por Chama.
Este circuito foi desenvolvido por um longo período, onde todos os testes de
montagem, foram realizados em separado. E também é um circuito adaptado para receber a
programação in-circuit, que facilitou muito o trabalho de programação.
A placa propriamente, é mostrada na Figura 6.3, que traz uma foto da placa sobre
uma bancada e pode-se visualizar, o display LCD, botões, leds, o sistema de gravação incircuit e todos os componentes do circuito elétrico e ao centro, o microcontrolador.
Nesta placa foi possível simular o programa da bancada, sem estar conectado a ela, os
leds colocados são as representações dos relês e válvulas, o potenciômetro representa a
sonda lambda, que simula um sinal de 0 à 1,0v e está conectado ao pino RA0, que foi
configurado como analógico.
34
Display LCD
Drive
SAA1027
para
motor de
passo.
Botões
Microcontrolador
PIC 16F877
Drive gravador
in-circuit
Led
simbolizando
as saídas.
Potenciômetro e o CI
amplificador operacional
Figura 6.3: Placa protótipo e o gravador de PIC.
Conforme a simulação ocorria, verificava-se o fluxograma. Este serviu de base para
que o programa tomasse a forma atual. O programa ou código-fonte pode ser visto no
Apêndice 4.
O controle da bancada não pôde ser implantado, visto deveria ser realizado um teste
prático e assim realizaria também a sintonia. A implementação de um algoritmo capaz de
realizar o controle PID no PIC foi estudado, mas sem implementação.
7. CONCLUSÃO E PROPOSTAS FUTURAS
Na conclusão deste trabalho, pode-se dizer que se atingiu o objetivo, apesar de não
utilizar o controle proposto na bancada.
35
Como resultado concreto obteve-se a bancada didática construída e devidamente
testada. Chegou-se a uma placa protótipo com os elementos necessários para adaptação na
bancada, com a simulação funcionando e, apenas faltando o teste final, ou seja um teste
prático do sistema utilizando a placa protótipo junto a bancada.
Fica aqui, a sugestão para a continuidade deste trabalho. E outras idéias surgirão,
como implementar um termopar para leitura da temperatura da amostra, utilizar o canal
serial para comunicação com um PC, re-programar para uma gama de materiais,
aumentando o range de utilização do equipamento.
Um problema encontrado foi a estratégia adotada, poderia ter começado a programar
o microcontrolador antes do sistema montado, e após montar o sistema. Isto talvez tenha
prejudicado o andamento do projeto. Porém pensou-se em obter o sistema para depois
controlá-lo.
O trabalho demonstrou que há viabilidade de se utilizar microcontroladores para
pequenas automações e é uma implementação que exige habilidades como de eletrônica,
mecânica e de programação.
O projeto deixou uma peculiaridade importante, de ser amplo o suficiente para
resgatar várias disciplinas do curso,
portanto podê-se colocar em prática um leque
ampliado de conhecimentos. E apresentar algo concreto de utilidade para os alunos que
poderão vir
36
8. REFERÊNCIA BIBLIOGRÁFICA
BRAGA, Newton C. Controlando Motores de passo. Revista Saber Eletrônica nº
314 Fevereiro de 1999. pág. 49-57.
BRASIMET Comércio e Indústria S.A. , Terminologia Utilizada Nos Tratamentos
Térmicos. Disponível em : http://www.brasimet.com.br/ttermico/termin.shtml
Acessado em: 15 de setembro 2003
BOLTON,W., Engenharia de Controle, tradução Valcere Vieira Rocha e Silva;
revisão técnica Antonio Pertence Júnior – São Paulo: Makron Books, 1995.
CHIAVERINI, Vicente. Aços e ferros fundidos. 7. ed. São Paulo: Associação
Brasileira de Metais, 1996. 599 p.
CHIAVERINI, Vicente. Tratamentos térmicos das ligas ferrosas. 2. ed. São Paulo:
Associação Brasileira de Metais, 1987. 232 p.
CHIAVERINI, Vicente. Tecnologia mecânica: processos de fabricação e
tratamento. 2. ed. São Paulo : McGraw-Hill, 1986. 3 v.
DATA SHEET, PIC16F87XA, 28/40/44-Pin Enhanced Flash Microcontrollers,
Microchip 2003.
Ultragas SA. Disponível em: www.ultragas.com.br, acessado em: 08/08/2004.
37
SILVA, André Luiz da Costa e; MEI, Paulo Roberto. Aços e ligas especiais. 2. ed.
Sumaré: Eletrometal, 1988. 528 p.
SOUZA, Davi José de, Desbravando o PIC: ampliado e atualizado para o
16F628A. 6 ed. São Paulo: Érica, 2003.
WAINER, Emilio; BRANDI, Sergio Duarte; MELLO, Fabio Decourt Homem de.
Soldagem: processos e metalurgia. São Paulo: Edgard Blucher, 1995-2004. 494
p. ISBN 85-212-0238-5.
Apêndice 1: Fluxograma do programa do microcontrolador.
INICIAR
MICROCONTROLADOR
MENSAGEM
“PROCESSO”
NÃO
B_ENTER
PRESSIONADO
INCREMEN
DECREMEN
SIM
B_INC
PRESSIONADO
MENSAGEM
“TEMPO CHAMA”
B_DEC
PRESSIONADO
SIM
Incrementa valor
de memória,
solicitado.
B_ENTER
PRESSIONADO
SIM
INCREMEN
DECREMEN
B_ENTER
PRESSIONADO
Decrementa
valor de
memória,
NÃO
B_ENTER
PRESSIONADO
SIM
SIM
RETORNA
SIM
MENSAGEM
“TEMPO
RESFRIAMENTO”
RETORNA
38
INCREMEN
DECREMEN
B_ENTER
PRESSIONADO
NÃO
SIM
MENSAGEM
“EXECUTA”
NÃO
NÃO
B_ENTER
PRESSIONADO
SIM
Continua na próxima página
B_DESL
PRESSIONADO
SIM
39
Lê sonda
Frase CENTELHA / Libera relê Centelha.
Compara o
valor da
sonda com
Frase GASES / Libera relê Gases.
SE valor
Gira motor GLP (1
SE valor
Atualiza o valor para
comparação
RETORNA
SE valor
Lê sonda
Gira motor AR (1
Lê sonda
NÃO
Valor
sonda OK?
SIM
Gira motor GLP para
fechar (1volta) / Abrir
Atualiza o valor para
comparação
Lê sonda
RETORNA
Frase CHAMA OK / Libera relê bomba
Aciona relê válvula de
Decrementa o tempo de
Desaciona o relê válvula de
Aciona relê solenóide
SE valor
Decrementa o tempo de
Gira motor GLP para
abrir (1volta) / Fecha
Atualiza o valor para
comparação
Lê sonda
Desaciona relê solenóide
água
Desaciona relê faísca
Desaciona relê gases
PROCESSO
EXECUTADO
RETORNA
REINICIA
R
SIM
INICIO
NÃO
DESLIG
40
41
Apêndice 2: Circuito elétrico.
35
42
Apêndice 3: Circuito pneumático e do gás GLP.
Circuito pneumático e do gás GLP.
43
Apêndice 4: Código-fonte do microcontrolador em assembly.
;**************************************************************************
;
;
Programa para acionamento do maçarico da têmpera superficial.
;
;
Projeto TCC- TÊMPERA SUPERFICIAL
;
;
data 26/11/2005 PAULO FERNANDO MADIUTO
;
;***************************************************************************
;
LIST p=16F877 ; PIC16F877 is the target processor
;
#INCLUDE "P16F877.INC" ; Include header file
__CONFIG _WDT_OFF & _BODEN_ON & _PWRTE_ON & _XT_OSC & _WRT_ENABLE_ON & _LVP_OFF
;********************************************************************
;
PINOS UTILIZADOS
;********************************************************************
;RA0 - SONDA LAMBDA - S_LAMBDA
;RA1 - SENSOR MOTOR 1 - S_CONT1
;RA2 - SENSOR MOTOR 2 - S_CONT2
;RA3 - RELÊ SOLENOIDE ÁGUA - RL_SAGUA
;RA4 - RELÊ BOMBA D´ÁGUA - RL_BOMBA
;RA5 - RELÊ VÁLVULA DE CONTROLE - RL_VC
;RB0 - VAZIO
;RB1 - VAZIO
;RB2 - VAZIO
;RB3 - GIRA MOTOR AR COMPR.(SAA 1027) PINO 3 - MAR_GIRO
;RB4 - PÁRA MOTOR AR COMPR.(SAA 1027) PINO 2 - MAR_STOP
;RB5 - GIRA MOTOR GLP (SAA 1027) PINO 3 - MGLP_GIRO
;RB6 - PÁRA MOTOR GLP (SAA 1027) PINO 2 - MGLP_STOP
;RB7 - TRANSISTOR PARA ONDA QUADRADA (555) - TR_MOTOR
;RC0 - BOTÃO ENTER - B_ENTER
;RC1 - BOTÃO DESLIGA/RESET - B_DESL
;RC2 - BOTÃO INCREMENTA - B_INC
;RC3 - BOTÃO DECREMENTA - B_DEC
;RC4 - RELÊ DA CENTELHA - RL_FAISCA
;RC5 - RELÊ DO SOLENOIDE DOS GASES (GLP/AR) - RL_GASES
;RC6 - VAZIO
;RC7 - VAZIO
;RD0 - DADOS PARA DISPLAY
;RD1 - DADOS PARA DISPLAY
;RD2 - DADOS PARA DISPLAY
;RD3 - DADOS PARA DISPLAY
;RD4 - DADOS PARA DISPLAY
;RD5 - DADOS PARA DISPLAY
;RD6 - DADOS PARA DISPLAY
;RD7 - DADOS PARA DISPLAY
;RE0 - ENABLE - E
;RE1 - VAZIO
;RE2 - MODO COMANDO - RS
;********************************************************************
;
CONSTANTES
;********************************************************************
LCD_CNTL equ PORTE
;PORT DE CONTROLE PARA O DISPLAY
LCD_DATA equ PORTD
;PORT DE DADOS PARA O DISPLAY
E
equ 0
;CONTROLADORES DO DISPLAY
RW
equ 1
;PORT C
RS
equ 2
T_FILTRO EQU
B'11001000'
UM
equ
B'00000001'
DOIS
equ
B'00000010'
TRES
equ
B'00000011'
;********************************************************************
;
VARIAVEIS
;********************************************************************
;
MEMÓRIA
;********************************************************************
44
CBLOCK 0x20
DELAY1
DELAY2
DELAY3
NUMLCD
FILTRO1
FILTRO2
FILTRO3
FILTRO4
FRASES
FLAGS
CONTADOR
CONT_GLP
CONT_AR
T1
T2
T3
ACCaHI res 1
ACCaLO res 1
ACCbHI res 1
ACCbLO res 1
ACCcHI res 1
ACCcLO res 1
ACCdHI res 1
ACCdLO res 1
temp
res 1
H_byte
L_byte
res 1
res 1
; guarda intervalo na rotina
; contador de caracter na mensagem
; filtros do botão ainda não utilizado
res 1
res
res
1
1
;variaveis para temporizaçao
;
;
;acumulador "a" de 16 bits usado
;na rotina de divisão
;acumulador "b" de 16 bits usado
;na rotina de divisão
;acumulador "c" de 16 bits usado
;na rotina de divisão
;acumulador "d" de 16 bits usado
;na rotina de divisão
;contador temporário usado
;na rotina de divisão
;acumulador de 16 bits usado
;para retornar o valor da rotina
;de multiplicação
;operador p/ rotina de multiplicação
;operador p/ rotina de multiplicação
;registrador de uso geral
;armazena valor na unidade da tensão
;armazena valor na dezena1 da tensão
;armazena valor na dezena2 da tensão
mulplr
res 1
mulcnd
res 1
AUX
res 1
UNIDADE res 1
DEZENA1 res 1
DEZENA2 res 1
ENDC
;****************************************************************************
;
FLAGS
;****************************************************************************
#DEFINE
#DEFINE
ST_ENTER FLAGS,0 ;STAUS BOTAO ENTER
ST_DESL
FLAGS,1 ;STAUS BOTAO DESL
;****************************************************************************
;
ENTRADAS
;****************************************************************************
#DEFINE
S_CONT1
PORTA,1
#DEFINE
S_CONT2
PORTA,2
#DEFINE
B_ENTER
PORTC,0
#DEFINE
B_DESL
PORTC,1
#DEFINE
B_INC
PORTC,2
#DEFINE
B_DEC
PORTC,3
;****************************************************************************
;
SAÍDAS
;****************************************************************************
#DEFINE
RL_FAISCA
PORTC,4 ; centelha
#DEFINE
RL_GASES PORTC,5
#DEFINE
RL_SAGUA
PORTA,3
#DEFINE
RL_BOMBA
PORTA,4
#DEFINE
RL_VC
PORTA,5 ;válvula de controle pneumático
#DEFINE
TR_MOTOR
PORTB,7 ;TRANSISTOR
#DEFINE
MGLP_STOP
PORTB,6 ; PÁRA EM NIVEL ALTO
#DEFINE
MGLP_GIRO
PORTB,5 ; SENTIDO HORÁRIO NIVEL ALTO, ANTI-HORARIO BAIXO
#DEFINE
MAR_STOP
PORTB,4 ; PÁRA EM NIVEL ALTO
#DEFINE
MAR_GIRO
PORTB,3 ; SENTIDO HORÁRIO NIVEL ALTO, ANTI-HORARIO BAIXO
;===================================== inicio do programa ====================
;**************************************************************
; VETOR DE RESET
;**************************************************************
org
0
clrf
PCLATH
goto
main
;**************************************************************
; INICIO DA INTERRUPÇÃO
;**************************************************************
; setup para reset e interrupções
org
nop
goto
PICRES
inicio
;inicio do programa na ROM
;não operando
;desvia para inicio do programa
45
org
PICINT
retfie
; setup para display e outros
setadisp:
call
t250ms
call
t250ms
call
DISPLAY_INIT
call
DISPLAY_MSG
;endereço para interrupçoes
;retorna da interrução
;aguarda display inicializar
;0,5 segundos
;inicializa display
;envia mensagem
;**************************************************************
; INICIALIZA O DISPLAY
;**************************************************************
;
DISPLAY_INIT:
MOVLW 0x038
; Comando para interface 8-bits
call SEND_CMD
MOVLW 0x00E
CALL SEND_CMD
; liga display
;
MOVLW 0x006
; incrementa display
CALL SEND_CMD
;
MOVLW 0x001
; apaga display
CALL SEND_CMD
;
retlw 0x00 ; volta
; setup para display e outros
setadisp:
call
t250ms
;aguarda display inicializar
call
t250ms
;0,5 segundos
call
DISPLAY_INIT
;inicializa display
call
DISPLAY_MSG
;envia mensagem
;**************************************************
;* Rotinas para temporização sem usar o TIMER
;* da PIC - espera ocupada
;**************************************************
;
;*******************************************************************
; Temporizador para 1s em 4MHZ
; Faz 4 vezes 250ms
;
t1000ms:
movlw
0x04
movwf
T3
t1000msa:
call
t250ms
decfsz
T3,1
goto
t1000msa
retlw
0x00
;
;*******************************************************************
; Temporizador para 250ms em 4MHZ
;
t250ms:
movlw
0xFA
;250 decimal
movwf
T1
t250msa:
movlw
0xF8
;248 decimal
movwf
T2
t250msb:
nop
decfsz
T2,1
goto
t250msb
decfsz
T1,1
goto
t250msa
retlw
0x00
;********************************************************************
;
Atraso
;********************************************************************
Atraso
movlw
B'11001000';
movwf
DELAY1
;
l1
decfsz
DELAY1,F ; decrementa, se diferente
goto
l1
; executa goto ..
return
;********************************************************************
; INICIA AS PORTAS
; SETA AS PORTAS COMO SAIDA OU ENTRADAS
;********************************************************************
;
46
InitPort
clrf
clrw
CLRF
CLRF
CLRF
CLRF
CLRF
bcf
bsf
movlw
movwf
movlw
movwf
movlw
movwf
movlw
movwf
movlw
movwf
movlw
movwf
bcf
return
STATUS
; limpa registrador de status
;
PORTA
PORTB
PORTC
PORTD
PORTE
STATUS,RP1
; seleciona
STATUS,RP0
; pagina 1
0x07
TRISA
; seta o portA como 0,1,2 como entrada e 3,4,5 como saída
0x00
TRISB
; seta o portB como saída
0x0F ;
TRISC ;seta pinos 4 5 6 7 port C saida
0x00
;
TRISD
; porta D como saída
0X00
;
TRISE
; coloca PORTA E como I/O saida
0x0E
ADCON1
; coloca portE em i/o digital - e só ra0 como analogico
STATUS,RP0
; volta a pagina 0
;**************************************************************
; main principal NOVA
;**************************************************************
main
call InitPort
; inicializa porta I/O
call DISPLAY_INIT
call MgInicLcd ; mens iniciando...
call
LongDly_1
MOVLW B'00000001'
MOVWF FRASES
;
MOVLW T_FILTRO
;
MOVWF FILTRO1
;
MOVWF FILTRO2
IMAGEM
CALL
PROC_INICIO
CALL
TEMPO_CHAMA
CALL
TEMPO_RESFRIA
CALL
EXECUTAR
CALL
MgInicLcd1
BSF
RL_FAISCA
CALL
LongDly_1
CALL
MgInicLcd2
BSF
RL_GASES
CALL
LongDly
CALL
MgInicLcd3
CALL
MOTOR_GLP_ABRE
CALL
MOTOR_AR_ABRE
CALL
LOOP:
CALL
MgInicLcd4
GOTO
RESET
LOOP:
bsf
ADCON0, GO_DONE ;colhe dado do canal analógico
espera_ad:
btfsc
goto
ADCON0, GO_DONE ;testa para ver se dado pronto
espera_ad
;dado ainda não pronto, continua teste
movf
movwf
ADRESH,W
mulplr
;carrega valor da conversão em "W"
;carrega mulplr com conteúdo de "W"
movlw
movwf
.250
mulcnd
;carrega com 250 decimal mulcnd
;para adaptar a leitura (fundo de escala 25V)
call
mpy_F
;chama rotina de multiplicação
movf
movwf
movf
movwf
H_byte,W
ACCbHI
L_byte,W
ACCbLO
clrf
movlw
movwf
ACCaHI
.255
ACCaLO
;carrega ACCa com 255 decimal (fundo de
;escala do conversor A/D
;(Conversão em 8 bits)
call
D_divF
;chama rotina de divisão
movf ACCbLO,W
call
AJUSTE_DECIMAL
;salva resutado da multiplicação
;em ACCb para ser usado na
;rotina de divisão
;pega resultado da divisão
;faz ajuste decimal
47
movlw
call
0XC9
SEND_CMD
;comando para posicionar o cursor
;na linha 2, coluna 9
movf
addlw
call
DEZENA2,W
0X30
SEND_CHAR
;converte BCD da DEZENA2 em ASCII
;envia para LCD
movf
addlw
call
DEZENA1,W
0X30
SEND_CHAR
;converte BCD da DEZENA1 em ASCII
;envia para LCD
movlw
call
','
SEND_CHAR
;escreve uma virgula no LCD
;envia para LCD
movf
addlw
call
UNIDADE,W
0X30
SEND_CHAR
;converte BCD da INIDADE em ASCII
;envia para LCD
movlw
CALL
'V'
SEND_CHAR
;escreve "V" no LCD
;envia para LCD
goto
loop
;faz eternamente
;**********************************************************************
;* Ajuste decimal
;* W [HEX] = dezena [DEC] ; unidade [DEC]
;* Conforme indicado no livro - "Conectando o PIC - Recursos avançados
;* Autores Nicolás César Lavinia e David José de Souza
;*
;* Alterada por Márcio José Soares para uso com números com duas dezenas e uma unidade
;*
;* Esta rotina recebe um argumento passado pelo acumulador "W" e retorna nas variáveis
;* DEZENA1, DEZENA2 e UNIDADE o número BCD correspondente ao parâmetro passado.
AJUSTE_DECIMAL:
movwf
clrf
clrf
clrf
AUX
UNIDADE
DEZENA1
DEZENA2
movf
btfsc
return
AUX,F
STATUS,Z ;valor a converter = 0 ?
ini_ajuste:
incf
;salva valor a converter em AUX
;limpa unidade
;limpa dezena1
;limpa dezena2
;sim - retorna
UNIDADE,F
;Não - incrementa unidade
movf
xorlw
btfss
goto
UNIDADE,W
;carrega W com valor em unidade
0X0A
STATUS,Z ;unidade = 10 decimal ?
fim_ajuste ;não
clrf
UNIDADE
;sim, limpa unidade UNIDADE
movf
xorlw
btfss
goto
clrf
incf
goto
DEZENA1,W
0x09
STATUS,Z ;
incDez1
DEZENA1
DEZENA2,F
fim_ajuste ;desvia
;carrega W com valor em dezena1
;compara com nove
DEZENA1,F
;Incrementa dezena1
incDez1:
incf
fim_ajuste:
decfsz
goto
return
AUX,F
ini_ajuste
;não, valor menor que 9. Incrementa dezena 1
;limpa dezena1
;sim, incrementa dezena2
;Fim da conversão ?
;Não - volta para continuar
;sim, final da conversão
;**************************************
;*
ROTINA DE DIVISÃO by Microchip - AN544
*
;**************************************
;****************************************************************************
;
Double Precision Division
;****************************************************************************
; Division : ACCb(16 bits) / ACCa(16 bits) -> ACCb(16 bits) with
;
Remainder in ACCc (16 bits)
; (a) Load the Denominator in location ACCaHI & ACCaLO ( 16 bits )
; (b) Load the Numerator in location ACCbHI & ACCbLO ( 16 bits )
; (c) CALL D_divF
48
; (d) The 16 bit result is in location ACCbHI & ACCbLO
; (e) The 16 bit Remainder is in locations ACCcHI & ACCcLO
;****************************************************************************
D_divF
MOVLW
MOVWF
.16
temp
;carrega contador para divisão
MOVF
MOVWF
MOVF
MOVWF
ACCbHI,W
ACCdHI
ACCbLO,W
ACCdLO
;salva ACCb em ACCd
CLRF
CLRF
ACCbHI
ACCbLO
;limpa ACCb
CLRF
CLRF
ACCcHI
ACCcLO
;limpa ACCc
DIV
BCF
RLF
RLF
RLF
RLF
MOVF
SUBWF
BTFSS
GOTO
MOVF
SUBWF
NOCHK
BTFSS
GOTO
MOVF
SUBWF
BTFSS
DECF
MOVF
SUBWF
BSF
NOGO
RLF
RLF
DECFSZ
GOTO
STATUS,C
ACCdLO,F
ACCdHI,F
ACCcLO,F
ACCcHI,F
ACCaHI,W
ACCcHI,W
STATUS,Z
NOCHK
ACCaLO,W
ACCcLO,W
;verifica se a>c
;se bit msb igual, então verifica lsb
STATUS,C
NOGO
ACCaLO,W
ACCcLO,F
STATUS,C
ACCcHI,F
ACCaHI,W
ACCcHI,F
;carry setado se c>a
;c-a. Resposta em c
STATUS,C
;shift de 1. Resultado em b
ACCbLO,F
ACCbHI,F
temp,F
DIV
;fim da divisão ?
;não - volta para DIV
RETURN
;sim, então retorna
;**************************************
;*
ROTINA DE MULTIPLICAÇÃO by Microchip - AN544
*
;**************************************
;****************************************************************************
;
8x8 Software Multiplier
;
( Fast Version : Straight Line Code )
;****************************************************************************
;
; The 16 bit result is stored in 2 bytes
; Before calling the subroutine " mpy ", the multiplier should
; be loaded in location " mulplr ", and the multiplicand in
; " mulcnd " . The 16 bit result is stored in locations
; H_byte & L_byte.
;
Performance :
;
Program Memory : 37 locations
;
# of cycles : 38
;
Scratch RAM : 0 locations
;*******************************************************************
; ********************************************
; Define a macro for adding & right shifting
; ********************************************
mult MACRO bit
BTFSC
ADDWF
RRF
RRF
ENDM
;Inicio da macro mult
mulplr,bit
H_byte,F
H_byte,F
L_byte,F
;fim da macro
49
; *****************************
; Begin Multiplier Routine
; *****************************
mpy_F
CLRF
CLRF
MOVF
BCF
mult
mult
mult
mult
mult
mult
mult
mult
H_byte
L_byte
mulcnd,W
STATUS,C
; move the multiplicand to W reg.
; Clear carry bit in the status Reg.
0
1
2
3
4
5
6
7
RETURN
; RETORNA
;****************************************************************
;SEND_CMD: envia comando contido no registro W para LCD *
;* esta rotina insere o dados completo no PORT
*
;* o dado eh transmitido pelo pinos do PORT<7:0>
*
;**************************************************************
SEND_CMD
BCF LCD_CNTL, RW ; seta o LCD em modo escrita
BCF LCD_CNTL, RS ; seta o LCD em modo comando
BCF LCD_CNTL, E ; inverte E para LCD
MOVWF LCD_DATA
; envie o dado para o LCD
BSF LCD_CNTL, E ; inverte E para LCD
NOP
BCF LCD_CNTL, E
CALL LongDly
return
;
;********************************************************************
;
LongDly_1
;*********************************************************************
LongDly_1
movlw .10
; atraso de 32 loop: alterou para 20h
movwf
DELAY3
a20 movlw .255
; atraso de 32 loop: alterou para 20h
movwf
DELAY2
; salva na RAM
l6 movlw .255
movwf
DELAY1
;
l7 decfsz
DELAY1,F ; decrementa, se diferente
goto
l7
; executa goto ..
decfsz
DELAY2,F ;
goto
l6
decfsz
DELAY3,F
GOTO
a20
return
;********************************************************************
;
LongDly
;*********************************************************************
LongDly
movlw 0xA1
; atraso de 32 loop: alterou para 20h
movwf
DELAY2
; salva na RAM
l2 movlw 0xF1
movwf
DELAY1
;
l3 decfsz
DELAY1,F ; decrementa, se diferente
goto
l3
; executa goto ..
decfsz
DELAY2,F ;
goto
l2
return
;*****************************************************************
;* SEND_CHAR - envia caracter que esta no registro W para o LCD *
;* Esta rotina envia todo caracter pelo port
*
;* O dado eh trasmitido pelo PORTB<7:0> pins
*
;*****************************************************************
;
SEND_CHAR
BCF LCD_CNTL, RW ; seta o LCD em modelo escrita
BSF LCD_CNTL, RS ; seta o LCD em modo dados
BCF LCD_CNTL, E ; inverte E para LCD
MOVWF LCD_DATA
; envie o dado para o LCD
BSF LCD_CNTL, E ; inverte E para LCD
50
NOP
BCF LCD_CNTL, E
CALL LongDly
return
;***********************************************************************
;
MgInicLcd "rotina para enviar frase inteira ao LCD"
;************************************************************************
MgInicLcd
movlw
0x80
call
SEND_CMD
movlw
0
;
LL
movwf
NUMLCD
; zera contador de dados enviados
call tabinic
; aponta para inicio da tabela
andlw 0ffh
; esta rotina retorna o dado da tabela
btfsc
STATUS,Z ; se for igual a zero e por que chegou
return
; ao fim
call
SEND_CHAR
; que esta em w
movf
NUMLCD,W
;
addlw
1
; incrementa contador de dados
goto LL
; continua até chegar ao fim da mensagem
tabinic addwf PCL,F
mens dt "Iniciando...",0
return
;***************************************************************
; Mensagem para Processo ??
;***************************************************************
MgInicLcd1
movlw
0x01
call
SEND_CMD
movlw
0xC2
call
SEND_CMD
movlw
0
;
A13
movwf
NUMLCD
; zera contador de dados enviados
call tabinic1
; aponta para inicio da tabela
andlw 0ffh
; esta rotina retorna o dado da tabela
btfsc
STATUS,Z ; se for igual a zero e por que chegou
return
; ao fim
call
SEND_CHAR
; que esta em w
movf
NUMLCD,W
;
addlw
1
; incrementa contador de dados
goto A13
; continua até chegar ao fim da mensagem
tabinic1 addwf PCL,F
mens1 dt " Processo ? ",0
RETURN
;***************************************************************
; Mensagem para Tempo Chama
;***************************************************************
MgInicLcd2
movlw
0x01
call
SEND_CMD
movlw
0x83
call
SEND_CMD
movlw
0
;
L2x
movwf
NUMLCD
; zera contador de dados enviados
call tabinic2
; aponta para inicio da tabela
andlw 0ffh
; esta rotina retorna o dado da tabela
btfsc
STATUS,Z ; se for igual a zero e por que chegou
return
; ao fim
call
SEND_CHAR
; que esta em w
movf
NUMLCD,W
;
addlw
1
; incrementa contador de dados
goto L2x
; continua até chegar ao fim da mensagem
tabinic2 addwf PCL,F
mens2 dt "Tempo Chama",0
RETURN
;***************************************************************
; Mensagem para tempo RESFRIAMENTO
;***************************************************************
MgInicLcd3
movlw
0x01
call
SEND_CMD
movlw
0x80
call
SEND_CMD
movlw
0
;
L3x
movwf
NUMLCD
; zera contador de dados enviados
call tabinic3
; aponta para inicio da tabela
andlw 0ffh
; esta rotina retorna o dado da tabela
btfsc
STATUS,Z ; se for igual a zero e por que chegou
return
; ao fim
call
SEND_CHAR
; que esta em w
movf
NUMLCD,W
;
addlw
1
; incrementa contador de dados
goto L3x
; continua até chegar ao fim da mensagem
51
tabinic3 addwf PCL,F
mens3 dt " Tempo Tempera",0
RETURN
;***************************************************************
; Mensagem para executar o processo
;***************************************************************
MgInicLcd4
movlw
0x01
call
SEND_CMD
movlw
0xC3
call
SEND_CMD
movlw
0
;
L4x
movwf
NUMLCD
; zera contador de dados enviados
call tabinic4
; aponta para inicio da tabela
andlw 0ffh
; esta rotina retorna o dado da tabela
btfsc
STATUS,Z ; se for igual a zero e por que chegou
return
; ao fim
call
SEND_CHAR
; que esta em w
movf
NUMLCD,W
;
addlw
1
; incrementa contador de dados
goto L4x
; continua até chegar ao fim da mensagem
tabinic4 addwf PCL,F
mens4 dt "EXECUTAR ?",0
RETURN
;***************************************************************
; Mensagem Centelha
;***************************************************************
MgInicLcd5
movlw
0x01
call
SEND_CMD
movlw
0xC3
call
SEND_CMD
movlw
0
;
L5x
movwf
NUMLCD
; zera contador de dados enviados
call tabinic5
; aponta para inicio da tabela
andlw 0ffh
; esta rotina retorna o dado da tabela
btfsc
STATUS,Z ; se for igual a zero e por que chegou
return
; ao fim
call
SEND_CHAR
; que esta em w
movf
NUMLCD,W
;
addlw
1
; incrementa contador de dados
goto L5x
; continua até chegar ao fim da mensagem
tabinic5 addwf PCL,F
mens5 dt "CENTELHA",0
RETURN
;***************************************************************
; Mensagem Liberar os Gases
;***************************************************************
MgLcd6
movlw
0x01
call
SEND_CMD
movlw
0x80
call
SEND_CMD
movlw
0
;
A6
movwf
NUMLCD
; zera contador de dados enviados
call tab6
; aponta para inicio da tabela
andlw 0ffh
; esta rotina retorna o dado da tabela
btfsc
STATUS,Z ; se for igual a zero e por que chegou
return
; ao fim
call
SEND_CHAR
; que esta em w
movf
NUMLCD,W
;
addlw
1
; incrementa contador de dados
goto A6
; continua até chegar ao fim da mensagem
tab6 addwf PCL,F
mens6 dt "Libera os Gases",0
RETURN
;***************************************************************
; Mensagem Liberar os Gases
;***************************************************************
MgLcd7
movlw
0x01
call
SEND_CMD
movlw
0xC0
call
SEND_CMD
movlw
0
;
A7
movwf
NUMLCD
; zera contador de dados enviados
call tab7
; aponta para inicio da tabela
andlw 0ffh
; esta rotina retorna o dado da tabela
btfsc
STATUS,Z ; se for igual a zero e por que chegou
return
; ao fim
call
SEND_CHAR
; que esta em w
movf
NUMLCD,W
;
addlw
1
; incrementa contador de dados
52
goto A7
; continua até chegar ao fim da mensagem
tab7 addwf PCL,F
mens7 dt "Motor 1 GLP",0
RETURN
;***************************************************************
; Rotina para teste dos botões: B_ENTER ^ B_DESL
;***************************************************************
B_ENTER_DESL
BTFSS
B_ENTER ; O BOTÃO ENTER ESTA PRESSIONADO?
GOTO
B_ENTER_DESL
RETURN
;***************************************************************
; Rotina RESET, SEMPRE VOLTA PARA INICIO
;***************************************************************
RESET
BTFSS
B_DESL ; O BOTÃO ENTER ESTA PRESSIONADO?
GOTO
RESET
;VAI FAZER A contagem do botão ENTER e pular de frase em frase.
BCF
RL_FAISCA
BCF
RL_GASES
BCF
RL_SAGUA
GOTO
IMAGEM ;volta o programa na primeira frase Porcesso?
;TESTE2
; BSF
ST_DESL
; BCF
RL_FAISCA
; BCF
RL_GASES
; BCF
RL_SAGUA
; GOTO
IMAGEM
;***************************************************************
; Rotina FRASE PROCESSO E MARCAR O INICIO DO PROGRAMA
;***************************************************************
PROC_INICIO
CALL
MgInicLcd1
CALL
B_ENTER_DESL
RETURN
; call
TEMPO_CHAMA
;***************************************************************
; Rotina para chamar o tempo Chama
;***************************************************************
TEMPO_CHAMA
CALL
MgInicLcd2
CALL
B_ENTER_DESL
RETURN
; call
TEMPO_RESFRIA
;***************************************************************
; Rotina para chamar o Tempo Resfriamento
;***************************************************************
TEMPO_RESFRIA
CALL
MgInicLcd3
CALL
B_ENTER_DESL
RETURN
; call
EXECUTAR
;***************************************************************
; Rotina para chamar o Tempo Resfriamento
;***************************************************************
EXECUTAR
CALL
MgInicLcd4
CALL
B_ENTER_DESL
RETURN
; GOTO
PP
;***************************************************************
; Rotina para Decrementar
;***************************************************************
DEC
BSF
MOVF
XORLW
;AÇÃO DE DECREMENTAR
;MARCA BOTÃO 1 COMO JÁ PRESSIONADO
;COLOCA CONTADOR EM W
;APLICA XOR ENTRE CONTADOR E MIN
;PARA TESTAR IGUALDADE. SE FOREM
;IGUAIS, O RESULTADO SERÁ ZERO
BTFSC
STATUS,Z ;RESULTOU EM ZERO?
GOTO
MAIN
;SIM, RETORNA SEM AFETAR CONT.
;NÃO
DECF
CONTADOR,F
;DECREMENTA O CONTADOR
GOTO
ATUALIZA;ATUALIZA O DISPLAY
;*****************************************************************
;Ação de incrementar
;*****************************************************************
INC
;AÇÃO DE INCREMENTAR
B_DEC
CONTADOR,W
MIN
53
BSF
MOVF
XORLW
BTFSC
GOTO
INCF
GOTO
B_INC
CONTADOR,W
MAX
;MARCA BOTÃO 2 COMO JÁ PRESSIONADO
;COLOCA CONTADOR EM W
;APLICA XOR ENTRE CONTADOR E MAX
;PARA TESTAR IGUALDADE. SE FOREM
;IGUAIS, O RESULTADO SERÁ ZERO
STATUS,Z ;RESULTOU EM ZERO?
MAIN
;SIM, RETORN SEM AFETAR CONT.
;NÃO
CONTADOR,F
;INCREMENTA O CONTADOR
ATUALIZA;ATUALIZA O DISPLAY
;**************************************************************
; GIRA MOTOR DO GLP PARA ABRIR
;**************************************************************
MOTOR_GLP_ABRE
BSF
BSF
BSF
CALL
HOR
GOTO
BCF
CALL
;
BCF
;
BTFSS
;
GOTO
BTFSS
GOTO
MOVLW
MGLP_STOP
MGLP_GIRO
TR_MOTOR
LongDly
BTFSS
HOR
B_ENTER
MGLP_STOP
CONT_MOT_GLP
MGLP_GIRO
B_DESL
$+1
B_DEC
$+1
VALOR_A/D
BSF
BCF
RETURN
MGLP_STOP
TR_MOTOR
;**************************************************************
; Contador para volta do motor 1 GLP
;**************************************************************
CONT_MOT_GLP
CONT1
BTFSS
GOTO
CLRF
INCF
MOVLW
XORLW
BTFSS
GOTO
RETURN
B_INC
CONT1
CONT_GLP
CONT_GLP,F
UM
CONT_GLP
STATUS,Z
CONT2
CONT2
BTFSS
GOTO
INCF
MOVLW
XORLW
BTFSS
GOTO
RETURN
B_INC
CONT2
CONT_GLP,F
DOIS
CONT_GLP
STATUS,Z
CONT3
CONT3
BTFSS
GOTO
B_INC
CONT3
RETURN
;**************************************************************
; GIRA MOTOR DE AR PARA ABRIR
;**************************************************************
MOTOR_AR_ABRE
BSF
MAR_STOP
BSF
MAR_GIRO
BSF
TR_MOTOR
CALL
LongDly
HOAR
BTFSS
B_ENTER
GOTO
HOAR
BCF
MAR_STOP
CALL
CONT_MOT_AR
;
BCF
MGLP_GIRO
;
BTFSS
B_DESL
;
GOTO
$+1
BSF
MAR_STOP
BCF
TR_MOTOR
RETURN
;**************************************************************
; Contador para volta do motor 1 AR
54
;**************************************************************
CONT_MOT_AR
CONTA1
BTFSS
GOTO
CLRF
INCF
MOVLW
XORLW
BTFSS
GOTO
RETURN
B_INC
CONTA1
CONT_AR
CONT_AR,F
UM
CONT_AR
STATUS,Z
CONTA2
CONTA2
BTFSS
GOTO
INCF
MOVLW
XORLW
BTFSS
GOTO
RETURN
B_INC
CONTA2
CONT_AR,F
DOIS
CONT_AR
STATUS,Z
CONTA3
CONTA3
BTFSS
GOTO
B_INC
CONTA3
RETURN
;******************************************************************************
; FIM DO PROGRAMA
;******************************************************************************
END
Download

Paulo Fernando Madiuto - Universidade São Francisco