386
-
Upload
ivandro-pinto-ferreira -
Category
Documents
-
view
214 -
download
2
description
Transcript of 386
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 25
6.1 Os testes práticos 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 = (4.1) Volume do comburente (oxigênio) Volume do combustível (gás)
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 características das chamas.(WAINER, BRAND E MELLO
1995).
Regulagem da chama Tipo da chama Formato da chama Característica Aplicação
1,0 < A < 1,1
Neutro
Fig. 4.6a
Penacho longo.
Dardo branco,
brilhante e
arredondado.
Soldagem de aços (ou
regulagem neutra
levemente redutora).
Cobre e suas ligas
(exceto latão).
Níquel e suas ligas.
A < 1,0
Redutora
Fig. 4.6b
Penacho esverdeado.
Véu branco
circundando o dardo.
Dardo branco,
brilhante e
arredondado.
Chama menos quente.
Revestimento duro,
ferro fundido, alumínio
e chumbo.
A > 1,1
Oxidante
Fig. 4.6c
Penacho azulado ou
avermelhado, mais
curto e turbulento.
Dardo branco,
brilhante, pequeno e
pontiagudo.
Chama mais quente.
Ruído característico.
Aços em geral
(regulagem neutra
levemente oxidante).
Latão.
Bronze.
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ógico-
digitais, 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
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).
;************************************************** ************ ; INICIALIZA O DISPLAY ;************************************************** ************ ; DISPLAY_INIT: MOVLW 0x038 ; Comando para interface 8-bits call SEND_CMD MOVLW 0x00E ; liga display CALL SEND_CMD ; MOVLW 0x006 ; incrementa display CALL SEND_CMD ;
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.
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
Saída Calor
Entrada Combustível
Maçarico
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.
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:
Aquecedor Entrada Temperatura desejada
Saída Temperatura
Medição de Temperatura
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 deve-
se:
- 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.
Maçarico e a coifa com a sonda
Porta amostr
Bomba centrifuga e
Válvulas reguladoras de fluxo e os
Válvula solenóide tipo diafragma
Válvula direcional para controlar o cilindro
Válvulas simples solenóide, para os gases. Tubulação para o resfriamen
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
KPa
Vazão
(l/min)
Temperatura a 200 mm da
chama.
Oxigênio 9800 0,015
GLP 2,7 0,02 ≈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 Pressão em
KPa
Vazão
(l/min)
Temperatura a 200 mm
da chama.
Ar
comprimido 500 0,035
GLP 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:
(6.1)
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.
ZZt
1
2= Onde :
t = relação de transmissão entre engrenagens.
33
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 in-
circuit 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.
Circuito com o SAA 1027
Motor de passo
Conjunto de engrenagens
Válvula reguladora de vazão.
34
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.
Potenciômetro e o CI amplificador operacional
Led simbolizando as saídas.
Microcontrolador PIC 16F877
Drive gravador in-circuit
Botões
Display LCD Drive SAA1027 para motor de passo.
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
B_ENTER PRESSIONADO
MENSAGEM “PROCESSO”
NÃO
SIM
MENSAGEM “TEMPO CHAMA”
INCREMEN DECREMEN
B_ENTER PRESSIONADO
MENSAGEM “TEMPO
RESFRIAMENTO”
INCREMEN DECREMEN
B_INC PRESSIONADO
Incrementa valor de memória, solicitado.
B_ENTER PRESSIONADO
RETORNA
B_DEC PRESSIONADO
Decrementa valor de memória,
B_ENTER PRESSIONADO
RETORNA
SIM
NÃO
SIM
SIM SIM
SIM
38
INCREMEN DECREMEN
B_ENTER PRESSIONADO
MENSAGEM “EXECUTA”
SIM
NÃO
B_ENTER PRESSIONADO
SIM
NÃO B_DESL PRESSIONADO
SIM
NÃO
Continua na próxima página
39
Frase CENTELHA / Libera relê Centelha.
Frase GASES / Libera relê Gases.
Gira motor GLP (1
Lê sonda
Gira motor AR (1
Lê sonda
Compara o valor da sonda com
Atualiza o valor para comparação
Lê sonda
SE valor SE valor
RETORNA
Valor sonda OK?
SIM
NÃO
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
Decrementa o tempo de
Desaciona relê solenóide água
Desaciona relê faísca Desaciona relê gases
PROCESSO EXECUTADO
REINICIAR
SIM
NÃO
INICIO
SE valor
SE valor
Gira motor GLP para fechar (1volta) / Abrir
DESLIG
Atualiza o valor para comparação
Lê sonda
RETORNA
Gira motor GLP para abrir (1volta) / Fecha
Atualiza o valor para comparação
Lê sonda
RETORNA
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 ; guarda intervalo na rotina DELAY2 DELAY3 NUMLCD ; contador de caracter na mensagem FILTRO1 ; filtros do botão ainda não utilizado FILTRO2 FILTRO3 FILTRO4 FRASES FLAGS CONTADOR CONT_GLP CONT_AR T1 res 1 ;variaveis para temporizaçao T2 res 1 ; T3 res 1 ; ACCaHI res 1 ;acumulador "a" de 16 bits usado ACCaLO res 1 ;na rotina de divisão ACCbHI res 1 ;acumulador "b" de 16 bits usado ACCbLO res 1 ;na rotina de divisão ACCcHI res 1 ;acumulador "c" de 16 bits usado ACCcLO res 1 ;na rotina de divisão ACCdHI res 1 ;acumulador "d" de 16 bits usado ACCdLO res 1 ;na rotina de divisão temp res 1 ;contador temporário usado ;na rotina de divisão H_byte res 1 ;acumulador de 16 bits usado L_byte res 1 ;para retornar o valor da rotina ;de multiplicação mulplr res 1 ;operador p/ rotina de multiplicação mulcnd res 1 ;operador p/ rotina de multiplicação AUX res 1 ;registrador de uso geral UNIDADE res 1 ;armazena valor na unidade da tensão DEZENA1 res 1 ;armazena valor na dezena1 da tensão DEZENA2 res 1 ;armazena valor na dezena2 da tensão ENDC ;************************************************** ************************** ; FLAGS ;************************************************** ************************** #DEFINE ST_ENTER FLAGS,0 ;STAUS BOTAO ENTER #DEFINE 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 PICRES ;inicio do programa na ROM nop ;não operando goto inicio ;desvia para inicio do programa
45
org PICINT ;endereço para interrupçoes retfie ;retorna da interrução ; 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 ;************************************************** ************ ; INICIALIZA O DISPLAY ;************************************************** ************ ; DISPLAY_INIT: MOVLW 0x038 ; Comando para interface 8-bits call SEND_CMD MOVLW 0x00E ; liga display CALL SEND_CMD ; 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 STATUS ; limpa registrador de status clrw ; CLRF PORTA CLRF PORTB CLRF PORTC CLRF PORTD CLRF PORTE bcf STATUS,RP1 ; seleciona bsf STATUS,RP0 ; pagina 1 movlw 0x07 movwf TRISA ; seta o portA como 0,1,2 como entrada e 3,4,5 como saída movlw 0x00 movwf TRISB ; seta o portB como saída movlw 0x0F ; movwf TRISC ;seta pinos 4 5 6 7 port C saida movlw 0x00 ; movwf TRISD ; porta D como saída movlw 0X00 ; movwf TRISE ; coloca PORTA E como I/O saida movlw 0x0E movwf ADCON1 ; coloca portE em i/o digital - e só ra0 como analogico bcf STATUS,RP0 ; volta a pagina 0 return ;************************************************** ************ ; 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 ADCON0, GO_DONE ;testa para ver se dado pronto goto espera_ad ;dado ainda não pronto, continua teste movf ADRESH,W ;carrega valor da conversão em "W" movwf mulplr ;carrega mulplr com conteúdo de "W" movlw .250 ;carrega com 250 decimal mulcnd movwf mulcnd ;para adaptar a leitura (fundo de escala 25V) call mpy_F ;chama rotina de multiplicação movf H_byte,W movwf ACCbHI ;salva resutado da multiplicação movf L_byte,W ;em ACCb para ser usado na movwf ACCbLO ;rotina de divisão clrf ACCaHI ;carrega ACCa com 255 decimal (fundo de movlw .255 ;escala do conversor A/D movwf ACCaLO ;(Conversão em 8 bits) call D_divF ;chama rotina de divisão movf ACCbLO,W ;pega resultado da divisão call AJUSTE_DECIMAL ;faz ajuste decimal
47
movlw 0XC9 ;comando para posicionar o cursor call SEND_CMD ;na linha 2, coluna 9 movf DEZENA2,W addlw 0X30 ;converte BCD da DEZENA2 em ASCII call SEND_CHAR ;envia para LCD movf DEZENA1,W addlw 0X30 ;converte BCD da DEZENA1 em ASCII call SEND_CHAR ;envia para LCD movlw ',' ;escreve uma virgula no LCD call SEND_CHAR ;envia para LCD movf UNIDADE,W addlw 0X30 ;converte BCD da INIDADE em ASCII call SEND_CHAR ;envia para LCD movlw 'V' ;escreve "V" no LCD CALL SEND_CHAR ;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 AUX ;salva valor a converter em AUX clrf UNIDADE ;limpa unidade clrf DEZENA1 ;limpa dezena1 clrf DEZENA2 ;limpa dezena2 movf AUX,F btfsc STATUS,Z ;valor a converter = 0 ? return ;sim - retorna ini_ajuste: incf UNIDADE,F ;Não - incrementa unidade movf UNIDADE,W ;carrega W com valor em unidade xorlw 0X0A btfss STATUS,Z ;unidade = 10 decimal ? goto fim_ajuste ;não clrf UNIDADE ;sim, limpa unidade UNIDADE movf DEZENA1,W ;carrega W com valor em dezena1 xorlw 0x09 ;compara com nove btfss STATUS,Z ; goto incDez1 ;não, valor menor que 9. Incrementa dezena 1 clrf DEZENA1 ;limpa dezena1 incf DEZENA2,F ;sim, incrementa dezena2 goto fim_ajuste ;desvia incDez1: incf DEZENA1,F ;Incrementa dezena1 fim_ajuste: decfsz AUX,F ;Fim da conversão ? goto ini_ajuste ;Não - volta para continuar return ;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 .16 MOVWF temp ;carrega contador para divisão MOVF ACCbHI,W MOVWF ACCdHI MOVF ACCbLO,W MOVWF ACCdLO ;salva ACCb em ACCd CLRF ACCbHI CLRF ACCbLO ;limpa ACCb CLRF ACCcHI CLRF ACCcLO ;limpa ACCc DIV BCF STATUS,C RLF ACCdLO,F RLF ACCdHI,F RLF ACCcLO,F RLF ACCcHI,F MOVF ACCaHI,W SUBWF ACCcHI,W ;verifica se a>c BTFSS STATUS,Z GOTO NOCHK MOVF ACCaLO,W SUBWF ACCcLO,W ;se bit msb igual, então verifica lsb NOCHK BTFSS STATUS,C ;carry setado se c>a GOTO NOGO MOVF ACCaLO,W ;c-a. Resposta em c SUBWF ACCcLO,F BTFSS STATUS,C DECF ACCcHI,F MOVF ACCaHI,W SUBWF ACCcHI,F BSF STATUS,C ;shift de 1. Resultado em b NOGO RLF ACCbLO,F RLF ACCbHI,F DECFSZ temp,F ;fim da divisão ? GOTO DIV ;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 ;Inicio da macro mult BTFSC mulplr,bit ADDWF H_byte,F RRF H_byte,F RRF L_byte,F ENDM ;fim da macro
49
; ***************************** ; Begin Multiplier Routine ; ***************************** mpy_F CLRF H_byte CLRF L_byte MOVF mulcnd,W ; move the multiplicand to W reg. BCF STATUS,C ; Clear carry bit in the status Reg. mult 0 mult 1 mult 2 mult 3 mult 4 mult 5 mult 6 mult 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 ;AÇÃO DE DECREMENTAR BSF B_DEC ;MARCA BOTÃO 1 COMO JÁ PRESSIONADO MOVF CONTADOR,W ;COLOCA CONTADOR EM W XORLW MIN ;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
53
BSF B_INC ;MARCA BOTÃO 2 COMO JÁ PRESSIONADO MOVF CONTADOR,W ;COLOCA CONTADOR EM W XORLW MAX ;APLICA XOR ENTRE CONTADOR E MAX ;PARA TESTAR IGUALDADE. SE FOREM ;IGUAIS, O RESULTADO SERÁ ZERO BTFSC STATUS,Z ;RESULTOU EM ZERO? GOTO MAIN ;SIM, RETORN SEM AFETAR CONT. ;NÃO INCF CONTADOR,F ;INCREMENTA O CONTADOR GOTO ATUALIZA;ATUALIZA O DISPLAY ;************************************************** ************ ; GIRA MOTOR DO GLP PARA ABRIR ;************************************************** ************ MOTOR_GLP_ABRE BSF MGLP_STOP BSF MGLP_GIRO BSF TR_MOTOR CALL LongDly HOR BTFSS B_ENTER GOTO HOR BCF MGLP_STOP CALL CONT_MOT_GLP ; BCF MGLP_GIRO ; BTFSS B_DESL ; GOTO $+1 BTFSS B_DEC GOTO $+1 MOVLW VALOR_A/D BSF MGLP_STOP BCF TR_MOTOR RETURN ;************************************************** ************ ; Contador para volta do motor 1 GLP ;************************************************** ************ CONT_MOT_GLP CONT1 BTFSS B_INC GOTO CONT1 CLRF CONT_GLP INCF CONT_GLP,F MOVLW UM XORLW CONT_GLP BTFSS STATUS,Z GOTO CONT2 RETURN CONT2 BTFSS B_INC GOTO CONT2 INCF CONT_GLP,F MOVLW DOIS XORLW CONT_GLP BTFSS STATUS,Z GOTO CONT3 RETURN CONT3 BTFSS B_INC GOTO 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 B_INC GOTO CONTA1 CLRF CONT_AR INCF CONT_AR,F MOVLW UM XORLW CONT_AR BTFSS STATUS,Z GOTO CONTA2 RETURN CONTA2 BTFSS B_INC GOTO CONTA2 INCF CONT_AR,F MOVLW DOIS XORLW CONT_AR BTFSS STATUS,Z GOTO CONTA3 RETURN CONTA3 BTFSS B_INC GOTO CONTA3 RETURN ;************************************************** **************************** ; FIM DO PROGRAMA ;************************************************** **************************** END