386

63
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

description

Datasheet

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

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 ; 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