SlideShare uma empresa Scribd logo
UNIVERSIDADE PAULISTA – UNIP
RAPHAEL FERNANDES RIBEIRO
PROTÓTIPO DE MÁQUINA DE REFRIGERANTES
BASEADA EM MICROCONTROLADOR
MICROCHIP PIC16F876A
SÃO JOSÉ DO RIO PRETO
2011
RAPHAEL FERNANDES RIBEIRO
PROTÓTIPO DE MÁQUINA DE REFRIGERANTES
BASEADA EM MICROCONTROLADOR
MICROCHIP PIC16F876A
Trabalho de conclusão de curso
apresentado ao Instituto de
Ciências Exatas e Tecnologia
(ICET) como parte dos requisitos
para obtenção do título de bacharel
em Ciência da Computação, sob a
orientação do Prof. MsC. Mário
Henrique de Souza Pardo e co-
orientação do Prof. Sandro de F.
Ottoboni.
SÃO JOSÉ DO RIO PRETO
2011
RAPHAEL FERNANDES RIBEIRO
PROTÓTIPO DE MÁQUINA DE REFRIGERANTES BASEADA EM
MICROCONTROLADOR MICROCHIP PIC 16F876A
Trabalho de conclusão de curso apresentado ao Instituto de Ciências Exatas e Tecnologia
(ICET) como parte dos requisitos para obtenção do título de bacharel em Ciência da
Computação, sob a orientação do Prof. MsC. Mário Henrique de Souza Pardo e co-orientação
do Prof. Sandro de F. Ottoboni.
Banca Examinadora:
___________________________
Prof. Msc. Luciano Cássio Lulio
Universidade Paulista
___________________________________
Prof. Msc. Mário Henrique de Souza Pardo
Universidade Paulista
_____________________________
Prof. Esp. Thiago Luiz Parrillo Rizzo
Universidade Paulista
São José do Rio Preto, 01 de dezembro de 2011.
Aos meus pais, por acreditarem na minha
capacidade, pela dedicação, por
oportunizarem que se realizasse meu sonho,
pelo amor que me foi dedicado, meu
alimento, porto seguro, meu amparo, a vocês,
dedico este trabalho.
AGRADECIMENTOS
Primeiramente a DEUS, por sempre manter-me no caminho correto e por ter sido o
melhor conselheiro.
Aos meus pais Jarbas Jesus Ribeiro e Diva Fernandes de Jesus Ribeiro, que são a razão
ímpar da minha vida e que ao meu lado sempre estiveram juntos em minhas decisões, nos
momentos difíceis e também de muita alegria, me apoiando sempre.
Aos meus irmãos Elias Fernandes Neto e Fernanda Laís Ribeiro, de quem sinto um
grande orgulho, na distância ou próximos, sempre presentes.
A minha namorada, Patrícia Calvo de Roco, por me apoiar e trazer muitas vezes a
tranquilidade de que eu precisava, incentivando nos momentos que necessitei, deixo minha
eterna gratidão.
Ao meu orientador Mário Henrique de Souza Pardo, por acreditar que seria possível
construir este sonho, depositando sua confiança, também pela orientação e dedicação, até
mesmo aos finais de semana. Agradeço ainda por agregar muito a minha formação, inclusive
pessoal, pois, sem a sua pessoa, não teria sido a mesma.
Ao meu co-orientador Sandro de F. Ottoboni, por contribuir de forma ímpar com dicas
valiosas, pela doação de um sensor para a construção do protótipo físico, além de
componentes eletrônicos e de uma protoboard, equipamentos estes de importância vital para a
construção do protótipo físico. Também pelo desprendimento do seu tempo, fundamental para
o andamento do projeto.
Ao professor Edes Costa, por ajudar no desenvolvimento do trabalho escrito,
fundamentando sua construção.
Ao amigo Rogério Avelino, por contribuir com informações relevantes para a simulação
do projeto.
E a todos que ajudaram vencendo a distância, presente, em orações para que as portas
sempre se abrissem no momento oportuno.
Raphael Fernandes Ribeiro
RESUMO
O presente trabalho trata de um protótipo de uma máquina de refrigerantes que terá suas
funções automatizadas por um sistema microcontrolado com a utilização de um
microcontrolador Microchip PIC16F876A. As funções realizadas pelo microcontrolador serão
desenvolvidas em linguagem de programação C. Serão providos benefícios que são comuns
para outros sistemas automatizados, como por exemplo, a agilidade em procedimentos que
antes eram executados de forma manual, aumento de segurança para o homem diante à
atividades de periculosidade e ganho de precisão quanto a medições como vazão de líquido. E
estes fatores estão diretamente ligados ao aumento da produtividade e da qualidade em um
ambiente de negócios, que por consequência gera maior rentabilidade e lucratividade. A
construção do protótipo é o principal objetivo deste trabalho, todavia, é importante salientar
que é consequência natural, prover a convergência entre as áreas de Ciências da Computação,
Engenharia Eletrônica e Automação Industrial, permitindo assim que a combinação de
conhecimentos de área distintas permitam a implementação de um projeto multidisciplinar
como o presente. Para a construção do protótipo, primeiramente foi realizada uma revisão
bibliográfica, também foram selecionadas empresas que possuíssem os insumos necessários
para que se pudesse construir o protótipo da máquina de refrigerantes.
Palavras-chave: sistema microcontrolado, microcontrolador, Microchip, PIC16F876A, C,
agilidade, insumos, protótipo, automação industrial.
ABSTRACT
The present work is a prototype of a vending machine that will have its functions
automated by a system microcontroller using a Microchip PIC16F876A. The functions
performed by the microcontroller will be developed in C programming language. Will be
provided benefits that are common to other automated systems, such as agility in procedures
that were previously performed manually, increasing security for man on the activities of
dangerousness and gain measurements as accurate as the flow of liquid. And these factors are
directly linked to increasing productivity and quality in a business environment, which
consequently leads to greater profitability and profitability. The construction of the prototype
is the main objective of this work, however, it is important to stress that it is a natural
consequence, to provide convergence between the areas of Computer Science, Electronic
Engineering and Industrial Automation, allowing the combination of distinct areas of
expertise allow implementation of a multidisciplinary project such as this. For the prototype,
was first conducted a literature review, were also selected companies that possess the
necessary inputs so that they could build the prototype of the vending machine.
Keywords: system microcontroller, microcontroller, Microchip, PIC16F876A, C, agility,
inputs, prototyping, industrial automation.
LISTA DE FIGURAS
Figura 01 – Pipelines duplos de cinco estágios........................................................................15
Figura 02 – LCD 16x2..............................................................................................................19
Figura 03 – Instrução clear display ..........................................................................................20
Figura 04 – Símbolo diodo.......................................................................................................22
Figura 05 – Exemplo utilização de diodo.................................................................................23
Figura 06 – Comunicação padrão EIA RS-232C .....................................................................25
Figura 07 – Ciclo de etapas de desenvolvimento .....................................................................32
Figura 08 – Funcionamento de Sensores Fotoelétricos............................................................36
Figura 09 – Especificações moto bomba d’agua Sarlo S180 ...................................................36
Figura 10 – Simulação do Protótipo físico da máquina de refrigerantes..................................38
Figura 11 – Fluxograma do código-fonte.................................................................................40
Figura 12 – Esquema do protótipo da máquina de refrigerantes..............................................46
LISTA DE ABREVIATURAS E SIGLAS
ATX Advanced Technology Extended.
AC Alternating Current (Corrente Alternada).
A Anodo ou Ânodo, pólo positivo (+) de uma fonte eletrolítica.
ASCII American Standard Code for Information Interchange (Código Padrão
Americano para o Intercâmbio de Informação), codificação de caracteres de
oito bits baseada no alfabeto inglês.
API Application Programming Interface (ou Interface de Programação de
Aplicações) é um conjunto de rotinas e padrões estabelecidos por um software.
CsS Sulfeto de Cádmio.
CISC Complex Instruction Set Computer (Computador com um Conjunto Complexo
de Instruções), arquitetura de computador.
CPU Central Processing Unit (Unidade central de processamento).
CHIP Circuito eletrônico miniaturizado.
C ou K Catodo, pólo negativo (-) de uma fonte eletrolítica.
Cm Centímetro.
DC Direct Current (Corrente Contínua).
DTE Data Terminal Equipament (Equipamento de terminais de dados).
DCE Data Circuit-terminating Equipment (Equipamento de terminação de circuito
de dados ).
dB Decibéis, unidade de nível sonoro.
E/S Entrada/saída.
EIA Eletronic Industries Association (Aliança das Indústrias Eletrônicas).
FCC Chicote Modular.
GND Ground (Terra).
Hz Hertz.
HDD Hard Disk Drive (Dispositivo de armazenamento).
I/O Input/output (Entrada/saída).
IEEE Instituto de Engenheiros Eletricistas e Eletrônicos.
IDE Integrated Development Environment (Ambiente Integrado para
Desenvolvimento).
JNI Java Native Interface.
JVM Java Virtual Machine (Maquina Virtual Java).
KB Kilobyte.
Kg Kilograma.
KpF Medida de capacitância, submúltiplo, Kilo-picoFarad.
KC21 Módulo Bluetooth.
LCD Liquid Crystal Display (Display de Cristal Líquido).
LDR Líght Dependent Resistor.
LED Light-emitting diode (Diodo Emissor de Luz).
MIPS Millions of Instructions Per Second (Milhões de Instruções por Segundo).
MPLAB Ambiente Integrado para Desenvolvimento.
mm Milimetro.
ml Mililitro.
m Metro.
nF Medida de capacitância, submúltiplo, nanoFarad.
PWM Pulse Width Modulation (Modução por largura de Puslo).
pF Medida de capacitância, submúltiplo, picoFarad.
PVC Cloreto de Polivinila.
RISC Reduced Instruction Set Computer (Computador com Conjunto Reduzido de
Instruções).
RS-232 Padrão para troca serial de dados binários.
RC5 Receptor de infravermelho.
SATA Serial Advanced Technology Attachment.
ULA Unidade lógica e aritmética.
Vss Negatio, notação de tensão.
VSM Virtual System Modelling.
Vdd Positivo, notação de tensão.
V Volts.
VOM Volt-Ohm-Miliamperímetro.
VCA Voltagem Currente Alternada.
VDC Voltage Direct Current.
VAC Voltage Alternating Current.
W Watts.
LISTA DE SÍMBOLOS
µF Medida de capacitância, submúltiplo, micro-Farad.
º F Escala de temperatura, grau Fahrenheit.
º C Escala de temperatura, grau Celsius.
Ω Unidade de medida da resistência elétrica, Ohm.
SUMÁRIO
1 INTRODUÇÃO ..........................................................................................................11
1.1 OBJETIVO .............................................................................................................11
1.2 JUSTIFICATIVA ...................................................................................................11
1.3 METODOLOGIA...................................................................................................12
1.4 CRONOGRAMA DE PROJETO...........................................................................12
1.5 ESTRUTURA DO TRABALHO ...........................................................................13
2 REVISÃO BIBLIOGRÁFICA..................................................................................13
2.1 ARQUITETURA DE COMPUTADORES CISC X RISC ....................................13
2.2 MICROCONTROLADORES ................................................................................15
2.2.1 Intel 8051 ...................................................................................................16
2.2.2 Microchips PIC.........................................................................................17
2.3 COMPONENTES ELETRÔNICOS DO SISTEMA MICROCONTROLADO....18
2.3.1 Display LCD..............................................................................................18
2.3.2 Capacitores................................................................................................20
2.3.3 Resistores...................................................................................................21
2.3.4 Diodos ........................................................................................................22
2.3.5 Potenciômetro ...........................................................................................23
2.3.6 LEDs ..........................................................................................................24
2.3.7 Porta de comunicação RS-232.................................................................24
2.4 MULTIMETROS PARA MEDIÇÃO DE SINAIS................................................26
2.5 LINGUAGEM ASSEMBLY DE MICROCONTROLADORES ..........................26
2.5.1 Microcontroladores Microchip Família PIC16F...................................28
2.6 PROGRAMAÇÃO DE MICROCONTROLADORES EM ALTO NÍVEL ..........28
2.7 AMBIENTE PARA PROGRAMAÇÃO................................................................30
2.7.1 Eclipse IDE................................................................................................31
2.7.2 MpLab .......................................................................................................31
2.7.3 PIC C Compiler ........................................................................................32
2.7.4 ISIS Schematic Capture...........................................................................32
2.8 SOFTWARE PARA GRAVAÇÃO E ERASE DE MICROCONTROLADORES
FAMÍLIA PIC ........................................................................................................33
3 DESENVOLVIMENTO DO PROJETO..................................................................33
3.1 COMPONENTES...................................................................................................34
3.1.1 Kit Cerne Bluetooth .................................................................................34
3.1.2 Multímetro ................................................................................................34
3.1.3 Sensor de nível ..........................................................................................35
3.1.4 Sensor Fotoelétrico ...................................................................................35
3.1.5 Bomba submersa ......................................................................................36
3.1.6 Reservatório ..............................................................................................37
3.1.7 Fonte de alimentação ATX ......................................................................37
3.2 SIMULAÇÃO DO AMBIENTE DO PROTÓTIPO DA MÁQUINA DE
REFRIGERANTES ................................................................................................37
3.2.1 Proteus Design Suite.................................................................................38
3.2.2 ISIS Schematic Capture...........................................................................38
3.2.3 VSM (Virtual System Modelling)............................................................39
3.3 IMPLEMENTAÇÃO DO CÓDIGO FONTE ........................................................39
3.4 ARQUITETURA DE PROTÓTIPO DA MÁQUINA DE REFRIGERANTES....44
3.4.1 Funcionamento .........................................................................................46
4 RESULTADOS E DISCUSSÃO ................................................................................4
4.1 TESTES COM O PROTÓTIPO SIMULADO.......................................................48
4.2 TESTES COM O PROTÓTIPO REAL..................................................................49
5 CONCLUSÕES ..........................................................................................................51
6 TRABALHOS FUTUROS ........................................................................................53
REFERÊNCIAS.................................................................................................................55
APÊNDICE A – PLANILHA DE CUSTOS......................................................................58
APÊNDICE B – DATASHEET PIC16F87XA..................................................................59
APÊNDICE C – ESQUEMA ELÉTRICO DA MATRIZ DE TESTES............................64
APÊNDICE D – LAYOUT DA MATRIZ DE TESTES...................................................65
APÊNDICE E – CÓDIGO-FONTE COMPLETO............................................................66
APÊNDICE F – MANUAL BOMBA SARLO.................................................................76
APÊNDICE G – DATASHEET SENSOR LL101101......................................................80
11
1 INTRODUÇÃO
A automação por meio de microcontroladores pode ser utilizada para automatizar
máquinas de refrigerantes. Iniciou-se a partir dai o desejo de se construir um protótipo de uma
máquina de refrigerantes que seja automatizada por um microcontrolador que executa um
software para auxiliar esta tarefa.
A utilização da automação por meio de microcontroladores tem sido algo comum para o
homem, pois, traz consigo muitos benefícios, tais como agilidade em procedimentos, maior
segurança em atividades manuais, e também uma maior precisão pela utilização de
procedimentos mecânicos e realizados por máquinas. E estes fatores em um mercado
globalizado, é de vital importância para o sucesso de um negócio, assim como a sua
rentabilidade.
Para que estes conhecimentos pudessem fortalecer o desenvolvimento do presente
trabalho, julgou-se por ser necessário o estudo de uma vasta bibliografia com fontes
renomadas na área, além da aquisição de insumos para o desenvolvimento prático do
protótipo do projeto.
1.1 OBJETIVO
Desenvolver um protótipo físico de uma máquina de refrigerantes utilizando como base
uma matriz de testes com o microcontrolador encontrado em Microchip (2011) modelo
Microchip PIC16F876A e outros componentes. Desenvolver um protótipo em software que
represent o protótipo físico da máquina de refrigerantes utilizando a linguagem de
programação C.
1.2 JUSTIFICATIVA
Os microcontroladores estão hoje presentes em todas as áreas e o ser humano se utiliza
de automação, seja ela industrial, doméstica, automotiva, aeronáutica, agropecuária,
agricultura, telecomunicações entre tantas outras para que as suas atividades sejam executadas
12
com maior agilidade, precisão e segurança, garantindo mais rentabilidade. A Ciência de
Computação aliada à Engenharia são as grandes áreas que provisionam tecnologia para o
mundo moderno, logo, projetos que envolvam microcontroladores são importantes para a
continuidade da onda científica que investiga essa temática.
1.3 METODOLOGIA
Revisão bibliográfica dos principais tópicos que envolvem a temática envolvida com a
máquina de refrigerantes proposta, aquisição dos insumos inerentes ao projeto, tais como:
matriz de testes da CERNE-TEC com microcontrolador Microchip PIC16F876A, moto
bomba com potência de vazão adequada, tanques para reservatório de líquido, sensores de
nível e de presença, fonte de alimentação ATX, multímetro e componentes eletrônicos (diodo,
transistor, relé e resistores). Elaboração de programa-fonte em linguagem de programação C
para operacionalizar todos os componentes ligados ao microcontrolador. Testes do software e
do esquema físico montado. Avaliação de desempenho da máquina além de testes de vazão.
1.4 CRONOGRAMA DE PROJETO
Fases da Pesquisa
(Atividades)
2011
Jan
Fev
Mar
Abr
Mai
Jun
Jul
Ago
Set
Out
Nov
Dez
Escolha do tema e
formulação do problema
Revisão Bibliográfica
Aquisição de Insumos
Elaboração do Programa
Testes de Software
Avaliação de
desempenho do protótipo
Redação da monografia
13
1.5 ESTRUTURA DO TRABALHO
A seguir, será explicado como os assuntos se dividem nos capítulos.
No capítulo 1, é apresentada à introdução referente ao presente trabalho, bem como os
objetivos, a justificativa, a metodologia e o cronograma.
No capitulo 2, a revisão bibliográfica é fornecida, assim como os elementos de
eletrônica para microcontroladores, aparelhos multímetros para medição de sinais, linguagem
assembly de microcontroladores, linguagens de programação em alto nível para
microcontroladores, IDE para programação e softwares para gravação e regravação de
microcontroladores.
No capitulo 3, as informações do desenvolvimento do projeto são apresentadas, também
os componentes e a arquitetura de protótipo da máquina de refrigerantes.
No capitulo 4, é detalhado os resultados obtidos por meio desta pesquisa, assim como a
sua discussão.
No capitulo 5, são apresentadas às conclusões.
Por último, no capitulo 6 são fornecidas sugestões para trabalhos futuros, referências
das obras utilizadas e anexos.
2 REVISÃO BIBLIOGRÁFICA
Neste capítulo são abordados os tópicos de revisão bibliográfica fundamentais para a
execução do presente trabalho.
2.1 ARQUITETURAS DE COMPUTADOR CISC X RISC
Segundo Tanenbaum (2006), no decorrer do final da década de 1970, pouco se pensava
em projetos de máquinas simples. O que existia era uma arquitetura denominada CISC
(Complex Instruction Set Computer) que significa: Computador com conjunto de instruções
14
complexo. Esse tipo de arquitetura ficou então conhecida, a partir dai, por ser capaz de dar a
possibilidade de construir processadores que executassem centenas de instruções diferentes e
fossem interpretadas por microprogramas. Um bom exemplo de instrução complexa seria uma
instrução de ponto flutuante.
Os computadores existentes dessa época tinham disponíveis entre 200 e 300 instruções
em média. Porém, em 1980, começava a surgir um novo conceito de arquitetura
computacional, o RISC (Reduced Instruction Set Computer – Computador com conjunto de
instruções reduzido), por meio de um grupo que fora liderado por David Petterson e Carlo
Séquin. Esse nova arquitetura chamou a atenção pelo pequeno número de instruções que
trazia consigo, em média, 50. As instruções nesta arquitetura são executadas diretamente pelo
hardware. Por exemplo, por meio de dois registradores que são combinados e trazem de volta
um resultado que é então armazenado de volta em um registrador.
A arquitetura de computadores com conjunto reduzido de instruções (RISC) foi uma das
mais significativas inovações da tecnologia segundo Stallings (2003).
Porém, após um grande arrebatamento por máquinas de arquitetura RISC, constatou-se
que estes processadores após a junção de características CISC, poderiam ter benefícios, assim
como os processadores CISC após a inclusão de características RISC, também poderiam ter
melhorias.
Assim, após uma grande quantia em dinheiro investida pela empresa Intel, ela consegue
desenvolver um processador (486) com essas duas características. Dá-se início a um tipo de
abordagem denominada híbrida, que na verdade não é tão veloz quanto ao RISC puro, porém,
é um resultado global e bastante competitivo, além de permitir que sejam executados sem
nenhum tipo de alteração, os softwares antigos (TANENBAUM, 2006).
Alguns padrões de projetos surgiram para a construção de computadores modernos
então, após duas décadas.
A execução de instruções realizadas diretamente pelo hardware proporciona um ganho
alto de desempenho quanto à velocidade em relação à maioria das instruções, sendo então
eliminado um nível de interpretação referente às microinstruções.
Uma maximização da taxa de instruções permite um alto ganho de desempenho quando
se tenta inicializar o máximo de instruções por segundo. Conhecido como MIPS (Milhões de
15
instruções por segundo), este acrônimo permite que uma melhoria no desempenho seja
realizada à partir do paralelismo de instruções.
As instruções por sua vez devem possuir um tamanho fixo, além de um reduzido
número de campos e serem regulares, para que se permita uma fácil decodificação.
Para somar com esses fatores importante de desempenho computacional, somente
instruções de STORE e LOAD devem fazer referência a memória. Isso faz com que as
operações se subdividam em etapas que são separadas, o que representa então maior
agilidade.
Um número grande de registradores também é necessário, assim com o paralelismo de
instruções. Logo, se torna possível que uma instrução seja dividida e armazenada
antecipadamente ao processamento, pela CPU, em registradores para então serem executadas
em paralelo.
O processador Pentium original seguia padrões semelhantes a estes como na figura 1.
Figura 1 – Pipelines Duplos de Cinco Estágios.
Fonte: Tanenbaum, 2006, p. 36.1
2.2 MICROCONTROLADORES
Também conhecidos como computadores embarcados, os microcontroladores segundo
Tanenbaum (2006), são responsáveis por gerir os dispositivos e também manipular a interface
que existe de usuário. Estão presentes em uma vasta gama de aparelhos com diferentes
propósitos, comerciais ou científicos como por exemplo o telefone celular, o scanner, o raio x,
misseis teleguiados entre outros.
1
TANENBAUM, A. S. Organização Estruturada de Computadores. 5. ed. Rio de Janeiro: Pearson
Education, 2006.
16
Ainda segundo ele, “Dentro de alguns anos, praticamente tudo o que funciona por
energia elétrica ou baterias conterá um microcontrolador”.
De acordo com Martins (2005), os microcontroladores também necessitam de uma
grande quantia de outros componentes, e seu surgimento se deu por meio da arquitetura de um
microprocessador e seus periféricos, que seria equivalente a todo um sistema que possuísse
um microprocessador e periféricos.
Por caracterizar-se em ter um baixo custo de hardware e necessitar de reduzido espaço
físico, os microcontroladores após a década de 70, fizeram com que os avanços da tecnologia
pudessem criar uma relação custo/benefício vantajosa quanto à soluções que necessitem de
processamento.
Os microcontroladores tem a característica de permitir que programas sejam gravados
internamente e para que isso aconteça, é necessário que se reúna toda a lógica de operações e
se estruture em forma de programa como podemos ver em Souza (2010). Essa lógica de
operações nada mais é do que a forma com que o sistema baseia-se para executar as ações
lógicas, que dependem do estado em que se encontram os periféricos de E/S como: LEDs,
relês, resistências, botões, LCD, sensores diversos e muitos outros.
Após essa gravação, o programa interno então será executado toda vez que o
microcontrolador for alimentado.
Quanto a execução das operações lógicas e matemáticas, a Unidade Lógica Aritmética
(ULA) é quem possui a função de executa-las, e para que se tenha uma maior capacidade no
processamento de informações, mais poderosa deve ser a ULA do componente.
Porém não é apenas da ULA que é constituído um microcontrolador. Afinal, o que o
difere de um microprocessador que apesar de possuir uma ULA muito mais poderosa, é que o
microcontrolador prove em uma única pastilha de silício encapsulada, uma memória de
programa, comunicação serial, timers, memória de dados, portas de entrada e/ou saída
paralela, contadores, PWMs, conversores analógico-digitais, etc.
2.2.1 Intel 8051
17
Segundo Tanenbaum (2006), foi lançado pela Intel Corporation em 1980 o chip 8051
continha cerca de 60 mil transistores, uma CPU muito rápida (comparado ao seu antecessor
8748), 4KB de memória exclusivos para leitura (e mesmo que não fosse suficiente poderia ser
estendido para 64K por meio de um barramento), 128 bytes de memória para leitura/escrita,
linhas de E/S, uma porta serial e temporizadores de 16 bits. O que o fazia se diferenciar dos
demais CPUs de 8 bits era apresentar 32 linhas seriais de E/S que se dispunham em 4 portas
de forma organizada. Essas linhas ficavam sob controle do programa e podiam ser lidas ou
escritas, além de serem bidirecionais.
Este chip bastante popular dentro da denominada família MCS-51 (8031, 8051, 8751,
8032, 8052 e 8752) se tornou um sucesso pelo seu custo de fabricação ser tão reduzido
quando comparado aos chips de 16 e 32 bits, cerca de 30 vezes menor. Também pelo tempo
que existe desde sua criação, e portanto pode-se encontrar uma vasta quantidade de softwares,
simuladores, compiladores e assemblers para ele.
2.2.2 Microchips PIC
Os microcontroladores PIC se diferem quanto ao seu tipo de estrutura interna de
máquina da grande parte dos demais microcontroladores, como aponta Souza (2010), por se
enquadrar no tipo Harvard, enquanto os demais microcontroladores tradicionais que são mais
comumente encontrados no mercado apresentam um tipo de arquitetura Von-Neumann, como
o modelo 8051 da família MCS-51 da Intel.
A maneira como o microcontrolador faz com que os dados e o programa sejam
processados, é a primordial diferença entre estes dois tipos de arquiteturas.
A arquitetura Harvard possui um barramento de instruções e outro de dados e no caso
dos microcontroladores PIC, existem barramentos de instruções que podem ser de 12, 14 ou
16 bits e quanto ao barramento de dados tem seu valor fixo em 8 bits. E isso permite que o
processamento seja agilizado, pois, ao mesmo tempo em que uma instrução seja trazida da
memória, outra é executada. O que já é diferente no tipo de arquitetura Von-Neumann que
possui um único barramento interno de 8 bits que é dividido para o tráfego de dados e
instruções.
18
Existe ainda a vantagem na economia de uma grande quantia na memória de programa
no tipo de arquitetura Harvard, pois, é utilizada apenas uma única posição de memória por
instrução, devido ao fato de que o OPCODE da instrução já armazena o local onde ela vai
operar e o dado, de acordo com a necessidade.
Com isso, é possível observar que os PICs utilizam-se da tecnologia RISC, pelo fato de
que não há muita sobra de espaço para o código da instrução dentro da palavra do OPCODE
que pode ser de 12, 14 ou 16 bits.
Os PICs se diferem quanto ao número de instruções que possuem, que é de cerca de 35
em relação aos convencionais microcontroladores do tipo de arquitetura CISC, que possuem
cerca de mais de cem instruções. Porém, é necessário que se construa muitas funções, e que o
programador tenha grandes habilidades para sanar a questão de não possuir instruções diretas
(SOUZA, 2010).
Os PICs possuem um numero de E/S que podem varia para cada modelo e que são
denominados PORTAS. Se dividem em dois grupos que são PORTA (port A) e PORTB (port
B). Tanto o PORTA quanto o PORTB possuem pinos que podem ser configurados como
entrada ou saída.
É necessário para o funcionamento de um microcontrolador que ele seja alimentado. E
ele recebe energia pelos pinos Vss(GND) e Vdd (+5Vcc). Apesar da tensão nominal ser de 5Vcc
nos PICs, para cada modelo pode haver uma variação entre 2.0 a 5.5Vcc.
2.3 COMPONENTES ELETRÔNICOS DO SISTEMA MICROCONTROLADO
Para a criação de qualquer sistema computacional baseado em microcontroladores, são
necessários muitos elementos periféricos de eletrônica que trabalha em colaboração com a
CPU em questão.
A seguir será feita uma revisão sucinta sobre alguns elementos de eletrônica mais
comumente engajados com projetos de computação embarcada.
2.3.1 Display LCD
19
Segundo Domingos (2009), os displays de LCD (Liquid Crystal Display) ou (Display de
Cristal Líquido), são componentes eletrônicos que quando utilizados em projetos para
diversos fins, apresentam uma série de vantagens computacionais, como a possível
visualização do estado em que se encontra um determinado componente dentro do circuito em
que o LCD esteja inserido e escrever caracteres para representar uma mensagem quando é
necessário acessar uma porta com proteção por senha.
Sua forma de funcionamento se difere da tecnologia dos displays de LEDs, que
acendiam quando excitados. No caso do LCD, elementos transparentes são excitados por um
sinal do circuito, estes componentes em contato com o líquido se tornam então
intransponíveis quanto à luz, que por sua vez perde a sua reflexão. Assim, aparece uma região
negra onde antes se tinha uma área com fundo branco.
O display do tipo LCD comumente empregado em aplicações e projetos, é o que possui
duas linhas e dezesseis caracteres, é geralmente representado por 2x16, onde o “2” representa
o numero de linhas (na horizontal) e o “16” representa o número de caracteres que podem ser
impressos na tela do LCD. É interessante ressaltar que não é possível utilizar acentuação nas
palavras que são representadas no LCD. Palavras como “não”, “é”, e “país”, quando
impressas no LCD, adquirem o seguinte formato: “nao”, “e” e “pais”.
Abaixo segue o layout do display de LCD de 2 linhas x 16 caracteres.
Figura 2 – LCD 16x2.
Fonte: Beyondlogic, 2000.2
O pino 1 (Vss) é responsável pela alimentação negativa (Terra - GND), o pino 2 (Vdd) é
responsável pela alimentação positiva (+5V), o pino 3 (Vee) tem como função o contraste (vai
2
THE Concise LCD Data Sheet. Beyond Logic, 2010. Disponível em:
<http://www.beyondlogic.org/lcd/lcd.pdf>. Acesso em: 20 mar. 2011.
20
de 0 até 5V), o pino 4 (RS) identifica se o tipo de função que chega é um comando (bit = 0)
ou se é um dado (bit = 1), o pino 5 (R/W) traduz o bit = 0 para escrita e bit = 1 para leitura, o
pino 6 (E) tem a função de habilitar o display (bit = 1), do intervalo que vai desde o pino 7
(D0) ao pino 14 (D7) utiliza-se para dados.
Um exemplo de uma instrução que limpa o display é realizada de acordo com a figura 3,
abaixo.
Figura 3 – Instrução Clear Display.
Fonte: Beyondlogic, 2000.2
Neste exemplo o bit significativo que é ativado (1) é o D0. E essa combinação permite
que o display seja limpo. Outro exemplo para escrita é leitura de um dado, pode-se conseguir
pelas seguintes combinações de bits: RS=1 e RW=0 para escrever um dado no display e RS=1
e RW=1 para ler um dado no display.
2.3.2 Capacitores
Em Saber Eletrônica (2010a), conhecido por ter como função básica o armazenamento
de cargas elétricas (capacitância), para que de alguma forma possa interagir com o circuito em
que esteja acoplado, o capacitor, é um componente que deve ser manuseado com cuidado.
É bastante popular a sua utilização em diversos tipos de equipamentos eletrônicos.
Apesar de existir diversos tipos de capacitores, pode-se dizer que é bem simples o seu
princípio de funcionamento.
Há algum tempo este componente eletrônico era denominado de “condensador”, pois,
acreditava-se que ele era capaz de “condensar” a eletricidade. E por esse motivo ainda hoje
algumas pessoas utilizam dessa nomenclatura para se referir a este componente.
O autor Cunha (2008) cita que a unidade para se medir a capacitância de um capacitor é
o farad (F), e é utilizado em submúltiplos como µF, nF, kpF ou pF. Ainda segundo o autor, o
capacitor é formado basicamente de duas armaduras (eletrodos metálicos) e separadas por um
21
dielétrico que funciona como um isolante. As armaduras podem ser carregadas eletricamente
de forma positiva e negativa, armazenando cargas de igual quantidade e se diferenciando
apenas quanto à polaridade em cada uma das armaduras. Ao se desconectar a fonte de
alimentação do capacitor (pode ser uma pilha, bateria, etc), o capacitor tem a capacidade de
manter em suas armaduras as cargas elétricas. E para que haja uma descarga do capacitor, é
necessário que se conecte a ele um circuito externo que permita desequilibrar o lado que se
tem elétrons em grande quantidade (negativo) para o lado positivo, permitindo assim que
ocorra a neutralização e o descarregamento de suas cargas.
Algumas informações importantes sobre os capacitores, é que para que eles possam
armazenar uma grande quantidade de cargas, maior terá de ser a tensão que se aplicará sobre
eles, pois, o armazenamento de cargas é constante e depende de alguns fatores como a
superfície da armadura, a distância de separação entre elas e o tipo de substância utilizado na
confecção do dielétrico. Além disso, eles possuem propriedades elétricas como a não
circulação de DC (Direct Corrent - Corrente Continua) e a circulação de AC (Alternated
Corrent - Corrente Alternada) dificultando a passagem que baixas correntes.
Alguns tipos de capacitores comumente encontrados são os do tipo dielétricos de
cerâmica, mica e plástico, e também os eletrolíticos de tântalo, alumínio e nióbio.
2.3.3 Resistores
Os resistores são componentes que tem como função principal em um circuito
eletrônico, reduzir a tensão. Não são bons condutores de energia, e dissipam calor, pois,
convertem a energia em calor (SABER ELETRÔNICA, 2008).
A nomenclatura utilizada para mensurar a sua capacidade é o ohms (Ω).
Um resistor pode ter sua capacidade de resistência muito alta ou também pode ser bem
baixa (milhões ou poucos ohms).
Um tipo comumente encontrado de resistor possui em sua composição como principal
elemento o carbono, porém, também pode ser encontrado outro tipo de resistor que é o de
película metálica, ele é constituído de fios de nicromo e é envolvido por uma base de
porcelana. Uma diferença que se pode encontrar nestes dois tipos de resistores, é o ruído que é
22
gerado, e no caso do resistor de carbono, é bastante perceptível quando ele está inserido em
um circuito de som. Assim o material e o tamanho de um resistor é que define a quantidade de
energia que ele pode converter em calor sem queimar.
O resistor pode ser facilmente encontrado e às vezes em grandes quantidades em
qualquer tipo equipamento eletrônico.
2.3.4 Diodos
Os diodos fazem parte da família dos semicondutores e é o mais simples deles. Eles
permitem a passagem de corrente elétrica em um circuito conduzindo-a em um único sentido
(BRAGA, 2010).
O diodo possui tamanho e composição diferenciada de acordo com a necessidade de sua
utilização e em sua composição ele possui dois tipos diferentes de materiais semicondutores,
que são o germânio e o silício e também o selênio no caso de componentes antigos.
Figura 4 – Símbolo Diodo.
Fonte: Saber Eletrônica, 2010b.3
Os diodos são representados de acordo com a sua simbologia à cima pela figura 4, onde
o “A” é o anodo (positivo), o “C” ou “K” é o catodo (negativo).
Uma empregabilidade do diodo em um circuito eletrônico é quanto à proteção de
aparelhos eletrônicos em relação ao sentido que a corrente está circulando dentro do circuito.
Para que, por exemplo, um circuito não tenha problemas com a alimentação no caso de
inversão do sentido da fonte que alimentará o circuito, pode-se utilizar um diodo conforme a
figura abaixo.
3
BRAGA, Newton C. Experimentos com Diodos: Para Aprender o Funcionamento dos Semicondutores. Saber
Eletrônica, 2010. Disponível em: <http://www.sabereletronica.com.br/secoes/leitura/1622>. Acesso em 20 mar.
2011.
23
Figura 5 – Exemplo utilização de Diodo.
Fonte: Saber Eletrônica, 2010b.4
2.3.5 Potenciômetro
Segundo Braga (2007), “potenciômetros são resistores com uma derivação central”.
Um potenciômetro pode ser encontrado em dois diferentes tipos, analógico (mecânico)
ou digital.
O potenciômetro analógico possui em sua composição, componentes que são
determinantes para sua precisão, componentes estes como o filme carbono, cerâmica com
metal e fio de níquel que formam o que se chama de pista de material resistivo, também
possui um eixo e uma terminação na ponta. O contato entre o eixo e a terminação forma uma
resistência que pode varia de acordo com a intensidade deste contato, e está resistência é
aplicada aos terminais extremos e também ao terminal central. As características entre os
terminais e o eixo também influem diretamente na precisão do potenciômetro.
Um potenciômetro analógico, não pode ter lacunas entre o eixo e a pista, pois, pode
permitir com essa abertura o acumulo de micropartículas de poeira e outros resíduos que com
o tempo podem aumentar a resistência entre o eixo e a pista, prejudicando diretamente a
precisão do componente.
O potenciômetro digital, segundo Damasceno (2008), pode ser facilmente encontrado
em aparelhos de som automotivo para controle do volume, em monitores de LCD para
controle do contraste, em telefones para controle automático de ganho de qualidade de sinal e
também em fonte de alimentação para ajuste de tensão.
4
BRAGA, Newton C. Experimentos com Diodos: Para Aprender o Funcionamento dos Semicondutores. Saber
Eletrônica, 2010. Disponível em: <http://www.sabereletronica.com.br/secoes/leitura/1622>. Acesso em 20 mar.
2011.
24
Algumas vantagens do ponto de vista de resistência do componente são mencionadas
ainda segundo o autor, que é o fato de que o potenciômetro digital, não possui desgaste
mecânico proveniente do acumulo de partículas na região entre o eixo e a pista. Quanto ao
potenciômetro analógico, além desse tipo de desgaste, quando inserido em um ambiente que
haja vibrações ou batidas (motor), pode-se ter um deslocamento de seus componentes, o que
não ocorre no potenciômetro digital.
O potenciômetro digital é definido por Braga (2007), como sendo um composto de
resistores que são arranjados em série e que de acordo com uma lógica de controle, são
selecionáveis. Para realizar um posicionamento da resistência, que no caso do analógico é
feito manualmente, no digital isso ocorre por meio de uma lógica de controle de números
binários.
2.3.6 LEDs
O LED é um componente emissor de luz, com finalidade de comunicação sinalizada
(placas de circuito impresso) ou até mesmo iluminação (veículos). A sua confecção é
realizada com uma pastilha semicondutora a base de diferentes metais, entre eles o Arsênio e
o Gálio. O LED emite luz após estes metais serem excitados por uma corrente elétrica. A luz
que é emitida é monocromática, ou seja, é em uma determinada faixa curta do espectro que a
energia emitida irá concentrar-se. Assim, por exemplo, se um LED emite uma luz azul,
significa que toda a energia que é produzida por ele, é aproveitada para a emissão dessa luz
azul (SABER ELETRÔNICA, 2009).
Os LEDs podem ser fabricados em qualquer tipo de cor, inclusive o branco, que nada
mais é do que a junção de todas as cores.
2.3.7 Porta de Comunicação RS-232
O padrão de comunicação do tipo serial RS-232 surgiu em 1969 e a sua criação foi
conjunta pelas empresas EIA (Electronic Industries Association), Laboratórios Bell e alguns
fabricantes de equipamentos desse tipo de seguimento (SOARES, 2008).
25
Surgiu ainda no mesmo ano após revisões no padrão da tecnologia RS-232, o padrão
EIA RS-232C. Este padrão é utilizado até os dias atuais e define a comunicação do tipo serial
entre microcomputadores (DTE – Data Terminal Equipment) e modens ou periféricos (DCE –
Data Communications Equipment).
Este padrão possui normas quanto a níveis e valores elétricos além do tipo de pinagem e
conectores (DB09 e DB25).
Figura 6 – Comunicação Padrão EIA RS-232C.
Fonte: Soares, 2008.5
Por exemplo, a figura à cima mostra como é realizada a comunicação realizada pelo
padrão EIA RS-232C, transmitindo um código da tabela ASCII que é traduzido em um
caractere que neste caso é o “A”. Este padrão possui tensão para o nível lógico “0” entre +3V
e +15V e para o nível lógico “1”, a tensão varia entre -3V e -15V.
A transmissão que é realizada entre equipamentos do tipo DTE e DCE são do tipo
serial, e deste modo os dados trafegam de forma paralela entre os equipamentos. Na origem, o
dado é um byte e ele é transformado em uma sequência de bits, esses bits são enviados e
chegam ao destino, onde são novamente transformados em byte.
5
SOARES, Márcio José. Comunicação RS-232 – Noções Básicas – Parte 1, Saber Eletrônica, São Paulo, n.
424, maio 2008. Disponível em: <http://www.sabereletronica.com.br/secoes/leitura/774>. Acesso em: 20 mar.
2011.
26
2.4 MULTIMETROS PARA MEDIÇÃO DE SINAIS
Comumente chamado de multímetro, este equipamento de utilidade imprescindível para
realizar testes em circuitos e componentes eletrônicos, também pode receber o nome de
multiteste e até mesmo VOM (Volt-Ohm-Miliamperímetro) (BRAGA, 2009).
Um multímetro pode fazer medições de resistência (ohms - Ω), corrente (ampères - A) e
tensão (volts - V). Um multímetro com menos complexidade (analógico) tem componentes
como bobina móvel ou indicador e uma agulha que irá se deslocar pelas escalas do painel
frontal do multímetro, além de uma chave que muda o tipo de grandeza elétrica, e essa chave
tem o papel de modificar o circuito interno de acordo com o que se deseja medir.
Outro tipo de multímetro é o digital. Ele possui características semelhantes ao do
multímetro analógico, com algumas diferenças, como por exemplo, um display de cristal
líquido (LCD), onde são apresentados os dados de uma medição.
Para que se possa medir tensão, é necessário primeiramente saber se o que está sendo
medido é tensão alternada (VCA), como por exemplo, as tomadas residenciais ou tensão
contínua (VDC), como por exemplo, um circuito interno de uma calculadora.
A resistência pode ser medida para encontrar cabos, conectores e fios que apresentem
algum tipo de problema, pois, se durante a medição forem apresentados altos números de
resistência, podemos concluir que existe um problema e há alguma ruptura de um cabo ou um
conector danificado, e quando números baixos de resistência são verificados, pode-se concluir
que tudo está funcionando perfeitamente, e que a eletricidade está fluindo normalmente.
E para que se possa fazer uma medição de corrente, é necessário que haja uma
interrupção no circuito e o multímetro deve ser intercalado.
2.5 LINGUAGEM ASSEMBLY DE MICROCONTROLADORES
Para que haja comunicação entre um microcontrolador e um software, instruções devem
ser reconhecidas pelo hardware. É por meio de uma linguagem denominada de linguagem de
máquina que essas instruções são manipuladas em nível binário (NICOLISI, 2010).
27
A partir daí, para que se possa programar um software (programa fonte), utiliza-se de
mnemônicos que são inteligíveis quanto a sua interpretação.
Assim, um código Assembly executado em um tradutor, pode então compilar (traduzir)
o código-fonte e verificar se este contém erros para posteriormente executa-lo.
Sena (2009) cita que o assembly possui labels, instruções, operandos, diretivas e
comentários, que na verdade são tratados como elementos básicos.
O label (rótulo), por exemplo, deve ser empregado na primeira coluna do trecho do
código, ele é utilizado para que ocorra um salto do microcontrolador ou até mesmo para que
um goto seja executado.
As instruções estão diretamente ligadas à linguagem que é adotada e também ao
conjunto de instruções que são específicas para cada tipo de microcontrolador.
Os operandos podem ser constantes, registros ou variáveis e devem existir para que
então uma instrução possa ser executada, eles complementam a instrução.
Comentários são utilizados para que um programa (código fonte) seja bem detalhado e
fique bem explicado, permitindo que futuras alterações no código sejam realizadas com
facilidade, dando ao programador a possibilidade de fácil compreensão do código (SENA,
2009).
As diretivas se assemelham a uma instrução, porém, se diferem pelo motivo de que
independem do tipo de linguagem que se deseja trabalhar, uma vez que são próprias da
linguagem assembly.
Um dado importante, segundo Nicolisi (2010), é que a linguagem Assembly possui
limitações e uma delas é que não é possível manipular dados em ponto-flutuante.
Programas Assembly se dividem em dois grupos que são do tipo native assembler (é
executado apenas por um determinado microcontrolador específico) e cross-assembler (é
gerado o código fonte que se deseja a partir da execução em outra máquina).
28
2.5.1 Microcontroladores Microchip família PIC16F
Os programas desenvolvidos para os microcontroladores do tipo PIC16F devem seguir
algumas regras para a sua execução. Para tanto, as instruções de um programa devem ser
inseridas em uma ordem correta (SOUZA, 2010).
Apesar da estruturação das instruções variarem de acordo com o estilo do programador,
são adotadas algumas práticas mais comumente utilizadas por grandes empresas como a
Mosaico (2011), Mosaico Engenharia, e também por muitos programadores.
São utilizadas para a composição de um programa algumas tarefas como rotinas,
entradas e saídas, definição das variáveis, sub-rotinas e etc. Comentários também são de suma
importância para que um programa possa ser bem interpretado por outra pessoa futuramente,
além de inclusões do tipo #Include, que nada mais são do que arquivos que definem,
padronizam e permite maior agilidade a programação.
Porém, antes de entender como funciona a programação, é necessário que se tenha em
mente o set de instruções que é utilizado para que uma instrução possa ser construída.
No caso da família PIC16F, são utilizadas instruções como, por exemplo, o ADD
(soma), AND (“e”), MOV (mover), DEC (decremento de uma unidade), SUB (subtração)
entre outras.
2.6 PROGRAMAÇÃO DE MICROCONTROLADORES EM ALTO NÍVEL
As linguagens de alto nível são mais intuitivas e de fácil entendimento e não é difícil de
entender o motivo.
O quadro abaixo ilustra dois tipos de instruções, uma em alto nível que é representado
pela linguagem C e outra em baixo nível que é representado pela linguagem Assembly (SÁ,
2005).
Linguagem C
main()
{
char contador;
29
Fica evidente, visualizando a codificação acima Sá (2005), que a primeira diferença
existente é a economia de código, é que ela existe em maior proporção na linguagem de alto
nível, porém sua execução se torna um pouco mais lenta quando comparada a linguagem de
baixo nível.
A linguagem C possui bibliotecas para que se possam desenvolver programas para
microcontroladores do tipo PIC e 8051.
No caso do 8051, quando a programação é feita em linguagem C, utiliza-se, por
exemplo, a biblioteca 8051.h (IEEE, 2011). Já no caso do PIC16F876A, é utilizada nesta
mesma linguagem a biblioteca P16F876A.INC (SOUZA, 2010).
Para cada tipo de microcontrolador existe uma biblioteca a ele associada.
Outra linguagem de desenvolvimento utilizada na programação de microcontroladores é
o Java. Isso se torna possível, segundo AUSTIN; PAWLAN (2000) com a utilização do JNI
(Java Native Interface), pois, permite que objetos e métodos da JVM (Java Virtual Machine)
possam ser acessados pela linguagem C.
for{ contador = 100; contador > 0; contador--};
while(1);
}
Linguagem Assembly
LJMP INICIALIZA
INICIAR:
MOV 0x08,#0x64
LOOP0:
MOV A,0x08
SETB C
SUBB A,#0x00
JC FINAL
DEC 0x08
SJMP LOOP0
FINAL:
SJMP $
RET
INICIALIZA:
30
O JNI é muito útil também quanto a questões de desempenho, como cita (Gabrilovich e
Finkelstein, 2001), segundo os autores o fato da API possuir boa flexibilidade, torna um fator
importante na hora de programar.
É possível, por exemplo, utilizar a linguagem C para escrever um programa com
métodos nativos, como demostra Austin; Pawlan (2000) no código fonte abaixo que por meio
de uma String recebe um nome como parâmetro (String name) e retorna o conteúdo em um
array:
2.7 AMBIENTE PARA PROGRAMAÇÃO
Para realizar a construção de um projeto de programação é necessário uma IDE, ou seja,
um ambiente de desenvolvimento que de suporte à linguagem que se deseja trabalhar. Os
IDEs (Integrated Development Environment), são ambientes de Desenvolvimento Integrado.
A seguir será feita uma breve explicação sobre algumas IDEs utilizadas no
desenvolvimento do presente trabalho.
(native byte[] loadFile(String name)).
import java.util.*;
class ReadFile {
//Native method declaration
native byte[] loadFile(String name);
//Load the library
static {
System.loadLibrary("nativelib");
}
public static void main(String args[]) {
byte buf[];
//Create class instance
ReadFile mappedFile=new ReadFile();
//Call native method to load ReadFile.java
buf=mappedFile.loadFile("ReadFile.java");
//Print contents of ReadFile.java
for(int i=0;i<buf.length;i++) {
System.out.print((char)buf[i]);
}
}
}
31
2.7.1 Eclipse IDE
O Eclipse é uma IDE para desenvolvimento e criação de softwares. Ele possui
depurador, compilador, editor e outras ferramentas.
O Eclipse é “uma comunidade de fonte aberta, cujos projetos são focados em construir
uma plataforma de desenvolvimento aberta extensível composta por quadros, ferramentas e
tempos de execução para a construção, implantação e gerenciamento de software em todo o
ciclo de vida” (ECLIPSE, 2011a).
Um plug-in utilizado para a programação, edição e construção de projetos de
microcontroladores PIC da Microchip em conjunto com o Eclipse CDT, que fornece suporte
para as linguagens de programação C e C++, é o PicCBuilde (ECLIPSE, 2011b).
2.7.2 MPLAB
O MPLAB IDE (Microchip, 2011) recebe esse nome, pois, é uma IDE (Ambiente
Integrado de Desenvolvimento) para o desenvolvimento de aplicações embarcadas. Contém
ferramentas necessárias para o projeto garantindo que o projetista possa implementar o
código-fonte, além de realizar o processo de compilação e de testes com o tipo de
microcontrolador selecionado por ele. O MPLAB é utilizado para o estudo e desenvolvimento
com a família de microcontroladores PIC.
Esta IDE possui como característica principal, a sua total integração dos seus módulos
com o sistema operacional da Microsoft (Microsoft Windows). E sua versão atual é a v.8.46.
O processo de criação de uma aplicação dentro do ambiente de desenvolvimento do
MPLAB é realizado por meio de um ciclo de etapas que são definidas como Design Cycle, a
etapa de escrita do código é realizada muitas vezes (Edit/Create/Design Source Code), assim
como os testes (Analyse/Debug Code) até a fase de carregar o aplicativo no microcontrolador
(conversão do código que está em linguagem de alto nível para linguagem de máquina) e
compila-lo, como pode ser visto na imagem abaixo.
32
Figura 7 – Ciclo de etapas de desenvolvimento.
Fonte: Microchip, 2009.6
2.7.3 PIC C Compiler
A IDE PIC C Compiler é um ambiente de desenvolvimento de softwares embarcados
como é citado em CCS Custom Computer Services (2011). Este ambiente proporciona ao
desenvolvedor acessar recursos de hardware por meio de bibliotecas em linguagem de
programação C. Desta forma, é possível programar aplicações de tecnologia como o controle
de movimentos via wireless e o toque capacitivo. E isso só é capaz, pois a IDE traz consigo
mais de 307 funções que simplificam o acesso ao hardware como os temporizadores e
módulos PWM (Pulse Width Modulation), além de conversores A/D e controladores de LCD.
A IDE ainda gera arquivos .hex, após a compilação e build do código-fonte, à partir de
arquivos .c, que permitem ao desenvolvedor executar o seu programa em um
microcontrolador.
Os protocolos de comunicação que são padrões na indústria, também são tratados pela
IDE, permitindo a comunicação com interfaces como a USB e a RS-232.
2.7.4 ISIS Schematic Capture
O software ISIS Schematic Capture, comercializado pela empresa Labcenter Eletronics
(2011), é parte integrande do Proteus. Ele combina um grande ambiente de desenvolvimento
6
MPLAB User’s Guid with MPLAB Editor and MPLAB SIM Simulator. Microchip, 2009. Disponível em:
<http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_User_Guide_51519c.pdf>. Acesso em: 20 mar.
2011.
Compilar/Converter
Debugar o código
Testes do código
Criação
33
de design e também de aparência dos componentes eletrônicos. É de vital importância para
documentação técnica de projetos que envolvam desenvolvimento de sistemas embarcados
que necessitem de simulação eletrônica.
O ambiente possui uma vasta biblioteca de componentes eletrônicos que podem ser
adicionados ao projeto para depois manuseá-los e realizar a sua configuração.
O desenvolvimento de um projeto simulado no ISIS é facilitado, pois, conta com
ferramentas para a execução como o Wire Auto-Router, que realiza o desenho e conexão de
componente. Ainda o ambiente possui a ferramenta Bus, que mapeia o caminho de um pino
ou conexão.
Os testes simulados garantem ao desenvolvedor que falhas de entradas desconectadas e
saídas conflitantes não ocorram, pois, o ambiente possui um relatório detalhado se ocorrer
estes tipos de erros.
2.8 SOFTWARE PARA GRAVAÇÃO/REGRAVAÇÃO DE
MICROCONTROLADORES FAMÍLIA PIC
Para que um microcontrolador possa executar um software que foi desenvolvido em
uma IDE, é necessário que um software faça a gravação do programa na memória do
microcontrolador. O Winpic800 é um exemplo desse tipo de software (WINPIC800, 2010).
Desenvolvido para ser executado em ambiente Windows, este software permite que o
microcontrolador seja apagado (erase all), gravado com uma aplicação (program all), leitura
da memória (read all) e detectar automaticamente o tipo de microcontrolador que está sendo
utilizado (detect device).
No Winpic800 é possível selecionar o idioma que se deseja ter em toda a sua interface,
assim como o tipo de gravador que será utilizado para realizar a gravação do programa que foi
desenvolvido para ser armazenado na memória do microcontrolador.
3 DESENVOLVIMENTO DO PROJETO
34
Neste capítulo serão explicados todos os detalhes que envolvem o projeto do presente
trabalho.
Serão abordados os componentes que foram utilizados para a construção do presente
projeto. Será utilizado o Kit Cerne Bluetooth que é a matriz de testes, um multímetro para
aferir os níveis de tensão de componentes e circuitos, um sensor de nível para garantir o nível
ideal de líquido dentro do reservatório, um sensor fotoelétrico para identificar a presenção de
um recipiente quando próximo ao bocal, uma moto bomba cujo papel é realizar a sucção do
líquido que há no reservatório, um reservatório para armazenagem do líquido e uma fonte de
alimentação ATX para suprir os níveis de tensão da moto bomba.
O protótipo será baseado inicialmente simulação via Proteus ISIS e após todos os testes
mostrarem a maturidade do protótipo, intenciona-se montar o mesmo fisicamente.
3.1 COMPONENTES
Para a criação do protótipo foram utilizados alguns componentes como o Kit didático
Cerne Bluetooth, multímetro, sensor de nível, sensor de borda, sensor de presença, bomba
submersa, reservatório e fonte de alimentação ATX.
A seguir será feito um detalhamento sobre estes elementos.
3.1.1 Kit Cerne Bluetooth
Voltado para o desenvolvimento de aplicações embarcadas, o kit Cerne Bluetooth
possui uma placa que é equipada com quatro LEDs, quatro botões push, um display LCD,
receptor de infravermelho via RC5, um trimpot, uma entrada para fonte de 12V, um módulo
Bluetooth KC21, um microcontrolador PIC16F867A e uma porta de comunicação RS-232. A
O kit também acompanha uma fonte de 12V e um cabo serial RS-232 (CERNE-TEC, 2011).
3.1.2 Multímetro
35
Multímetro analógico de bolso modelo FT1000A da empresa Smart, que possui 7 faixas
de medição DC, 4 faixas de medição AC, 2 faixas de medição de resistência e terminais de
entrada protegidos. Possui sensibilidade de 2KΩ/Vdc & Vac, tensão DC de
0~10/50/250/1000Vdc, tensão AC de 0~10/50/250/1000Vdc, corrente DC de
0~0,5/50/500mA, resistência de x10Ω/x1KΩ (centro de escala 5KΩ) e decibéis entre -
20dB~+22dB nas faixas Vac (HAYAMAX, 2011).
3.1.3 Sensor de Nível
Sensor de nível modelo LL101101 da empresa Honeywell, e ele possui um sensor do
tipo básico que fornece uma saída digital que indica presença ou ausência de líquido, opera
entre -40ºC e 125ºC (-40ºF e 257ºF), trabalha com temperatura de armazenamento entre 50 °
C a 150 ° C (-58 ° F a 302 ° F), sua tensão é de 5Vdc, possui aço inoxidável e faixa de pressão
entre 0-5 bar (HONEYWELL, 2011).
3.1.4 Sensor Fotoelétrico
Sensores do tipo fotoelétricos são citados por BRAGA (2008) como sendo um elo que
os equipamentos eletrônicos devem construir em relação à interação que eles devem prover
com o mundo exterior, seja o homem, outro equipamento eletrônico ou um dado componente.
Estão presentes na indústria e em outras áreas para diversas finalidades e os modelos
encontrados são diversos como, por exemplo, o LDR (Líght Dependent Resistor).
O sensor do tipo fotoelétrico possui uma característica importante que é a agilidade de
comunicação e isto é devido à luz ser a sua principal característica de funcionamento. Este
tipo de componente além deste benefício, não apresenta nenhum tipo de desgaste em sua
composição o que o faz resistente.
O funcionamento dos sensores fotoelétricos como ilustrado na figura abaixo, seguem
basicamente o princípio de que quando um componente, ou algo móvel, intercepta o campo
de luminosidade que tem inicio em uma fonte de luz e segue linearmente para o sensor, este
detecta esta interrupção e este gera um pulso elétrico.
36
Figura 8 – Funcionamento de sensores Fotoelétricos.
Fonte: Braga, 2006.7
O sensor utilizado no presente projeto é fotoelétrico do tipo LDR. Este sensor possui o
Sulfeto de Cádmio (CsS) como principal matéria-prima de sua composição, e a incidência de
luminosidade é o fator de que a sua resistência elétrica depende. Necessitando de LED,
lâmpada incandescente, fluorescente ou até mesmo eletrônica para garantir seu
funcionamento.
3.1.5 Bomba Submersa
A moto bomba d’água Sarlo S180 opera entra 110V e 220V, possui frequência de 60Hz,
seu consumo é de 5W, coluna d’água de 0,45m e tem vazão de 180 litros/hora, conforme a
figura 9 abaixo.
Figura 9: Especificações Moto Bomba D’água Sarlo S180.
Fonte: SarloBetter, 2011.8
7
BRAGA, Newton C. Todos os tipos de sensores, Saber Eletrônica, São Paulo, n. 405, out. 2006. Disponível
em: <http://www.sabereletronica.com.br/secoes/leitura/661>. Acesso em: 20 mar. 2011.
8
iMANUAL do Proprietário. SarloBetter, 2011. Disponível em:
<http://www.sarlobetter.com.br/index.php?action=forceDownload&path=/media/noticias/files/20006293424ae9
6b21e030c.pdf>. Acesso em: 20 mar. 2011.
37
3.1.6 Reservatório
Fabricado de forma artesanal pela empresa Sotello, o reservatório é constituído de 5
placas de vidro com espessura de 4mm com um furo em uma das placas laterais, foi
cuidadosamente vedado com silicone específico para esta finalidade e com tratamento anti-
fungos. As medidas estão melhor detalhadas na imagem abaixo (SOTELLO, 2011).
3.1.7 Fonte Alimentação ATX
Fonte ATX de alta performance da marca Multilaser com potência real de 400W e pico
de 800W, opera entre 100-130/200-240V (Bivolt), frequência entre 50/60Hz, possui
conectores de +3.3V, +5V, +12V, -5V, -12V, +5VSB, +3.3V+5V MAX.
Possui uma conexão para ser conectada a motherboard (placa-mãe) de 24 pinos, uma
conexão SATA, três chicotes modulares HDD, um chicote modular FCC e um cabo de força.
Possui também dimensões de 86x150x140mm e seu peso é de 4,5kg (MULTILASER, 2011).
3.2 SIMULAÇÃO DO AMBIENTE DO PROTÓTIPO DA MÁQUINA DE
REFRIGERANTES
O ambiente físico do presente projeto é simulado com o auxílio do software Proteus
Design Suite versão 7.8, comercializado pela empresa Labcenter Eletronics (2011). Por meio
do aplicativo ISIS Schematic Capture que é integrado à suíte de aplicativos do Proteus, é
realizada a simulação de todo o circuito eletrônico da matriz de testes. E com o VSM é
possível simular o software embarcado.
Nos tópicos que seguem serão explicados os aplicativos utilizados neste projeto e que
fazem parte da suíte de aplicativos do Proteus.
38
3.2.1 Proteus Design Suite
O Proteus Design Suite é uma suíte que agrega aplicativos que possibilitam o
desenvolvimento de simulações bem próximas aos níveis reais de circuitos eletrônicos, bem
como o desenho de circuitos impressos, além da simulação de softwares embarcados. O web
site Labcenter (2011) ressalta ainda a importância que a suíte de aplicativos do Proteus traz à
projetistas de software, pois, com o protótipo físico simulado, não é necessário aguardar a
confecção do protótipo físico real para começar a desenvolver o software embarcado e
realizar testes.
3.2.2 ISIS Schematic Capture
Com a utilização do ISIS foi possível simular o esquema físico da matriz de testes e dos
componentes eletrônicos que estão a ela acoplados. E isso é ilustrado na figura 10 abaixo.
Figura 10: Simulação do Protótipo físico da máquina de refrigerantes
Os principais componentes utilizados nessa ferramenta e que estão disponíveis na
biblioteca do ISIS são: 1N4001 (D1), Button (RB0), LED-RED (D1), LM016L (LCD1),
MINRES 1K (R10), MINRES 22K (R14), MINRES 4K7 (R1), MINRES220R (R8), NPN
39
(Q1), PIC16F876A (U1), POT (POT), RELAY (RL1), SW-SPST (SW1). Estes componentes
foram dispostos no projeto do ISIS de forma que o ambiente simulado chegue o mais próximo
possível do ambiente real.
3.2.3 VSM (Virtual System Modelling)
O VSM é citado pelo web site Labcenter Eletronics (2011), como sendo responsável por
permitir a simulação de um software embarcado junto ao hardware simulado com o ISIS.
No presente projeto o VSM teve um papel fundamental para que o código desenvolvido
no ambiente do PIC C, pudesse ser simulado no ambiente do ISIS. Assim, o código “.hex”
que foi gerado a partir de um arquivo “.c”, é gravado no microcontrolador como se fosse
realizado um load via porta RS-232 no ambiente real.
Após isso, então, é possível executar o programa dentro do ambiente simulado do ISIS e
verificar como ocorre a comunicação entre os componentes eletrônicos por meio das portas do
microcontrolador em tempo real.
3.3 IMPLEMENTAÇÃO DO CÓDIGO FONTE
A lógica do código fonte do presente projeto foi construída à partir do funcionamento
da máquina de refrigerantes. Com isso foi desenvolvido um fluxograma do código fonte deste
projeto como é explicado abaixo e ilustrado na figura 11 a seguir.
Primeiramente é inicializado o display de LCD em (inicializa_lcd(); e lcd_inst();), após
isto é impresso no display de LCD a mensagem “- MAQUINA DE -” com a instrução
(lcd_escreve();), então o cursor é posicionado na segunda linha com a rotina
(Lcd_pos_xy(1,2);) e é impresso na segunda linha a mensagem “- REFRIGERANTE -”.
A seguir é criado um loop por meio de um “while(1)”, onde está o main do código, e ele
fica verificando as rotinas (alertaReservatorio(); e monitorarAbastecimento();). Após sair
deste “while(1)”, o código segue para outro “while(1)” onde é verificado se há nível no
reservatório (SENSORNIVEL=1), se há presença (SENSORPRESENCA=1) e se há borda
(SENSORBORDA=1), após isto, é impresso a mensagem no display de LCD (“Máquina
Pronta”), e se há presença, então o código segue para a rotina de abastecimento
40
(acionarBomba();), senão, segue para a rotina de alerta de reservatório (alertaReservatorio ();)
e é o fim do segundo while.
Figura 11: Fluxograma do código-fonte.
41
Para que o código ficasse mais simples e as variáveis utilizadas pudessem ser alteradas
ao longo da construção do código-fonte, foi utilizado o recurso #define para as principais
saídas do sistema: BOMBADAGUA (Bomba d’água no pino PIN_A1), SENSORNIVEL
(Sensor LL111001 no pino PIN_A2), SENSORBORDA (Sensor de borda no pino PIN_C6),
SENSORPRESENCA (Sensor de presença no pino PIN_C7). Segue abaixo o trecho do
código-fonte com essa estrutura apresentada.
No presente trabalho foi utilizado algumas funções (definidas previamente na
prototipagem das funções) para realizar as tarefas que são desempenhadas pela máquina de
refrigerantes. Ao todo são 4 funções principais: monitorarSensorNivel(),
monitorarAbastecimento(), acionarBomba() e alertaReservatorio().
A função que monitora o sensor de nível (LL111001) é a função
monitorarSensorNivel(), verifica se o bit está em “0”, e isto significa que o nível de líquido
dentro do reservatório está à cima do nível de segurança e portanto a máquina irá operar
normalmente, assim, o código é desviado para um else que executa a função de monitorar o
abastecimento. Ou então, esta função, verifica se o bit está em “1”, e isto significa que o nível
de líquido dentro do reservatório está abaixo do nível de segurança, e desta forma a máquina
não irá operar, retornando para o usuário uma mensagem no display de LCD (“Abastecer
Reservatorio”). Segue abaixo o código-fonte da função monitorarSensorNivel().
#define BOMBADAGUA PIN_A1 // Pino de dados 3 (Bomba D'água)
#define SENSORNIVEL PIN_A2 // Pino de dados 4 (Sensor LL111001)
#define SENSORBORDA PIN_C6 // Pino de dados 17 (Sensor de Borda)
#define SENSORPRESENCA PIN_C7 // Pino de dados 18 (Sensor de Presença)
//Rotina de monitoramento do nível de líquido dentro do Reservatório
por meio do sensor LL101101.
void monitorarSensorNivel()
{
//SENSOR DE NÍVEL = 0 >> Reservatório a cima do nível de
abastecimento (IDEAL)
//SENSOR DE NÍVEL = 1 >> Reservatório abaixo do nível de segurança
(PREOCUPANTE)
//Aguardando Abastecimento
printf (lcd_escreve, "Aguardando:");
lcd_pos_xy (1, 2); // Posiciona o cursor na segunda linha, primeira
coluna do LCD.
42
A função monitorarAbastecimento() é que verifica por meio de um looping infinito se o
sensor de presença e o sensor de borda são true, e se essa condição for verdadeira, então é
executada por meio de um if, uma função que aciona a bomba d’água e deixa a máquina
pronta para o abastecimento, mostrando uma mensagem no display de LCD (“Maquina
Pronta! Esperando Copo..”). Segue abaixo o trecho do código-fonte.
printf (lcd_escreve, "Sensor de Nivel");
delay_ms(2000);
output_low (SENSORNIVEL); //Suspender.
lcd_escreve ('f'); // Limpa o display de LCD.
while (1)
{
//Máquina atingiu o nível de Segurança para abastecimento,
suspender, até reservatório estiver no nível IDEAL
if (input(SENSORNIVEL))
{
alertaReservatorio();
}
else
{
monitorarAbastecimento();
}
}
}
//Rotina que executa o monitoramento do abastecimento de um recipiente
por meio do relé.
void monitorarAbastecimento()
{
while (1) //looping infinito
{
// Se o sensor de presenta detectar recipiente, o sensor de nível
estiver ok e o sensor de borda não detectar copo cheio: Aciona Bomba.
if
((!input(SENSORNIVEL))&&(!input(SENSORPRESENCA))&&(input(SENSORBORDA)))
{
acionarBomba(); // Aciona o relé e a partir daí a fonte ATX,
acionando a Bomba e abastecendo o recipiente
} else {
//Apagar o display e mostra: Maquina Pronta.
if (!input(SENSORNIVEL)){
output_high(SENSORPRESENCA);
lcd_escreve ('f'); // Limpa o display de LCD.
printf (lcd_escreve, "Maquina Pronta!");
lcd_pos_xy (1, 2); // Posiciona o cursor na segunda
linha, primeira coluna do LCD.
printf (lcd_escreve, "Esperando Copo..");
delay_ms(100);
} else {
alertaReservatorio();}
}
}
}
43
A função acionarBomba() identifica por meio de um if se o bit SENSORBORDA está
em “1”, pois, se estiver significa que o recipiente está com nível até a borda e portanto a
máquina irá abortar o abastecimento mostrando a mensagem “Maquina Pronta! Esperando
Copo..”. Caso contrário, se o bit desta função estiver em “0”, ou seja, o recipiente está com
nível de líquido abaixo do nível do sensor de borda, então, por meio de um else é executado o
comando output_high(BOMBADAGUA) para que seja abastecido o recipiente e também que
mostre uma mensagem na tela de LCD informando esta ação (“Abastecendo Recipiente”).
Após o abastecimento e sendo identificado pelo (SENSORBORDA) que o líquido do
recipiente chegou no nível de borda, então será mostrado a mensagem ao usuário “Copo
abastecido, Pode retirar...”. Segue abaixo o trecho do código-fonte.
//Rotina que aciona o relé para que o abastecimento seja realizado.
void acionarBomba()
{
if (!input(SENSORBORDA)) //Recipiente Cheio então aborta o
abastecimento
{
//Mensagem que o nível de líquido do recipiente está no máximo.
Abortar!
printf (lcd_escreve, "Abortando,");
lcd_pos_xy (1, 2); // Posiciona o cursor na segunda linha,
primeira coluna do LCD.
printf (lcd_escreve, "Copo Cheio!");
delay_ms(2000);
lcd_escreve ('f'); // Limpa o display de LCD.
output_low(BOMBADAGUA); //Desliga o relé, cessando o
abastecimento.
} else {
//Nível do recipiente está OK, Abastecer!
lcd_escreve ('f'); //Limpa o display de LCD.
printf (lcd_escreve, "Abastecendo,");
lcd_pos_xy (1, 2); // Posiciona o cursor na segunda linha,
primeira coluna do LCD.
printf (lcd_escreve, "Recipiente..");
output_high(BOMBADAGUA); //Abastecendo..
while((input(SENSORBORDA))&&(!input(SENSORPRESENCA))&&(!input(SENSORNIVE
L)))//Enquanto não detectar a borda, continua abastecendo..
{
pisca_led_b();
}
output_low(BOMBADAGUA); //Abastecido, desligando bomba..
lcd_escreve ('f'); //Limpa o display de LCD.
printf (lcd_escreve, "Copo abastecido,");
lcd_pos_xy (1, 2); //Posiciona o cursor na segunda linha, primeira
coluna do LCD.
printf (lcd_escreve, "Pode Retirar...");
delay_ms(5000); //Aguarda 5 segundos para retirada do copo.
lcd_escreve ('f'); //Limpa o display de LCD.
}
}
44
A função alertaReservatorio() imprime a mensagem “Abastecer Reservatorio” no
display de LCD, toda vez que o nível do reservatório estiver abaixo do nível de segurança, e
isto é detectado pelo sensor de nível (SENSORNIVEL) quando o bit estiver em “0”. Segue
abaixo o trecho do código fonte.
3.4 ARQUITETURA DE PROTÓTIPO DA MÁQUINA DE REFRIGERANTES
O presente trabalho tem como objetivo a construção de uma arquitetura de um protótipo
físico de uma máquina de refrigerantes, que seja automatizada via software por meio de um
microcontrolador. O protótipo da máquina de refrigerantes proposto no presente trabalho, é
composto de uma matriz de testes da empresa Cerne-Tec (2011) que é intitulada pela empresa
de Kit didático, e é equipada com um microcontrolador PIC16F876A cuja arquitetura é citada
por Souza (2010), como tipo Harvard.
A matriz de testes será alimentada por uma fonte de energia externa ao projeto de 110V,
e atende a requisitos fundamentais para o desenvolvimento deste trabalho, pois, possui um
display de LCD frontal para que o usuário possa ter total interação com o equipamento, possui
suporte a gravação e regravação por meio do software Winpic800 (2010) para que se torne
possível a automatização do protótipo.
O microcontrolador PIC16F876A que vem acoplado junto à matriz de testes, possui
portas livres para que possam ser conectados tanto a fonte ATX Multilaser (2011) que será
alimentada com energia externa ao projeto de 110V, como também o sensor de nível
Honeywell (2011) que é alimentado com 5V de tensão oriundos do microcontrolador,
//Rotina que imprime um aviso no display de LCD informando que é
necessário Abastecer o Reservatório.
void alertaReservatorio()
{
if (input(SENSORNIVEL))
{
printf (lcd_escreve, "Abastecer");
lcd_pos_xy (1, 2); // Posiciona o cursor na segunda linha,
primeira coluna do LCD.
printf (lcd_escreve, "Reservatorio ");
delay_ms(100);
pisca_led_a();
}
}
45
contempla ainda botões e LED’s Saber Eletrônica (2009) para dar interatividade e sinalização
de atividades, respectivamente, e também conta com uma porta RS-232 Soares (2008) que
possibilita a comunicação com um microcomputador para permitir a realização da
programação no microcontrolador PIC16F876A.
Outro fator importante é o suporte a linguagem de programação C (2.5.1) que é utilizada
para realizar a programação do software que irá automatizar o equipamento, e que será
realizada com o auxílio da IDE PIC C Compiler com bibliotecas específicas para esta
linguagem.
O projeto também conta com uma moto bomba d’água S180 da SarloBetter (2011), que
será alimentada com energia elétrica proveniente da fonte ATX. A bomba d’água consegue
encher um copo com capacidade de 300 ml com 7 segundos em média, de acordo com testes
realizados. E esta bomba é necessária para que haja escoamento do líquido que deve conter no
reservatório Sotello (2011).
O reservatório Sotello (2011) que possui capacidade para receber aproximadamente
19,375 litros de líquido, tem o papel de armazenar todo o líquido que será utilizado para
abastecer um dado recipiente. Ainda, o reservatório possui um furo vazado para que um
sensor de nível possa ser acoplado e rosqueado. Um nível mínimo de líquido foi estipulado
entre 14cm e 15cm desde a base do reservatório até o sensor de nível.
Foi utilizado um sensor de nível Honeywell (2011), que será alimentado pela fonte
ATX com +5V, para assegurar que o nível mínimo de líquido que estiver no reservatório não
baixe, pois, se isso ocorrer, poderá ocasionar queima na bomba d’água, pois, esta deve
trabalhar sempre submersa.
O protótipo segue o esquema dos componentes envolvidos e que estão conectados
conforme a figura 12 abaixo.
46
Figura 12: Esquema do Protótipo da Máquina de Refrigerantes.
3.4.1 Funcionamento
Primeiramente para que o protótipo funcione de forma segura, é necessário que as duas
únicas e principais fontes de alimentação externas estejam devidamente transmitindo a tensão
de 110V, tanto para a fonte ATX quanto para a matriz de testes.
Partindo do princípio de que o sistema esteja, então, devidamente alimentado com a
tensão necessária para o seu funcionamento, e que todos os componentes estejam conectados,
a primeira ação, deve ocorrer, quando coloca-se um recipiente com até 300ml de capacidade
no suporte junto ao painel principal.
Quando um recipiente for colocado no suporte do painel principal, um sensor
fotoelétrico faz a captação da sua presença por meio da interrupção da luminosidade do led e
envia então um sinal para o microcontrolador. O microcontrolador devolve um sinal
confirmando o recebimento, seguido da ativação do sensor de borda de líquido presente no
recipiente. Se o nível de líquido é igual a ‘300 ml’ (recipiente cheio), o sensor de borda
devolve um sinal identificando que o recipiente está cheio, e no LCD da matriz de testes
aparece uma mensagem de que o recipiente que está sendo utilizado já possui a quantidade
máxima de líquido suportado. Caso contrário, é iniciada outra etapa.
47
Quando um recipiente é identificado como vazio após a detecção pelo sensor de borda,
o microcontrolador recebe um sinal de que o recipiente está vazio e então envia um sinal para
que a fonte ATX seja ligada, e ao liga-la uma mensagem é enviada para o display de LCD
informando que o recipiente está sendo abastecido com o líquido.
A fonte ATX ao ser ligado pelo microcontrolador, por sua vez, liga a bomba d’água que
está conectada a fonte ATX. Ao ligar a bomba, o seu motor faz com que o líquido que está
contido no reservatório percorra o duto que está acoplada a bomba e que vai até os bocais.
Quando o líquido chega ao bocal, ele é despejado diretamente no recipiente que está no
suporte do painel frontal, até enchê-lo.
O líquido escoado pela bomba só para de encher o recipiente, então, após o sensor de
borda identificar a presença de líquido. Ao detectar a presença de líquido (recipiente cheio),
então o sensor de borda envia um sinal para o microcontrolador para que desligue a fonte
ATX e ao desliga-la uma mensagem é enviada para o display de LCD informando que o
recipiente foi abastecido com sucesso. Consequentemente, a bomba também é desligada,
cessando o escoamento do líquido.
Para que seja assegurado o abastecimento de um recipiente e também a integridade dos
equipamentos da arquitetura do projeto, o nível mínimo de líquido dentro do reservatório deve
ser respeitado. E para que isso ocorra, quando o sensor de nível indicar que o mínimo foi
atingido, um LED que estará ligado ao microcontrolador, indicará que é necessária a
reposição de líquido no reservatório, se mantendo ligado, e enquanto este LED estiver ligado,
a máquina de refrigerantes fica em estado de Standy by, e tem o seu funcionamento
interrompido. O LED então só será desligado pelo microcontrolador quando o sensor de nível
detectar que o líquido do reservatório já excedeu o nível mínimo.
4 RESULTADOS E DISCUSSÃO
Neste tópico serão apresentados os resultados obtidos com os testes que foram
realizados após a construção da máquina de refrigerantes em modo simulado e também em
protótipo real.
48
Serão discutidas as possíveis formas que o sistema embarcado permite interagir com o
usuário e também com o próprio sistema. Logo, com a junção destas formas de interação e de
acordo com resultados obtidos à partir disto, origina-se o cenário de testes.
4.1 TESTES COM O PROTÓTIPO SIMULADO
Com o objetivo de obter resultados quanto ao tempo de resposta do algoritmo e
desempenho da máquina de refrigerante, foram analisados as seguintes possibilidades junto ao
cenário de testes simulado, conforme descrito abaixo.
O tempo de inicialização da máquina de refrigerantes é de aproximadamente 4799ms. O
tempo para análise e detecção do sensor de presença é de aproximadamente 100us. O tempo
para análise do sensor de borda é de aproximadamente 60us. O tempo para análise do sensor
de nível é de aproximadamente 32us. O tempo de resposta do abastecimento é de
aproximadamente 32us, e de um novo abastecimento é de aproximadamente 5007ms.
O cenário de testes possui 7 situações possíveis.
Primeira situação: A máquina inicializa e com o switch 1 aberto, é detectado ausência
de líquido dentro do reservatório. É impresso no display de LCD uma mensagem para que
abasteça o reservatório (“Abastecer Reservatório”). A máquina fica então inoperante até que o
reservatório seja abastecido.
Segunda situação. A máquina inicializa e com o switch 1 fechado, é detectado a
presença de líquido dentro do reservatório. É impresso no display de LCD uma mensagem de
que a máquina está pronta e aguardando que um recipiente seja colocado no suporte
(“Maquina Pronta! Esperando Copo..”).
Terceira situação. É simulado pelo switch 3 fechado, um recipiente vazio na máquina
para que seja abastecido. A máquina verifica se há líquido dentro do reservatório por meio do
switch 1 (que está fechado), verifica se switch 2 está aberto (significando recipiente vazio) e
também verifica se o switch 3 (que está fechado) detectou a presença de um recipiente. Se
estas três variáveis forem verdadeiras o recipiente simulado é abastecido e a máquina imprime
49
no display de LCD uma mensagem informando que o recipiente está sendo abastecido
(“Abastecendo Recipiente”).
Quarta situação. É simulado um recipiente cheio na máquina para que seja abastecido.
O switch 2 (que deverá estar fechado) detecta que o nível de líquido dentro do recipiente está
no máximo e não abastece o recipiente. E continua aguardando um recipiente vazio para que
seja abastecido.
Quinta situação. O switch 2 (fechado) identifica após o abastecimento do recipiente, que
o nível máximo foi atingido. É desativado o relé, desligando o contato com o switch 4,
cessando o abastecimento. A máquina então imprime uma mensagem no display de LCD
informando que o recipiente está abastecido e que pode ser retirado do suporte (“Copo
abastecido, Pode Retirar...”).
Sexta situação. Durante o abastecimento de líquido de um recipiente simulado, por
algum motivo o recipiente é retirado do suporte de abastecimento. O switch 3 (aberto)
identifica a ausência de presença e desliga o relé, desligando o contato com o switch 4,
cessando o abastecimento. É impresso então no display de LCD uma mensagem de que o
recipiente já está abastecido e pode ser retirado do suporte de abastecimento (“Copo
abastecido, Pode Retirar...”).
Sétima situação. Durante o abastecimento simulado de líquido do recipiente, acaba o
líquido de dentro do reservatório (switch 1 aberto). O switch 1 (aberto), identifica a ausência
de líquido no reservatório e imprime uma mensagem no display de LCD informando que é
necessário abastecer o reservatório (“Abastecer Reservatorio”).
4.2 TESTES COM O PROTÓTIPO REAL
Com o objetivo de obter resultados mais próximos possíveis da simulação, que se
mostraram bastante satisfatórios, foram realizados testes de vazão e rotinas de funcionamento
do protótipo da máquina de refrigerantes.
Quanto ao teste de vazão, foi possível perceber que para garantir o tempo de
abastecimento calculado anteriormente, o abastecimento é prejudicado pelo retorno de líquido
50
que ocorre pela tubulação. Para que este problema seja evitado, foi necessário que a tubulação
mantivesse uma certa curvatura próxima ao bocal.
Componentes eletrônicos como os resistores e o relé, tiveram que ser trocados para que
não fosse prejudicado o funcionamento do protótipo e também para que não ocorresse queima
de demais componentes eletrônicos ou outros equipamentos.
As rotinas de funcionamento do protótipo físico foram estabelecidas em 7 etapas e são
detalhadas abaixo.
Primeira situação. A máquina inicializa e o sensor de nível detecta a ausência de líquido
dentro do reservatório. (É impresso no display de LCD uma mensagem para que abasteça o
reservatório "Abastecer Reservatorio").
Segunda situação. A máquina inicializa e o sensor de nível detecta a presença de líquido
dentro do reservatório. (É impresso no display de LCD uma mensagem de que a máquina está
pronta e aguardando que um recipiente seja colocado no suporte).
Terceira situação. É colocado um recipiente vazio na máquina para que seja abastecido.
(Máquina verifica se há líquido dentro do reservatório por meio do sensor de nível, verifica se
o nível de líquido do recipiente não está até a borda e também verifica se o sensor de presença
está ligado. Se estas três variáveis forem verdadeiras o recipiente é abastecido e a máquina
imprime no display de LCD uma mensagem informando que o recipiente está sendo
abastecido "Abastecendo Recipiente").
Quarta situação. É colocado um recipiente cheio na máquina para que seja abastecido. O
sensor de borda detecta que o nível de líquido dentro do recipiente está no máximo e não
abastece o recipiente, e continua aguardando um recipiente vazio para que seja abastecido.
Quinta situação. O sensor de borda identifica após o abastecimento que o nível máximo
foi atingido. É desativado o relé, desligando a bomba d'água e cessando o abastecimento. A
máquina então imprime uma mensagem no display de LCD informando que o recipiente está
abastecido e que pode ser retirado do suporte "Copo abastecido, Pode Retirar...".
Sexta situação. Durante o abastecimento de líquido do recipiente, por algum motivo o
recipiente é retirado do suporte de abastecimento. (O sensor de presença identifica a ausência
de sinal e desliga o relé, desligando a bomba d'água, cessando o abastecimento. É impresso
51
então no display de LCD uma mensagem de que o recipiente já está abastecido e pode ser
retirado do suporte de abastecimento."Copo abastecido, Pode Retirar...") .
Sétima situação. Durante o abastecimento de líquido do recipiente, acaba o líquido de
dentro do reservatório. O sensor de nível identifica a ausência de líquido no reservatório e
imprime uma mensagem no display de LCD informando que é necessário abastecer o
reservatório "Abastecer Reservatorio".
5 CONCLUSÕES
Entre as conclusões alcançadas por este trabalho existem afirmações subdivididas em
duas vertentes: relativas ao envolvimento teórico do trabalho com áreas multidisciplinares e
relativas ao empenho de implementação prática em simulação e prototipação física.
Referente ao envolvimento teórico com diversas áreas de conhecimento, ficou evidente
que apenas conhecimentos de Computação não são suficientes para a execução de um projeto
de automação industrial que tenha os requisitos como os apontados nos objetivos do presente
trabalho. Assim, para a viabilização de projetos dessa magnitude é necessária a sinergia que
contempla as grandes áreas de Ciências da Computação, Eletrônica, Engenharia e Automação
Industrial. Tecendo um comentário mais específico, tais conhecimentos vão além das
trivialidades teóricas e se imergem no universo dos traquejos práticos de junção dos
componentes, dos testes desses elementos e da programação final de suas funcionalidades.
Referente a implementação prática em simulação e prototipação física da máquina de
refrigerantes proposta neste trabalho como tema de estudo, foi possível averiguar que existem
diferenças críticas quanto ao modelo computacional simulado e o modelo computacional
realizado fisicamente.
Com o modelo simulado foi possível obter todas as características do modelo
computacional do sistema de controle da máquina de refrigerantes sem o ônus da aquisição de
componentes físicos, permitindo uma série de adaptações, modificações de tempo nos
componentes e ajustes de funcionalidade, fatores esses que facilitaram o entendimento da
plataforma da máquina e os testes dos vários cenários e situações que poderiam ocorrer. A
52
simulação ainda se mostrou um mecanismo rápido para se visualizar os tempos das ações
(abastecimento, detecção pelos sensores, entre outros) inerentes à máquina de refrigerantes.
Um fator detectado como limitação da simulação foi a ausência de consideração na
simulação de componentes físicos necessários na prática para a não ocorrência de pane, por
exemplo, todo relé necessita de um componente (diodo) ligado em paralelo à bubina. Tal
limitação só foi passível de detecção quando das tentativas de execução dos primeiros
experimentos práticos com o programa de controle da máquina.
Com o modelo físico, foram identificadas algumas necessidades que não se mostraram
necessárias durante a simulação, como por exemplo, a potência dos resistores, do transistor e
do relé. Estes componentes durante a contrução e testes, tiveram que ser alterados com a
devida potência de acordo com o que se esperava, para que não ocorresse queima de
equipamentos e componentes eletrônicos.
O tempo de abastecimento do protótipo físico se mostrou bem diferente quanto à
simulação. Assim como o delay encontrado em cada comando e funções do código-fonte.
Outro fator que não pode ser simulado e foi aperfeiçoado durante os testes, foi o retorno
de líquido após o abastecimento de um recipiente pela moto bomba. O líquido que retornava
após o abastecimento, muitas vezes atrapalhou o funcionamento da máquina, e alterações no
código fonte foram necessárias para sanar esse problema.
53
6 TRABALHOS FUTUROS
Baseado no desenvolvimento e conclusão dos objetivos iniciais do presente projeto,
identificou-se diversas vertentes para futuros trabalhos. Serão abordados neste capítulo tais
vertentes com uma breve descrição representando e detalhando as sugestões propostas.
Desta maneira, novas pesquisas poderão surgir, agregando valores ao presente trabalho
possibilitando a sua continuidade, e ao realizar a junção de novas tecnologias à Maquina de
refrigerante, o ganho de versatilidade se torna algo substancial.
Segue abaixo as sugestões identificadas para futuros trabalhos.
Primeira Sugestão Implementar junto ao código fonte
desenvolvido em linguagem de
programação C, novas rotinas para que os
push buttons tenham utilidade dentro do
escopo da máquina de refrigerante. Os
botões nomeados RB0 e RB1 poderiam
assumir as funções de pause (PIC) da
máquina de refrigerante e máquina em
manutenção respectivamente. Para os push
buttons RB2 e RB3 seria necessário analisar
e identificar uma real usabilidade para os
mesmos.
Segunda Sugestão Implementar junto ao código fonte novos
níveis de abastecimento para a máquina de
refrigerantes. Estes níveis assumiriam os
valores de 500ml e 700ml que são valores
padrão para a indústria de máquinas de
refrigerante. Desta forma para estes novos
níveis seriam necessários dois sensores
adicionais ao projeto para realizar estas
tarefas.
54
Terceira Sugestão Desenvolver e implementar um sistema de
liberação de crédito para abastecimento via
leitor de cartão inteligente. Desta forma para
cada quantia ‘x’ de créditos obtivos, seriam
armazenados no cartão os valores de
quantidade de créditos, tipo do líquido
escolhido e tamanho do copo.
Quarta Sugestão Expandir o número de bocais da máquina de
refrigerante, aumentando a possibilidade de
abastecimento com diversos sabores.
Quinta Sugestão Estudar a viabilidade de construção e
adaptação da máquina de refrigerante, para
o abastecimento de novos líquidos com a
utilização de válvulas de pressão. Alterando
o perfil da máquina para líquidos como
chopp e café.
Sexta Sugestão Colocar uma porta automatizada de
abastecimento para que o usuário não possa
retirar o recipiente de dentro da máquina.
55
7 REFERÊNCIAS
ABOUT the Eclipse Foundation. Eclipse, 2011. Disponível em:
<http://www.eclipse.org/org/>. Acesso em 20 mar. 2011.
ACESSÓRIOS de Computador/Fontes. Multilaser, 2011. Disponível em:
<http://www.multilaser.com.br/produtos.php?id=4677>. Acesso em: 20 mar. 2011.
AUSTIN, Calvin; PAWLAN, Monica. Advanced Programming For The Java 2 Platform.
1. ed. Addison Wesley, 2000.
BRAGA, Newton C. Experimentos com Diodos: Para Aprender o Funcionamento dos
Semicondutores. Saber Eletrônica, 2010. Disponível em:
<http://www.sabereletronica.com.br/secoes/leitura/1622>. Acesso em 20 mar. 2011.
BRAGA, Newton C. LEDs Lâmpadas Substituem em Aplicações Automotivas. Saber
Eletrônica, 2009. Disponível em: <http://www.sabereletronica.com.br/secoes/leitura/1450>.
Acesso em 20 mar. 2011.
BRAGA, Newton C. O multímetro, Eletrônica Total, São Paulo, n. 138, ago. 2009.
Disponível em: <http://www.sabereletronica.com.br/secoes/leitura/1393>. Acesso em: 20
mar. 2011.
BRAGA, Newton C. O que são e como funcionam os potenciômetros digitais, Eletrônica
Total, São Paulo, n. 125, jul. 2007. Disponível em:
<http://www.sabereletronica.com.br/secoes/leitura/115>. Acesso em: 20 mar. 2011.
BRAGA, Newton C. Todos os tipos de sensores, Saber Eletrônica, São Paulo, n. 405, out.
2006. Disponível em: <http://www.sabereletronica.com.br/secoes/leitura/661>. Acesso em:
20 mar. 2011.
CCS C Compiler Details. CCS Custom Computer Service, 2011. Disponível em:
<http://www.ccsinfo.com/content.php?page=compiler-details>. Acesso em: 14 out. 2011.
CUNHA, Alessandro F., Como Fazer a Leitura de Capacitores. Saber Eletrônica, 2008.
Disponível em: <http://www.sabereletronica.com.br/secoes/leitura/267>. Acesso em: 20 mar.
2011.
DAMASCENO, Marcelo Gonçalves. Potenciômetro Digital de 256 passos: PD-PIC II,
Eletrônica Total, São Paulo, n. 131, jul. 2008. Disponível em:
<http://www.sabereletronica.com.br/secoes/leitura/865>. Acesso em: 20 mar. 2011.
DOMINGOS, Wellington Rocha. Como Trabalhar com Display LCD. Saber Eletrônica,
2009. Disponível em: <http://www.sabereletronica.com.br/secoes/leitura/1203>. Acesso em:
20 mar. 2011.
56
GABRILOVICH, Evgeniy; FINKELSTEIN, Lev. JNI – C++ Integration made easy, 2001.
Disponível em: <http://www.cs.technion.ac.il/~gabr/papers/cuj_jni.pdf>. Acesso em 20 mar.
2011.
ISIS Schematic Capture. Labcenter, 2011. Disponível em:
<http://www.labcenter.com/products/schematic.cfm>. Acesso em 14 out. 2011.
KIT Didático Cerne Bluetooth. Cerne-Tec, 2011. Disponível em: <http://www.cerne-
tec.com.br/detalhescerneblue.htm>. Acesso em: 20 mar. 2011.
LL101101. Honeywell, 2004. Disponível em:
<http://sccatalog.honeywell.com/imc/printfriendly.asp?FAM=liquidlevel&PN=LL101101>.
Acesso em: 20 mar. 2011.
MARTINS,Nardenio Almeida. Sistemas Microcontrolados: Uma Abordagem com o
Microcontrolador PIC16F84. 1. ed. 1. Editora Novatec, 2005.
MANUAL do Proprietário. SarloBetter, 2011. Disponível em:
<http://www.sarlobetter.com.br/index.php?action=forceDownload&path=/media/noticias/files
/20006293424ae96b21e030c.pdf>. Acesso em: 20 mar. 2011.
MICROCHIP PIC16F876A DATASHEET. Microchip, 2011. Disponível em:
<http://ww1.microchip.com/downloads/en/DeviceDoc/39582b.pdf>. Acesso em: 28 jul. 2011.
MOSAICO ENGENHARIA. Mosaico, 2011. Disponível em: <http://www.mosaico.com.br/>.
Acesso em: 28 jul. 2011.
MPLAB User’s Guid with MPLAB Editor and MPLAB SIM Simulator. Microchip, 2009.
Disponível em:
<http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_User_Guide_51519c.pdf>.
Acesso em: 20 mar. 2011.
MULTIMETROS. Hayamax, 2011. Disponível em:
<http://www.hayamax.com.br/0600020020-
multimetros/multimetro_analogico_ft1000a_ftg#_especific>. Acesso em: 20 mar. 2011.
NICOLISI, Denys E. C. Microcontrolador 8051 Detalhado. 6. ed. Editora Érica, 2004.
PIC C Builder for Eclipse 0.4.2. Eclipse Market Place, 2011. Disponível em:
<http://marketplace.eclipse.org/content/pic-c-builder-eclipse>. Acesso em: 20 mar 2011.
RESISTORES. Saber Eletrônica, 2008. Disponível em:
<http://www.sabereletronica.com.br/secoes/leitura_verbete/192>. Acesso em: 20 mar. 2011.
PROTEUS PCB Software Design. Labcenter, 2011. Disponível em:
<http://www.labcenter.com>. Acesso em: 14 out. 2011.
SÁ, Maurício Cardoso de. Programação C para Microcontroladores 8051. 1. ed. São
Paulo: Érica, 2005.
SENA, Antônio Sérgio. Microcontroladores PIC. 1. ed., 2009. (mudar)
57
SOARES, Márcio José. Comunicação RS-232 – Noções Básicas – Parte 1, Saber Eletrônica,
São Paulo, n. 424, maio 2008. Disponível em:
<http://www.sabereletronica.com.br/secoes/leitura/774>. Acesso em: 20 mar. 2011.
SOTELLO. Sotello, 2011. Disponível em: <http://www.sotello.com.br/>. Acesso em: 20 mar.
2011.
SOUZA, David José de. Desbravando o PIC: Ampliado e Atualizado para PIC16F628A. 12.
ed. São Paulo: Érica, 2010.
STALLINGS, William. Arquitetura e Organização de Computadores. 5. ed. São Paulo:
Prentice Hall, 2003.
TANENBAUM, A. S. Organização Estruturada de Computadores. 5. ed. Rio de Janeiro:
Prentice-Hall, 2006.
THE Advantage VSM. Labcenter, 2011. Disponível em:
<http://www.labcenter.com/products/vsm_overview.cfm>. Acesso em 14 out. 2011.
THE Concise LCD Data Sheet. Beyond Logic, 2010. Disponível em:
<http://www.beyondlogic.org/lcd/lcd.pdf>. Acesso em: 20 mar. 2011.
TUDO sobre capacitores. Saber Eletrônica, 2010. Disponível em:
<http://www.sabereletronica.com.br/secoes/leitura/1496>. Acesso em: 20 mar. 2011.
WINPIC800. WinPic800, 2011. Disponível em:
<http://www.winpic800.com//index.php?option=com_content&task=blogcategory&id=18&It
emid=64>. Acesso em: 20 mar. 2011.
58
APÊNDICE A – PLANILHA DE CUSTOS
Fonte ATX 1 40,00 40,00
Kit cerne bluetooth 1 399,00 399,00
Moto bomba d'água 1 35,00 35,00
Multímetro 1 15,00 15,00
Reservatório 1 42,00 42,00
Sensor de nível 1 63,79 63,79
Resistores 4 0,50 2,00
Transistor NPN 1 9,00 9,00
Diodos 1 1,00 1,00
Push Button 4 1,00 4,00
0,00
Total 610,79
59
APÊNDICE B – DATASHEET PIC16F87XA
60
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0

Mais conteúdo relacionado

Semelhante a Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0

Projeto BECI
Projeto BECIProjeto BECI
TCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWER
TCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWERTCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWER
TCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWER
Gerson Roberto da Silva
 
Douglasbentoscriptoretcc 130423092544-phpapp01 (1)
Douglasbentoscriptoretcc 130423092544-phpapp01 (1)Douglasbentoscriptoretcc 130423092544-phpapp01 (1)
Douglasbentoscriptoretcc 130423092544-phpapp01 (1)
Douglas Leandro Gross de Souza
 
Um Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e...
Um Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e...Um Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e...
Um Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e...
Andre Devecchi
 
Revista programar 4
Revista programar 4Revista programar 4
Revista programar 4
Filipe Bezerra Sousa
 
Apostila pic-c
Apostila pic-cApostila pic-c
Apostila pic-c
jlconrado
 
ProIndústria 2018 - dia 23 - H201 - A01
ProIndústria 2018 - dia 23 - H201 - A01ProIndústria 2018 - dia 23 - H201 - A01
ProIndústria 2018 - dia 23 - H201 - A01
Evandro Gama (Prof. Dr.)
 
ENGENHARIA DE COMPUTAÇÃO E INTELIGÊNCIA ARTIFICIAL
ENGENHARIA DE COMPUTAÇÃO E INTELIGÊNCIA ARTIFICIALENGENHARIA DE COMPUTAÇÃO E INTELIGÊNCIA ARTIFICIAL
ENGENHARIA DE COMPUTAÇÃO E INTELIGÊNCIA ARTIFICIAL
ActiveEon
 
Monitoramento de Redes TCP/IP - Monografia
Monitoramento de Redes TCP/IP - MonografiaMonitoramento de Redes TCP/IP - Monografia
Monitoramento de Redes TCP/IP - Monografia
Pietro Scherer
 
Apresentação TCC - Braço Robótico para fins didáticos
Apresentação TCC - Braço Robótico para fins didáticosApresentação TCC - Braço Robótico para fins didáticos
Apresentação TCC - Braço Robótico para fins didáticos
Herbert Guimaraes
 
18.ago ruby 09.30_painel casos de sucesso_senai
18.ago ruby 09.30_painel casos de sucesso_senai18.ago ruby 09.30_painel casos de sucesso_senai
18.ago ruby 09.30_painel casos de sucesso_senai
itgfiles
 
aula microeletronica1
aula microeletronica1aula microeletronica1
aula microeletronica1
JooPedroChagas3
 
Palestra integracao calouros area1 2013 por victory fernandes
Palestra integracao calouros area1 2013 por victory fernandesPalestra integracao calouros area1 2013 por victory fernandes
Palestra integracao calouros area1 2013 por victory fernandes
Vic Fernandes
 
Tese de mestrado
Tese de mestradoTese de mestrado
Tese de mestrado
Bárbara Góis
 
Tendências e Oportunidades - Robótica
Tendências e Oportunidades - RobóticaTendências e Oportunidades - Robótica
Tendências e Oportunidades - Robótica
Laboratorium
 
1° BootCamp - Workshop Internet Das Coisas Para Sustentabilidade Ambiental
1° BootCamp - Workshop Internet Das Coisas Para Sustentabilidade Ambiental1° BootCamp - Workshop Internet Das Coisas Para Sustentabilidade Ambiental
1° BootCamp - Workshop Internet Das Coisas Para Sustentabilidade Ambiental
Gustavo Aquino
 
Webinar sobre Indústria 4.0
Webinar sobre Indústria 4.0Webinar sobre Indústria 4.0
Webinar sobre Indústria 4.0
Alexandre Balestrin Corrêa
 
projetos eletricos industriais
projetos eletricos industriaisprojetos eletricos industriais
projetos eletricos industriais
Claudio Moreira
 
Sistema de Aquisição de Dados aplicado à Soldagem
Sistema de Aquisição de Dados aplicado à SoldagemSistema de Aquisição de Dados aplicado à Soldagem
Sistema de Aquisição de Dados aplicado à Soldagem
Alexandre Blum Weingartner
 
Desenho técnico eletrônico
Desenho técnico eletrônicoDesenho técnico eletrônico
Desenho técnico eletrônico
Fabio Curty
 

Semelhante a Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0 (20)

Projeto BECI
Projeto BECIProjeto BECI
Projeto BECI
 
TCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWER
TCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWERTCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWER
TCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWER
 
Douglasbentoscriptoretcc 130423092544-phpapp01 (1)
Douglasbentoscriptoretcc 130423092544-phpapp01 (1)Douglasbentoscriptoretcc 130423092544-phpapp01 (1)
Douglasbentoscriptoretcc 130423092544-phpapp01 (1)
 
Um Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e...
Um Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e...Um Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e...
Um Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e...
 
Revista programar 4
Revista programar 4Revista programar 4
Revista programar 4
 
Apostila pic-c
Apostila pic-cApostila pic-c
Apostila pic-c
 
ProIndústria 2018 - dia 23 - H201 - A01
ProIndústria 2018 - dia 23 - H201 - A01ProIndústria 2018 - dia 23 - H201 - A01
ProIndústria 2018 - dia 23 - H201 - A01
 
ENGENHARIA DE COMPUTAÇÃO E INTELIGÊNCIA ARTIFICIAL
ENGENHARIA DE COMPUTAÇÃO E INTELIGÊNCIA ARTIFICIALENGENHARIA DE COMPUTAÇÃO E INTELIGÊNCIA ARTIFICIAL
ENGENHARIA DE COMPUTAÇÃO E INTELIGÊNCIA ARTIFICIAL
 
Monitoramento de Redes TCP/IP - Monografia
Monitoramento de Redes TCP/IP - MonografiaMonitoramento de Redes TCP/IP - Monografia
Monitoramento de Redes TCP/IP - Monografia
 
Apresentação TCC - Braço Robótico para fins didáticos
Apresentação TCC - Braço Robótico para fins didáticosApresentação TCC - Braço Robótico para fins didáticos
Apresentação TCC - Braço Robótico para fins didáticos
 
18.ago ruby 09.30_painel casos de sucesso_senai
18.ago ruby 09.30_painel casos de sucesso_senai18.ago ruby 09.30_painel casos de sucesso_senai
18.ago ruby 09.30_painel casos de sucesso_senai
 
aula microeletronica1
aula microeletronica1aula microeletronica1
aula microeletronica1
 
Palestra integracao calouros area1 2013 por victory fernandes
Palestra integracao calouros area1 2013 por victory fernandesPalestra integracao calouros area1 2013 por victory fernandes
Palestra integracao calouros area1 2013 por victory fernandes
 
Tese de mestrado
Tese de mestradoTese de mestrado
Tese de mestrado
 
Tendências e Oportunidades - Robótica
Tendências e Oportunidades - RobóticaTendências e Oportunidades - Robótica
Tendências e Oportunidades - Robótica
 
1° BootCamp - Workshop Internet Das Coisas Para Sustentabilidade Ambiental
1° BootCamp - Workshop Internet Das Coisas Para Sustentabilidade Ambiental1° BootCamp - Workshop Internet Das Coisas Para Sustentabilidade Ambiental
1° BootCamp - Workshop Internet Das Coisas Para Sustentabilidade Ambiental
 
Webinar sobre Indústria 4.0
Webinar sobre Indústria 4.0Webinar sobre Indústria 4.0
Webinar sobre Indústria 4.0
 
projetos eletricos industriais
projetos eletricos industriaisprojetos eletricos industriais
projetos eletricos industriais
 
Sistema de Aquisição de Dados aplicado à Soldagem
Sistema de Aquisição de Dados aplicado à SoldagemSistema de Aquisição de Dados aplicado à Soldagem
Sistema de Aquisição de Dados aplicado à Soldagem
 
Desenho técnico eletrônico
Desenho técnico eletrônicoDesenho técnico eletrônico
Desenho técnico eletrônico
 

Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0

  • 1. UNIVERSIDADE PAULISTA – UNIP RAPHAEL FERNANDES RIBEIRO PROTÓTIPO DE MÁQUINA DE REFRIGERANTES BASEADA EM MICROCONTROLADOR MICROCHIP PIC16F876A SÃO JOSÉ DO RIO PRETO 2011
  • 2. RAPHAEL FERNANDES RIBEIRO PROTÓTIPO DE MÁQUINA DE REFRIGERANTES BASEADA EM MICROCONTROLADOR MICROCHIP PIC16F876A Trabalho de conclusão de curso apresentado ao Instituto de Ciências Exatas e Tecnologia (ICET) como parte dos requisitos para obtenção do título de bacharel em Ciência da Computação, sob a orientação do Prof. MsC. Mário Henrique de Souza Pardo e co- orientação do Prof. Sandro de F. Ottoboni. SÃO JOSÉ DO RIO PRETO 2011
  • 3. RAPHAEL FERNANDES RIBEIRO PROTÓTIPO DE MÁQUINA DE REFRIGERANTES BASEADA EM MICROCONTROLADOR MICROCHIP PIC 16F876A Trabalho de conclusão de curso apresentado ao Instituto de Ciências Exatas e Tecnologia (ICET) como parte dos requisitos para obtenção do título de bacharel em Ciência da Computação, sob a orientação do Prof. MsC. Mário Henrique de Souza Pardo e co-orientação do Prof. Sandro de F. Ottoboni. Banca Examinadora: ___________________________ Prof. Msc. Luciano Cássio Lulio Universidade Paulista ___________________________________ Prof. Msc. Mário Henrique de Souza Pardo Universidade Paulista _____________________________ Prof. Esp. Thiago Luiz Parrillo Rizzo Universidade Paulista São José do Rio Preto, 01 de dezembro de 2011.
  • 4. Aos meus pais, por acreditarem na minha capacidade, pela dedicação, por oportunizarem que se realizasse meu sonho, pelo amor que me foi dedicado, meu alimento, porto seguro, meu amparo, a vocês, dedico este trabalho.
  • 5. AGRADECIMENTOS Primeiramente a DEUS, por sempre manter-me no caminho correto e por ter sido o melhor conselheiro. Aos meus pais Jarbas Jesus Ribeiro e Diva Fernandes de Jesus Ribeiro, que são a razão ímpar da minha vida e que ao meu lado sempre estiveram juntos em minhas decisões, nos momentos difíceis e também de muita alegria, me apoiando sempre. Aos meus irmãos Elias Fernandes Neto e Fernanda Laís Ribeiro, de quem sinto um grande orgulho, na distância ou próximos, sempre presentes. A minha namorada, Patrícia Calvo de Roco, por me apoiar e trazer muitas vezes a tranquilidade de que eu precisava, incentivando nos momentos que necessitei, deixo minha eterna gratidão. Ao meu orientador Mário Henrique de Souza Pardo, por acreditar que seria possível construir este sonho, depositando sua confiança, também pela orientação e dedicação, até mesmo aos finais de semana. Agradeço ainda por agregar muito a minha formação, inclusive pessoal, pois, sem a sua pessoa, não teria sido a mesma. Ao meu co-orientador Sandro de F. Ottoboni, por contribuir de forma ímpar com dicas valiosas, pela doação de um sensor para a construção do protótipo físico, além de componentes eletrônicos e de uma protoboard, equipamentos estes de importância vital para a construção do protótipo físico. Também pelo desprendimento do seu tempo, fundamental para o andamento do projeto. Ao professor Edes Costa, por ajudar no desenvolvimento do trabalho escrito, fundamentando sua construção. Ao amigo Rogério Avelino, por contribuir com informações relevantes para a simulação do projeto. E a todos que ajudaram vencendo a distância, presente, em orações para que as portas sempre se abrissem no momento oportuno. Raphael Fernandes Ribeiro
  • 6. RESUMO O presente trabalho trata de um protótipo de uma máquina de refrigerantes que terá suas funções automatizadas por um sistema microcontrolado com a utilização de um microcontrolador Microchip PIC16F876A. As funções realizadas pelo microcontrolador serão desenvolvidas em linguagem de programação C. Serão providos benefícios que são comuns para outros sistemas automatizados, como por exemplo, a agilidade em procedimentos que antes eram executados de forma manual, aumento de segurança para o homem diante à atividades de periculosidade e ganho de precisão quanto a medições como vazão de líquido. E estes fatores estão diretamente ligados ao aumento da produtividade e da qualidade em um ambiente de negócios, que por consequência gera maior rentabilidade e lucratividade. A construção do protótipo é o principal objetivo deste trabalho, todavia, é importante salientar que é consequência natural, prover a convergência entre as áreas de Ciências da Computação, Engenharia Eletrônica e Automação Industrial, permitindo assim que a combinação de conhecimentos de área distintas permitam a implementação de um projeto multidisciplinar como o presente. Para a construção do protótipo, primeiramente foi realizada uma revisão bibliográfica, também foram selecionadas empresas que possuíssem os insumos necessários para que se pudesse construir o protótipo da máquina de refrigerantes. Palavras-chave: sistema microcontrolado, microcontrolador, Microchip, PIC16F876A, C, agilidade, insumos, protótipo, automação industrial.
  • 7. ABSTRACT The present work is a prototype of a vending machine that will have its functions automated by a system microcontroller using a Microchip PIC16F876A. The functions performed by the microcontroller will be developed in C programming language. Will be provided benefits that are common to other automated systems, such as agility in procedures that were previously performed manually, increasing security for man on the activities of dangerousness and gain measurements as accurate as the flow of liquid. And these factors are directly linked to increasing productivity and quality in a business environment, which consequently leads to greater profitability and profitability. The construction of the prototype is the main objective of this work, however, it is important to stress that it is a natural consequence, to provide convergence between the areas of Computer Science, Electronic Engineering and Industrial Automation, allowing the combination of distinct areas of expertise allow implementation of a multidisciplinary project such as this. For the prototype, was first conducted a literature review, were also selected companies that possess the necessary inputs so that they could build the prototype of the vending machine. Keywords: system microcontroller, microcontroller, Microchip, PIC16F876A, C, agility, inputs, prototyping, industrial automation.
  • 8. LISTA DE FIGURAS Figura 01 – Pipelines duplos de cinco estágios........................................................................15 Figura 02 – LCD 16x2..............................................................................................................19 Figura 03 – Instrução clear display ..........................................................................................20 Figura 04 – Símbolo diodo.......................................................................................................22 Figura 05 – Exemplo utilização de diodo.................................................................................23 Figura 06 – Comunicação padrão EIA RS-232C .....................................................................25 Figura 07 – Ciclo de etapas de desenvolvimento .....................................................................32 Figura 08 – Funcionamento de Sensores Fotoelétricos............................................................36 Figura 09 – Especificações moto bomba d’agua Sarlo S180 ...................................................36 Figura 10 – Simulação do Protótipo físico da máquina de refrigerantes..................................38 Figura 11 – Fluxograma do código-fonte.................................................................................40 Figura 12 – Esquema do protótipo da máquina de refrigerantes..............................................46
  • 9. LISTA DE ABREVIATURAS E SIGLAS ATX Advanced Technology Extended. AC Alternating Current (Corrente Alternada). A Anodo ou Ânodo, pólo positivo (+) de uma fonte eletrolítica. ASCII American Standard Code for Information Interchange (Código Padrão Americano para o Intercâmbio de Informação), codificação de caracteres de oito bits baseada no alfabeto inglês. API Application Programming Interface (ou Interface de Programação de Aplicações) é um conjunto de rotinas e padrões estabelecidos por um software. CsS Sulfeto de Cádmio. CISC Complex Instruction Set Computer (Computador com um Conjunto Complexo de Instruções), arquitetura de computador. CPU Central Processing Unit (Unidade central de processamento). CHIP Circuito eletrônico miniaturizado. C ou K Catodo, pólo negativo (-) de uma fonte eletrolítica. Cm Centímetro. DC Direct Current (Corrente Contínua). DTE Data Terminal Equipament (Equipamento de terminais de dados). DCE Data Circuit-terminating Equipment (Equipamento de terminação de circuito de dados ). dB Decibéis, unidade de nível sonoro. E/S Entrada/saída. EIA Eletronic Industries Association (Aliança das Indústrias Eletrônicas). FCC Chicote Modular. GND Ground (Terra). Hz Hertz. HDD Hard Disk Drive (Dispositivo de armazenamento). I/O Input/output (Entrada/saída). IEEE Instituto de Engenheiros Eletricistas e Eletrônicos. IDE Integrated Development Environment (Ambiente Integrado para Desenvolvimento).
  • 10. JNI Java Native Interface. JVM Java Virtual Machine (Maquina Virtual Java). KB Kilobyte. Kg Kilograma. KpF Medida de capacitância, submúltiplo, Kilo-picoFarad. KC21 Módulo Bluetooth. LCD Liquid Crystal Display (Display de Cristal Líquido). LDR Líght Dependent Resistor. LED Light-emitting diode (Diodo Emissor de Luz). MIPS Millions of Instructions Per Second (Milhões de Instruções por Segundo). MPLAB Ambiente Integrado para Desenvolvimento. mm Milimetro. ml Mililitro. m Metro. nF Medida de capacitância, submúltiplo, nanoFarad. PWM Pulse Width Modulation (Modução por largura de Puslo). pF Medida de capacitância, submúltiplo, picoFarad. PVC Cloreto de Polivinila. RISC Reduced Instruction Set Computer (Computador com Conjunto Reduzido de Instruções). RS-232 Padrão para troca serial de dados binários. RC5 Receptor de infravermelho. SATA Serial Advanced Technology Attachment. ULA Unidade lógica e aritmética. Vss Negatio, notação de tensão. VSM Virtual System Modelling. Vdd Positivo, notação de tensão.
  • 11. V Volts. VOM Volt-Ohm-Miliamperímetro. VCA Voltagem Currente Alternada. VDC Voltage Direct Current. VAC Voltage Alternating Current. W Watts.
  • 12. LISTA DE SÍMBOLOS µF Medida de capacitância, submúltiplo, micro-Farad. º F Escala de temperatura, grau Fahrenheit. º C Escala de temperatura, grau Celsius. Ω Unidade de medida da resistência elétrica, Ohm.
  • 13. SUMÁRIO 1 INTRODUÇÃO ..........................................................................................................11 1.1 OBJETIVO .............................................................................................................11 1.2 JUSTIFICATIVA ...................................................................................................11 1.3 METODOLOGIA...................................................................................................12 1.4 CRONOGRAMA DE PROJETO...........................................................................12 1.5 ESTRUTURA DO TRABALHO ...........................................................................13 2 REVISÃO BIBLIOGRÁFICA..................................................................................13 2.1 ARQUITETURA DE COMPUTADORES CISC X RISC ....................................13 2.2 MICROCONTROLADORES ................................................................................15 2.2.1 Intel 8051 ...................................................................................................16 2.2.2 Microchips PIC.........................................................................................17 2.3 COMPONENTES ELETRÔNICOS DO SISTEMA MICROCONTROLADO....18 2.3.1 Display LCD..............................................................................................18 2.3.2 Capacitores................................................................................................20 2.3.3 Resistores...................................................................................................21 2.3.4 Diodos ........................................................................................................22 2.3.5 Potenciômetro ...........................................................................................23 2.3.6 LEDs ..........................................................................................................24 2.3.7 Porta de comunicação RS-232.................................................................24 2.4 MULTIMETROS PARA MEDIÇÃO DE SINAIS................................................26 2.5 LINGUAGEM ASSEMBLY DE MICROCONTROLADORES ..........................26 2.5.1 Microcontroladores Microchip Família PIC16F...................................28 2.6 PROGRAMAÇÃO DE MICROCONTROLADORES EM ALTO NÍVEL ..........28 2.7 AMBIENTE PARA PROGRAMAÇÃO................................................................30
  • 14. 2.7.1 Eclipse IDE................................................................................................31 2.7.2 MpLab .......................................................................................................31 2.7.3 PIC C Compiler ........................................................................................32 2.7.4 ISIS Schematic Capture...........................................................................32 2.8 SOFTWARE PARA GRAVAÇÃO E ERASE DE MICROCONTROLADORES FAMÍLIA PIC ........................................................................................................33 3 DESENVOLVIMENTO DO PROJETO..................................................................33 3.1 COMPONENTES...................................................................................................34 3.1.1 Kit Cerne Bluetooth .................................................................................34 3.1.2 Multímetro ................................................................................................34 3.1.3 Sensor de nível ..........................................................................................35 3.1.4 Sensor Fotoelétrico ...................................................................................35 3.1.5 Bomba submersa ......................................................................................36 3.1.6 Reservatório ..............................................................................................37 3.1.7 Fonte de alimentação ATX ......................................................................37 3.2 SIMULAÇÃO DO AMBIENTE DO PROTÓTIPO DA MÁQUINA DE REFRIGERANTES ................................................................................................37 3.2.1 Proteus Design Suite.................................................................................38 3.2.2 ISIS Schematic Capture...........................................................................38 3.2.3 VSM (Virtual System Modelling)............................................................39 3.3 IMPLEMENTAÇÃO DO CÓDIGO FONTE ........................................................39 3.4 ARQUITETURA DE PROTÓTIPO DA MÁQUINA DE REFRIGERANTES....44 3.4.1 Funcionamento .........................................................................................46 4 RESULTADOS E DISCUSSÃO ................................................................................4 4.1 TESTES COM O PROTÓTIPO SIMULADO.......................................................48 4.2 TESTES COM O PROTÓTIPO REAL..................................................................49 5 CONCLUSÕES ..........................................................................................................51
  • 15. 6 TRABALHOS FUTUROS ........................................................................................53 REFERÊNCIAS.................................................................................................................55 APÊNDICE A – PLANILHA DE CUSTOS......................................................................58 APÊNDICE B – DATASHEET PIC16F87XA..................................................................59 APÊNDICE C – ESQUEMA ELÉTRICO DA MATRIZ DE TESTES............................64 APÊNDICE D – LAYOUT DA MATRIZ DE TESTES...................................................65 APÊNDICE E – CÓDIGO-FONTE COMPLETO............................................................66 APÊNDICE F – MANUAL BOMBA SARLO.................................................................76 APÊNDICE G – DATASHEET SENSOR LL101101......................................................80
  • 16. 11 1 INTRODUÇÃO A automação por meio de microcontroladores pode ser utilizada para automatizar máquinas de refrigerantes. Iniciou-se a partir dai o desejo de se construir um protótipo de uma máquina de refrigerantes que seja automatizada por um microcontrolador que executa um software para auxiliar esta tarefa. A utilização da automação por meio de microcontroladores tem sido algo comum para o homem, pois, traz consigo muitos benefícios, tais como agilidade em procedimentos, maior segurança em atividades manuais, e também uma maior precisão pela utilização de procedimentos mecânicos e realizados por máquinas. E estes fatores em um mercado globalizado, é de vital importância para o sucesso de um negócio, assim como a sua rentabilidade. Para que estes conhecimentos pudessem fortalecer o desenvolvimento do presente trabalho, julgou-se por ser necessário o estudo de uma vasta bibliografia com fontes renomadas na área, além da aquisição de insumos para o desenvolvimento prático do protótipo do projeto. 1.1 OBJETIVO Desenvolver um protótipo físico de uma máquina de refrigerantes utilizando como base uma matriz de testes com o microcontrolador encontrado em Microchip (2011) modelo Microchip PIC16F876A e outros componentes. Desenvolver um protótipo em software que represent o protótipo físico da máquina de refrigerantes utilizando a linguagem de programação C. 1.2 JUSTIFICATIVA Os microcontroladores estão hoje presentes em todas as áreas e o ser humano se utiliza de automação, seja ela industrial, doméstica, automotiva, aeronáutica, agropecuária, agricultura, telecomunicações entre tantas outras para que as suas atividades sejam executadas
  • 17. 12 com maior agilidade, precisão e segurança, garantindo mais rentabilidade. A Ciência de Computação aliada à Engenharia são as grandes áreas que provisionam tecnologia para o mundo moderno, logo, projetos que envolvam microcontroladores são importantes para a continuidade da onda científica que investiga essa temática. 1.3 METODOLOGIA Revisão bibliográfica dos principais tópicos que envolvem a temática envolvida com a máquina de refrigerantes proposta, aquisição dos insumos inerentes ao projeto, tais como: matriz de testes da CERNE-TEC com microcontrolador Microchip PIC16F876A, moto bomba com potência de vazão adequada, tanques para reservatório de líquido, sensores de nível e de presença, fonte de alimentação ATX, multímetro e componentes eletrônicos (diodo, transistor, relé e resistores). Elaboração de programa-fonte em linguagem de programação C para operacionalizar todos os componentes ligados ao microcontrolador. Testes do software e do esquema físico montado. Avaliação de desempenho da máquina além de testes de vazão. 1.4 CRONOGRAMA DE PROJETO Fases da Pesquisa (Atividades) 2011 Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez Escolha do tema e formulação do problema Revisão Bibliográfica Aquisição de Insumos Elaboração do Programa Testes de Software Avaliação de desempenho do protótipo Redação da monografia
  • 18. 13 1.5 ESTRUTURA DO TRABALHO A seguir, será explicado como os assuntos se dividem nos capítulos. No capítulo 1, é apresentada à introdução referente ao presente trabalho, bem como os objetivos, a justificativa, a metodologia e o cronograma. No capitulo 2, a revisão bibliográfica é fornecida, assim como os elementos de eletrônica para microcontroladores, aparelhos multímetros para medição de sinais, linguagem assembly de microcontroladores, linguagens de programação em alto nível para microcontroladores, IDE para programação e softwares para gravação e regravação de microcontroladores. No capitulo 3, as informações do desenvolvimento do projeto são apresentadas, também os componentes e a arquitetura de protótipo da máquina de refrigerantes. No capitulo 4, é detalhado os resultados obtidos por meio desta pesquisa, assim como a sua discussão. No capitulo 5, são apresentadas às conclusões. Por último, no capitulo 6 são fornecidas sugestões para trabalhos futuros, referências das obras utilizadas e anexos. 2 REVISÃO BIBLIOGRÁFICA Neste capítulo são abordados os tópicos de revisão bibliográfica fundamentais para a execução do presente trabalho. 2.1 ARQUITETURAS DE COMPUTADOR CISC X RISC Segundo Tanenbaum (2006), no decorrer do final da década de 1970, pouco se pensava em projetos de máquinas simples. O que existia era uma arquitetura denominada CISC (Complex Instruction Set Computer) que significa: Computador com conjunto de instruções
  • 19. 14 complexo. Esse tipo de arquitetura ficou então conhecida, a partir dai, por ser capaz de dar a possibilidade de construir processadores que executassem centenas de instruções diferentes e fossem interpretadas por microprogramas. Um bom exemplo de instrução complexa seria uma instrução de ponto flutuante. Os computadores existentes dessa época tinham disponíveis entre 200 e 300 instruções em média. Porém, em 1980, começava a surgir um novo conceito de arquitetura computacional, o RISC (Reduced Instruction Set Computer – Computador com conjunto de instruções reduzido), por meio de um grupo que fora liderado por David Petterson e Carlo Séquin. Esse nova arquitetura chamou a atenção pelo pequeno número de instruções que trazia consigo, em média, 50. As instruções nesta arquitetura são executadas diretamente pelo hardware. Por exemplo, por meio de dois registradores que são combinados e trazem de volta um resultado que é então armazenado de volta em um registrador. A arquitetura de computadores com conjunto reduzido de instruções (RISC) foi uma das mais significativas inovações da tecnologia segundo Stallings (2003). Porém, após um grande arrebatamento por máquinas de arquitetura RISC, constatou-se que estes processadores após a junção de características CISC, poderiam ter benefícios, assim como os processadores CISC após a inclusão de características RISC, também poderiam ter melhorias. Assim, após uma grande quantia em dinheiro investida pela empresa Intel, ela consegue desenvolver um processador (486) com essas duas características. Dá-se início a um tipo de abordagem denominada híbrida, que na verdade não é tão veloz quanto ao RISC puro, porém, é um resultado global e bastante competitivo, além de permitir que sejam executados sem nenhum tipo de alteração, os softwares antigos (TANENBAUM, 2006). Alguns padrões de projetos surgiram para a construção de computadores modernos então, após duas décadas. A execução de instruções realizadas diretamente pelo hardware proporciona um ganho alto de desempenho quanto à velocidade em relação à maioria das instruções, sendo então eliminado um nível de interpretação referente às microinstruções. Uma maximização da taxa de instruções permite um alto ganho de desempenho quando se tenta inicializar o máximo de instruções por segundo. Conhecido como MIPS (Milhões de
  • 20. 15 instruções por segundo), este acrônimo permite que uma melhoria no desempenho seja realizada à partir do paralelismo de instruções. As instruções por sua vez devem possuir um tamanho fixo, além de um reduzido número de campos e serem regulares, para que se permita uma fácil decodificação. Para somar com esses fatores importante de desempenho computacional, somente instruções de STORE e LOAD devem fazer referência a memória. Isso faz com que as operações se subdividam em etapas que são separadas, o que representa então maior agilidade. Um número grande de registradores também é necessário, assim com o paralelismo de instruções. Logo, se torna possível que uma instrução seja dividida e armazenada antecipadamente ao processamento, pela CPU, em registradores para então serem executadas em paralelo. O processador Pentium original seguia padrões semelhantes a estes como na figura 1. Figura 1 – Pipelines Duplos de Cinco Estágios. Fonte: Tanenbaum, 2006, p. 36.1 2.2 MICROCONTROLADORES Também conhecidos como computadores embarcados, os microcontroladores segundo Tanenbaum (2006), são responsáveis por gerir os dispositivos e também manipular a interface que existe de usuário. Estão presentes em uma vasta gama de aparelhos com diferentes propósitos, comerciais ou científicos como por exemplo o telefone celular, o scanner, o raio x, misseis teleguiados entre outros. 1 TANENBAUM, A. S. Organização Estruturada de Computadores. 5. ed. Rio de Janeiro: Pearson Education, 2006.
  • 21. 16 Ainda segundo ele, “Dentro de alguns anos, praticamente tudo o que funciona por energia elétrica ou baterias conterá um microcontrolador”. De acordo com Martins (2005), os microcontroladores também necessitam de uma grande quantia de outros componentes, e seu surgimento se deu por meio da arquitetura de um microprocessador e seus periféricos, que seria equivalente a todo um sistema que possuísse um microprocessador e periféricos. Por caracterizar-se em ter um baixo custo de hardware e necessitar de reduzido espaço físico, os microcontroladores após a década de 70, fizeram com que os avanços da tecnologia pudessem criar uma relação custo/benefício vantajosa quanto à soluções que necessitem de processamento. Os microcontroladores tem a característica de permitir que programas sejam gravados internamente e para que isso aconteça, é necessário que se reúna toda a lógica de operações e se estruture em forma de programa como podemos ver em Souza (2010). Essa lógica de operações nada mais é do que a forma com que o sistema baseia-se para executar as ações lógicas, que dependem do estado em que se encontram os periféricos de E/S como: LEDs, relês, resistências, botões, LCD, sensores diversos e muitos outros. Após essa gravação, o programa interno então será executado toda vez que o microcontrolador for alimentado. Quanto a execução das operações lógicas e matemáticas, a Unidade Lógica Aritmética (ULA) é quem possui a função de executa-las, e para que se tenha uma maior capacidade no processamento de informações, mais poderosa deve ser a ULA do componente. Porém não é apenas da ULA que é constituído um microcontrolador. Afinal, o que o difere de um microprocessador que apesar de possuir uma ULA muito mais poderosa, é que o microcontrolador prove em uma única pastilha de silício encapsulada, uma memória de programa, comunicação serial, timers, memória de dados, portas de entrada e/ou saída paralela, contadores, PWMs, conversores analógico-digitais, etc. 2.2.1 Intel 8051
  • 22. 17 Segundo Tanenbaum (2006), foi lançado pela Intel Corporation em 1980 o chip 8051 continha cerca de 60 mil transistores, uma CPU muito rápida (comparado ao seu antecessor 8748), 4KB de memória exclusivos para leitura (e mesmo que não fosse suficiente poderia ser estendido para 64K por meio de um barramento), 128 bytes de memória para leitura/escrita, linhas de E/S, uma porta serial e temporizadores de 16 bits. O que o fazia se diferenciar dos demais CPUs de 8 bits era apresentar 32 linhas seriais de E/S que se dispunham em 4 portas de forma organizada. Essas linhas ficavam sob controle do programa e podiam ser lidas ou escritas, além de serem bidirecionais. Este chip bastante popular dentro da denominada família MCS-51 (8031, 8051, 8751, 8032, 8052 e 8752) se tornou um sucesso pelo seu custo de fabricação ser tão reduzido quando comparado aos chips de 16 e 32 bits, cerca de 30 vezes menor. Também pelo tempo que existe desde sua criação, e portanto pode-se encontrar uma vasta quantidade de softwares, simuladores, compiladores e assemblers para ele. 2.2.2 Microchips PIC Os microcontroladores PIC se diferem quanto ao seu tipo de estrutura interna de máquina da grande parte dos demais microcontroladores, como aponta Souza (2010), por se enquadrar no tipo Harvard, enquanto os demais microcontroladores tradicionais que são mais comumente encontrados no mercado apresentam um tipo de arquitetura Von-Neumann, como o modelo 8051 da família MCS-51 da Intel. A maneira como o microcontrolador faz com que os dados e o programa sejam processados, é a primordial diferença entre estes dois tipos de arquiteturas. A arquitetura Harvard possui um barramento de instruções e outro de dados e no caso dos microcontroladores PIC, existem barramentos de instruções que podem ser de 12, 14 ou 16 bits e quanto ao barramento de dados tem seu valor fixo em 8 bits. E isso permite que o processamento seja agilizado, pois, ao mesmo tempo em que uma instrução seja trazida da memória, outra é executada. O que já é diferente no tipo de arquitetura Von-Neumann que possui um único barramento interno de 8 bits que é dividido para o tráfego de dados e instruções.
  • 23. 18 Existe ainda a vantagem na economia de uma grande quantia na memória de programa no tipo de arquitetura Harvard, pois, é utilizada apenas uma única posição de memória por instrução, devido ao fato de que o OPCODE da instrução já armazena o local onde ela vai operar e o dado, de acordo com a necessidade. Com isso, é possível observar que os PICs utilizam-se da tecnologia RISC, pelo fato de que não há muita sobra de espaço para o código da instrução dentro da palavra do OPCODE que pode ser de 12, 14 ou 16 bits. Os PICs se diferem quanto ao número de instruções que possuem, que é de cerca de 35 em relação aos convencionais microcontroladores do tipo de arquitetura CISC, que possuem cerca de mais de cem instruções. Porém, é necessário que se construa muitas funções, e que o programador tenha grandes habilidades para sanar a questão de não possuir instruções diretas (SOUZA, 2010). Os PICs possuem um numero de E/S que podem varia para cada modelo e que são denominados PORTAS. Se dividem em dois grupos que são PORTA (port A) e PORTB (port B). Tanto o PORTA quanto o PORTB possuem pinos que podem ser configurados como entrada ou saída. É necessário para o funcionamento de um microcontrolador que ele seja alimentado. E ele recebe energia pelos pinos Vss(GND) e Vdd (+5Vcc). Apesar da tensão nominal ser de 5Vcc nos PICs, para cada modelo pode haver uma variação entre 2.0 a 5.5Vcc. 2.3 COMPONENTES ELETRÔNICOS DO SISTEMA MICROCONTROLADO Para a criação de qualquer sistema computacional baseado em microcontroladores, são necessários muitos elementos periféricos de eletrônica que trabalha em colaboração com a CPU em questão. A seguir será feita uma revisão sucinta sobre alguns elementos de eletrônica mais comumente engajados com projetos de computação embarcada. 2.3.1 Display LCD
  • 24. 19 Segundo Domingos (2009), os displays de LCD (Liquid Crystal Display) ou (Display de Cristal Líquido), são componentes eletrônicos que quando utilizados em projetos para diversos fins, apresentam uma série de vantagens computacionais, como a possível visualização do estado em que se encontra um determinado componente dentro do circuito em que o LCD esteja inserido e escrever caracteres para representar uma mensagem quando é necessário acessar uma porta com proteção por senha. Sua forma de funcionamento se difere da tecnologia dos displays de LEDs, que acendiam quando excitados. No caso do LCD, elementos transparentes são excitados por um sinal do circuito, estes componentes em contato com o líquido se tornam então intransponíveis quanto à luz, que por sua vez perde a sua reflexão. Assim, aparece uma região negra onde antes se tinha uma área com fundo branco. O display do tipo LCD comumente empregado em aplicações e projetos, é o que possui duas linhas e dezesseis caracteres, é geralmente representado por 2x16, onde o “2” representa o numero de linhas (na horizontal) e o “16” representa o número de caracteres que podem ser impressos na tela do LCD. É interessante ressaltar que não é possível utilizar acentuação nas palavras que são representadas no LCD. Palavras como “não”, “é”, e “país”, quando impressas no LCD, adquirem o seguinte formato: “nao”, “e” e “pais”. Abaixo segue o layout do display de LCD de 2 linhas x 16 caracteres. Figura 2 – LCD 16x2. Fonte: Beyondlogic, 2000.2 O pino 1 (Vss) é responsável pela alimentação negativa (Terra - GND), o pino 2 (Vdd) é responsável pela alimentação positiva (+5V), o pino 3 (Vee) tem como função o contraste (vai 2 THE Concise LCD Data Sheet. Beyond Logic, 2010. Disponível em: <http://www.beyondlogic.org/lcd/lcd.pdf>. Acesso em: 20 mar. 2011.
  • 25. 20 de 0 até 5V), o pino 4 (RS) identifica se o tipo de função que chega é um comando (bit = 0) ou se é um dado (bit = 1), o pino 5 (R/W) traduz o bit = 0 para escrita e bit = 1 para leitura, o pino 6 (E) tem a função de habilitar o display (bit = 1), do intervalo que vai desde o pino 7 (D0) ao pino 14 (D7) utiliza-se para dados. Um exemplo de uma instrução que limpa o display é realizada de acordo com a figura 3, abaixo. Figura 3 – Instrução Clear Display. Fonte: Beyondlogic, 2000.2 Neste exemplo o bit significativo que é ativado (1) é o D0. E essa combinação permite que o display seja limpo. Outro exemplo para escrita é leitura de um dado, pode-se conseguir pelas seguintes combinações de bits: RS=1 e RW=0 para escrever um dado no display e RS=1 e RW=1 para ler um dado no display. 2.3.2 Capacitores Em Saber Eletrônica (2010a), conhecido por ter como função básica o armazenamento de cargas elétricas (capacitância), para que de alguma forma possa interagir com o circuito em que esteja acoplado, o capacitor, é um componente que deve ser manuseado com cuidado. É bastante popular a sua utilização em diversos tipos de equipamentos eletrônicos. Apesar de existir diversos tipos de capacitores, pode-se dizer que é bem simples o seu princípio de funcionamento. Há algum tempo este componente eletrônico era denominado de “condensador”, pois, acreditava-se que ele era capaz de “condensar” a eletricidade. E por esse motivo ainda hoje algumas pessoas utilizam dessa nomenclatura para se referir a este componente. O autor Cunha (2008) cita que a unidade para se medir a capacitância de um capacitor é o farad (F), e é utilizado em submúltiplos como µF, nF, kpF ou pF. Ainda segundo o autor, o capacitor é formado basicamente de duas armaduras (eletrodos metálicos) e separadas por um
  • 26. 21 dielétrico que funciona como um isolante. As armaduras podem ser carregadas eletricamente de forma positiva e negativa, armazenando cargas de igual quantidade e se diferenciando apenas quanto à polaridade em cada uma das armaduras. Ao se desconectar a fonte de alimentação do capacitor (pode ser uma pilha, bateria, etc), o capacitor tem a capacidade de manter em suas armaduras as cargas elétricas. E para que haja uma descarga do capacitor, é necessário que se conecte a ele um circuito externo que permita desequilibrar o lado que se tem elétrons em grande quantidade (negativo) para o lado positivo, permitindo assim que ocorra a neutralização e o descarregamento de suas cargas. Algumas informações importantes sobre os capacitores, é que para que eles possam armazenar uma grande quantidade de cargas, maior terá de ser a tensão que se aplicará sobre eles, pois, o armazenamento de cargas é constante e depende de alguns fatores como a superfície da armadura, a distância de separação entre elas e o tipo de substância utilizado na confecção do dielétrico. Além disso, eles possuem propriedades elétricas como a não circulação de DC (Direct Corrent - Corrente Continua) e a circulação de AC (Alternated Corrent - Corrente Alternada) dificultando a passagem que baixas correntes. Alguns tipos de capacitores comumente encontrados são os do tipo dielétricos de cerâmica, mica e plástico, e também os eletrolíticos de tântalo, alumínio e nióbio. 2.3.3 Resistores Os resistores são componentes que tem como função principal em um circuito eletrônico, reduzir a tensão. Não são bons condutores de energia, e dissipam calor, pois, convertem a energia em calor (SABER ELETRÔNICA, 2008). A nomenclatura utilizada para mensurar a sua capacidade é o ohms (Ω). Um resistor pode ter sua capacidade de resistência muito alta ou também pode ser bem baixa (milhões ou poucos ohms). Um tipo comumente encontrado de resistor possui em sua composição como principal elemento o carbono, porém, também pode ser encontrado outro tipo de resistor que é o de película metálica, ele é constituído de fios de nicromo e é envolvido por uma base de porcelana. Uma diferença que se pode encontrar nestes dois tipos de resistores, é o ruído que é
  • 27. 22 gerado, e no caso do resistor de carbono, é bastante perceptível quando ele está inserido em um circuito de som. Assim o material e o tamanho de um resistor é que define a quantidade de energia que ele pode converter em calor sem queimar. O resistor pode ser facilmente encontrado e às vezes em grandes quantidades em qualquer tipo equipamento eletrônico. 2.3.4 Diodos Os diodos fazem parte da família dos semicondutores e é o mais simples deles. Eles permitem a passagem de corrente elétrica em um circuito conduzindo-a em um único sentido (BRAGA, 2010). O diodo possui tamanho e composição diferenciada de acordo com a necessidade de sua utilização e em sua composição ele possui dois tipos diferentes de materiais semicondutores, que são o germânio e o silício e também o selênio no caso de componentes antigos. Figura 4 – Símbolo Diodo. Fonte: Saber Eletrônica, 2010b.3 Os diodos são representados de acordo com a sua simbologia à cima pela figura 4, onde o “A” é o anodo (positivo), o “C” ou “K” é o catodo (negativo). Uma empregabilidade do diodo em um circuito eletrônico é quanto à proteção de aparelhos eletrônicos em relação ao sentido que a corrente está circulando dentro do circuito. Para que, por exemplo, um circuito não tenha problemas com a alimentação no caso de inversão do sentido da fonte que alimentará o circuito, pode-se utilizar um diodo conforme a figura abaixo. 3 BRAGA, Newton C. Experimentos com Diodos: Para Aprender o Funcionamento dos Semicondutores. Saber Eletrônica, 2010. Disponível em: <http://www.sabereletronica.com.br/secoes/leitura/1622>. Acesso em 20 mar. 2011.
  • 28. 23 Figura 5 – Exemplo utilização de Diodo. Fonte: Saber Eletrônica, 2010b.4 2.3.5 Potenciômetro Segundo Braga (2007), “potenciômetros são resistores com uma derivação central”. Um potenciômetro pode ser encontrado em dois diferentes tipos, analógico (mecânico) ou digital. O potenciômetro analógico possui em sua composição, componentes que são determinantes para sua precisão, componentes estes como o filme carbono, cerâmica com metal e fio de níquel que formam o que se chama de pista de material resistivo, também possui um eixo e uma terminação na ponta. O contato entre o eixo e a terminação forma uma resistência que pode varia de acordo com a intensidade deste contato, e está resistência é aplicada aos terminais extremos e também ao terminal central. As características entre os terminais e o eixo também influem diretamente na precisão do potenciômetro. Um potenciômetro analógico, não pode ter lacunas entre o eixo e a pista, pois, pode permitir com essa abertura o acumulo de micropartículas de poeira e outros resíduos que com o tempo podem aumentar a resistência entre o eixo e a pista, prejudicando diretamente a precisão do componente. O potenciômetro digital, segundo Damasceno (2008), pode ser facilmente encontrado em aparelhos de som automotivo para controle do volume, em monitores de LCD para controle do contraste, em telefones para controle automático de ganho de qualidade de sinal e também em fonte de alimentação para ajuste de tensão. 4 BRAGA, Newton C. Experimentos com Diodos: Para Aprender o Funcionamento dos Semicondutores. Saber Eletrônica, 2010. Disponível em: <http://www.sabereletronica.com.br/secoes/leitura/1622>. Acesso em 20 mar. 2011.
  • 29. 24 Algumas vantagens do ponto de vista de resistência do componente são mencionadas ainda segundo o autor, que é o fato de que o potenciômetro digital, não possui desgaste mecânico proveniente do acumulo de partículas na região entre o eixo e a pista. Quanto ao potenciômetro analógico, além desse tipo de desgaste, quando inserido em um ambiente que haja vibrações ou batidas (motor), pode-se ter um deslocamento de seus componentes, o que não ocorre no potenciômetro digital. O potenciômetro digital é definido por Braga (2007), como sendo um composto de resistores que são arranjados em série e que de acordo com uma lógica de controle, são selecionáveis. Para realizar um posicionamento da resistência, que no caso do analógico é feito manualmente, no digital isso ocorre por meio de uma lógica de controle de números binários. 2.3.6 LEDs O LED é um componente emissor de luz, com finalidade de comunicação sinalizada (placas de circuito impresso) ou até mesmo iluminação (veículos). A sua confecção é realizada com uma pastilha semicondutora a base de diferentes metais, entre eles o Arsênio e o Gálio. O LED emite luz após estes metais serem excitados por uma corrente elétrica. A luz que é emitida é monocromática, ou seja, é em uma determinada faixa curta do espectro que a energia emitida irá concentrar-se. Assim, por exemplo, se um LED emite uma luz azul, significa que toda a energia que é produzida por ele, é aproveitada para a emissão dessa luz azul (SABER ELETRÔNICA, 2009). Os LEDs podem ser fabricados em qualquer tipo de cor, inclusive o branco, que nada mais é do que a junção de todas as cores. 2.3.7 Porta de Comunicação RS-232 O padrão de comunicação do tipo serial RS-232 surgiu em 1969 e a sua criação foi conjunta pelas empresas EIA (Electronic Industries Association), Laboratórios Bell e alguns fabricantes de equipamentos desse tipo de seguimento (SOARES, 2008).
  • 30. 25 Surgiu ainda no mesmo ano após revisões no padrão da tecnologia RS-232, o padrão EIA RS-232C. Este padrão é utilizado até os dias atuais e define a comunicação do tipo serial entre microcomputadores (DTE – Data Terminal Equipment) e modens ou periféricos (DCE – Data Communications Equipment). Este padrão possui normas quanto a níveis e valores elétricos além do tipo de pinagem e conectores (DB09 e DB25). Figura 6 – Comunicação Padrão EIA RS-232C. Fonte: Soares, 2008.5 Por exemplo, a figura à cima mostra como é realizada a comunicação realizada pelo padrão EIA RS-232C, transmitindo um código da tabela ASCII que é traduzido em um caractere que neste caso é o “A”. Este padrão possui tensão para o nível lógico “0” entre +3V e +15V e para o nível lógico “1”, a tensão varia entre -3V e -15V. A transmissão que é realizada entre equipamentos do tipo DTE e DCE são do tipo serial, e deste modo os dados trafegam de forma paralela entre os equipamentos. Na origem, o dado é um byte e ele é transformado em uma sequência de bits, esses bits são enviados e chegam ao destino, onde são novamente transformados em byte. 5 SOARES, Márcio José. Comunicação RS-232 – Noções Básicas – Parte 1, Saber Eletrônica, São Paulo, n. 424, maio 2008. Disponível em: <http://www.sabereletronica.com.br/secoes/leitura/774>. Acesso em: 20 mar. 2011.
  • 31. 26 2.4 MULTIMETROS PARA MEDIÇÃO DE SINAIS Comumente chamado de multímetro, este equipamento de utilidade imprescindível para realizar testes em circuitos e componentes eletrônicos, também pode receber o nome de multiteste e até mesmo VOM (Volt-Ohm-Miliamperímetro) (BRAGA, 2009). Um multímetro pode fazer medições de resistência (ohms - Ω), corrente (ampères - A) e tensão (volts - V). Um multímetro com menos complexidade (analógico) tem componentes como bobina móvel ou indicador e uma agulha que irá se deslocar pelas escalas do painel frontal do multímetro, além de uma chave que muda o tipo de grandeza elétrica, e essa chave tem o papel de modificar o circuito interno de acordo com o que se deseja medir. Outro tipo de multímetro é o digital. Ele possui características semelhantes ao do multímetro analógico, com algumas diferenças, como por exemplo, um display de cristal líquido (LCD), onde são apresentados os dados de uma medição. Para que se possa medir tensão, é necessário primeiramente saber se o que está sendo medido é tensão alternada (VCA), como por exemplo, as tomadas residenciais ou tensão contínua (VDC), como por exemplo, um circuito interno de uma calculadora. A resistência pode ser medida para encontrar cabos, conectores e fios que apresentem algum tipo de problema, pois, se durante a medição forem apresentados altos números de resistência, podemos concluir que existe um problema e há alguma ruptura de um cabo ou um conector danificado, e quando números baixos de resistência são verificados, pode-se concluir que tudo está funcionando perfeitamente, e que a eletricidade está fluindo normalmente. E para que se possa fazer uma medição de corrente, é necessário que haja uma interrupção no circuito e o multímetro deve ser intercalado. 2.5 LINGUAGEM ASSEMBLY DE MICROCONTROLADORES Para que haja comunicação entre um microcontrolador e um software, instruções devem ser reconhecidas pelo hardware. É por meio de uma linguagem denominada de linguagem de máquina que essas instruções são manipuladas em nível binário (NICOLISI, 2010).
  • 32. 27 A partir daí, para que se possa programar um software (programa fonte), utiliza-se de mnemônicos que são inteligíveis quanto a sua interpretação. Assim, um código Assembly executado em um tradutor, pode então compilar (traduzir) o código-fonte e verificar se este contém erros para posteriormente executa-lo. Sena (2009) cita que o assembly possui labels, instruções, operandos, diretivas e comentários, que na verdade são tratados como elementos básicos. O label (rótulo), por exemplo, deve ser empregado na primeira coluna do trecho do código, ele é utilizado para que ocorra um salto do microcontrolador ou até mesmo para que um goto seja executado. As instruções estão diretamente ligadas à linguagem que é adotada e também ao conjunto de instruções que são específicas para cada tipo de microcontrolador. Os operandos podem ser constantes, registros ou variáveis e devem existir para que então uma instrução possa ser executada, eles complementam a instrução. Comentários são utilizados para que um programa (código fonte) seja bem detalhado e fique bem explicado, permitindo que futuras alterações no código sejam realizadas com facilidade, dando ao programador a possibilidade de fácil compreensão do código (SENA, 2009). As diretivas se assemelham a uma instrução, porém, se diferem pelo motivo de que independem do tipo de linguagem que se deseja trabalhar, uma vez que são próprias da linguagem assembly. Um dado importante, segundo Nicolisi (2010), é que a linguagem Assembly possui limitações e uma delas é que não é possível manipular dados em ponto-flutuante. Programas Assembly se dividem em dois grupos que são do tipo native assembler (é executado apenas por um determinado microcontrolador específico) e cross-assembler (é gerado o código fonte que se deseja a partir da execução em outra máquina).
  • 33. 28 2.5.1 Microcontroladores Microchip família PIC16F Os programas desenvolvidos para os microcontroladores do tipo PIC16F devem seguir algumas regras para a sua execução. Para tanto, as instruções de um programa devem ser inseridas em uma ordem correta (SOUZA, 2010). Apesar da estruturação das instruções variarem de acordo com o estilo do programador, são adotadas algumas práticas mais comumente utilizadas por grandes empresas como a Mosaico (2011), Mosaico Engenharia, e também por muitos programadores. São utilizadas para a composição de um programa algumas tarefas como rotinas, entradas e saídas, definição das variáveis, sub-rotinas e etc. Comentários também são de suma importância para que um programa possa ser bem interpretado por outra pessoa futuramente, além de inclusões do tipo #Include, que nada mais são do que arquivos que definem, padronizam e permite maior agilidade a programação. Porém, antes de entender como funciona a programação, é necessário que se tenha em mente o set de instruções que é utilizado para que uma instrução possa ser construída. No caso da família PIC16F, são utilizadas instruções como, por exemplo, o ADD (soma), AND (“e”), MOV (mover), DEC (decremento de uma unidade), SUB (subtração) entre outras. 2.6 PROGRAMAÇÃO DE MICROCONTROLADORES EM ALTO NÍVEL As linguagens de alto nível são mais intuitivas e de fácil entendimento e não é difícil de entender o motivo. O quadro abaixo ilustra dois tipos de instruções, uma em alto nível que é representado pela linguagem C e outra em baixo nível que é representado pela linguagem Assembly (SÁ, 2005). Linguagem C main() { char contador;
  • 34. 29 Fica evidente, visualizando a codificação acima Sá (2005), que a primeira diferença existente é a economia de código, é que ela existe em maior proporção na linguagem de alto nível, porém sua execução se torna um pouco mais lenta quando comparada a linguagem de baixo nível. A linguagem C possui bibliotecas para que se possam desenvolver programas para microcontroladores do tipo PIC e 8051. No caso do 8051, quando a programação é feita em linguagem C, utiliza-se, por exemplo, a biblioteca 8051.h (IEEE, 2011). Já no caso do PIC16F876A, é utilizada nesta mesma linguagem a biblioteca P16F876A.INC (SOUZA, 2010). Para cada tipo de microcontrolador existe uma biblioteca a ele associada. Outra linguagem de desenvolvimento utilizada na programação de microcontroladores é o Java. Isso se torna possível, segundo AUSTIN; PAWLAN (2000) com a utilização do JNI (Java Native Interface), pois, permite que objetos e métodos da JVM (Java Virtual Machine) possam ser acessados pela linguagem C. for{ contador = 100; contador > 0; contador--}; while(1); } Linguagem Assembly LJMP INICIALIZA INICIAR: MOV 0x08,#0x64 LOOP0: MOV A,0x08 SETB C SUBB A,#0x00 JC FINAL DEC 0x08 SJMP LOOP0 FINAL: SJMP $ RET INICIALIZA:
  • 35. 30 O JNI é muito útil também quanto a questões de desempenho, como cita (Gabrilovich e Finkelstein, 2001), segundo os autores o fato da API possuir boa flexibilidade, torna um fator importante na hora de programar. É possível, por exemplo, utilizar a linguagem C para escrever um programa com métodos nativos, como demostra Austin; Pawlan (2000) no código fonte abaixo que por meio de uma String recebe um nome como parâmetro (String name) e retorna o conteúdo em um array: 2.7 AMBIENTE PARA PROGRAMAÇÃO Para realizar a construção de um projeto de programação é necessário uma IDE, ou seja, um ambiente de desenvolvimento que de suporte à linguagem que se deseja trabalhar. Os IDEs (Integrated Development Environment), são ambientes de Desenvolvimento Integrado. A seguir será feita uma breve explicação sobre algumas IDEs utilizadas no desenvolvimento do presente trabalho. (native byte[] loadFile(String name)). import java.util.*; class ReadFile { //Native method declaration native byte[] loadFile(String name); //Load the library static { System.loadLibrary("nativelib"); } public static void main(String args[]) { byte buf[]; //Create class instance ReadFile mappedFile=new ReadFile(); //Call native method to load ReadFile.java buf=mappedFile.loadFile("ReadFile.java"); //Print contents of ReadFile.java for(int i=0;i<buf.length;i++) { System.out.print((char)buf[i]); } } }
  • 36. 31 2.7.1 Eclipse IDE O Eclipse é uma IDE para desenvolvimento e criação de softwares. Ele possui depurador, compilador, editor e outras ferramentas. O Eclipse é “uma comunidade de fonte aberta, cujos projetos são focados em construir uma plataforma de desenvolvimento aberta extensível composta por quadros, ferramentas e tempos de execução para a construção, implantação e gerenciamento de software em todo o ciclo de vida” (ECLIPSE, 2011a). Um plug-in utilizado para a programação, edição e construção de projetos de microcontroladores PIC da Microchip em conjunto com o Eclipse CDT, que fornece suporte para as linguagens de programação C e C++, é o PicCBuilde (ECLIPSE, 2011b). 2.7.2 MPLAB O MPLAB IDE (Microchip, 2011) recebe esse nome, pois, é uma IDE (Ambiente Integrado de Desenvolvimento) para o desenvolvimento de aplicações embarcadas. Contém ferramentas necessárias para o projeto garantindo que o projetista possa implementar o código-fonte, além de realizar o processo de compilação e de testes com o tipo de microcontrolador selecionado por ele. O MPLAB é utilizado para o estudo e desenvolvimento com a família de microcontroladores PIC. Esta IDE possui como característica principal, a sua total integração dos seus módulos com o sistema operacional da Microsoft (Microsoft Windows). E sua versão atual é a v.8.46. O processo de criação de uma aplicação dentro do ambiente de desenvolvimento do MPLAB é realizado por meio de um ciclo de etapas que são definidas como Design Cycle, a etapa de escrita do código é realizada muitas vezes (Edit/Create/Design Source Code), assim como os testes (Analyse/Debug Code) até a fase de carregar o aplicativo no microcontrolador (conversão do código que está em linguagem de alto nível para linguagem de máquina) e compila-lo, como pode ser visto na imagem abaixo.
  • 37. 32 Figura 7 – Ciclo de etapas de desenvolvimento. Fonte: Microchip, 2009.6 2.7.3 PIC C Compiler A IDE PIC C Compiler é um ambiente de desenvolvimento de softwares embarcados como é citado em CCS Custom Computer Services (2011). Este ambiente proporciona ao desenvolvedor acessar recursos de hardware por meio de bibliotecas em linguagem de programação C. Desta forma, é possível programar aplicações de tecnologia como o controle de movimentos via wireless e o toque capacitivo. E isso só é capaz, pois a IDE traz consigo mais de 307 funções que simplificam o acesso ao hardware como os temporizadores e módulos PWM (Pulse Width Modulation), além de conversores A/D e controladores de LCD. A IDE ainda gera arquivos .hex, após a compilação e build do código-fonte, à partir de arquivos .c, que permitem ao desenvolvedor executar o seu programa em um microcontrolador. Os protocolos de comunicação que são padrões na indústria, também são tratados pela IDE, permitindo a comunicação com interfaces como a USB e a RS-232. 2.7.4 ISIS Schematic Capture O software ISIS Schematic Capture, comercializado pela empresa Labcenter Eletronics (2011), é parte integrande do Proteus. Ele combina um grande ambiente de desenvolvimento 6 MPLAB User’s Guid with MPLAB Editor and MPLAB SIM Simulator. Microchip, 2009. Disponível em: <http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_User_Guide_51519c.pdf>. Acesso em: 20 mar. 2011. Compilar/Converter Debugar o código Testes do código Criação
  • 38. 33 de design e também de aparência dos componentes eletrônicos. É de vital importância para documentação técnica de projetos que envolvam desenvolvimento de sistemas embarcados que necessitem de simulação eletrônica. O ambiente possui uma vasta biblioteca de componentes eletrônicos que podem ser adicionados ao projeto para depois manuseá-los e realizar a sua configuração. O desenvolvimento de um projeto simulado no ISIS é facilitado, pois, conta com ferramentas para a execução como o Wire Auto-Router, que realiza o desenho e conexão de componente. Ainda o ambiente possui a ferramenta Bus, que mapeia o caminho de um pino ou conexão. Os testes simulados garantem ao desenvolvedor que falhas de entradas desconectadas e saídas conflitantes não ocorram, pois, o ambiente possui um relatório detalhado se ocorrer estes tipos de erros. 2.8 SOFTWARE PARA GRAVAÇÃO/REGRAVAÇÃO DE MICROCONTROLADORES FAMÍLIA PIC Para que um microcontrolador possa executar um software que foi desenvolvido em uma IDE, é necessário que um software faça a gravação do programa na memória do microcontrolador. O Winpic800 é um exemplo desse tipo de software (WINPIC800, 2010). Desenvolvido para ser executado em ambiente Windows, este software permite que o microcontrolador seja apagado (erase all), gravado com uma aplicação (program all), leitura da memória (read all) e detectar automaticamente o tipo de microcontrolador que está sendo utilizado (detect device). No Winpic800 é possível selecionar o idioma que se deseja ter em toda a sua interface, assim como o tipo de gravador que será utilizado para realizar a gravação do programa que foi desenvolvido para ser armazenado na memória do microcontrolador. 3 DESENVOLVIMENTO DO PROJETO
  • 39. 34 Neste capítulo serão explicados todos os detalhes que envolvem o projeto do presente trabalho. Serão abordados os componentes que foram utilizados para a construção do presente projeto. Será utilizado o Kit Cerne Bluetooth que é a matriz de testes, um multímetro para aferir os níveis de tensão de componentes e circuitos, um sensor de nível para garantir o nível ideal de líquido dentro do reservatório, um sensor fotoelétrico para identificar a presenção de um recipiente quando próximo ao bocal, uma moto bomba cujo papel é realizar a sucção do líquido que há no reservatório, um reservatório para armazenagem do líquido e uma fonte de alimentação ATX para suprir os níveis de tensão da moto bomba. O protótipo será baseado inicialmente simulação via Proteus ISIS e após todos os testes mostrarem a maturidade do protótipo, intenciona-se montar o mesmo fisicamente. 3.1 COMPONENTES Para a criação do protótipo foram utilizados alguns componentes como o Kit didático Cerne Bluetooth, multímetro, sensor de nível, sensor de borda, sensor de presença, bomba submersa, reservatório e fonte de alimentação ATX. A seguir será feito um detalhamento sobre estes elementos. 3.1.1 Kit Cerne Bluetooth Voltado para o desenvolvimento de aplicações embarcadas, o kit Cerne Bluetooth possui uma placa que é equipada com quatro LEDs, quatro botões push, um display LCD, receptor de infravermelho via RC5, um trimpot, uma entrada para fonte de 12V, um módulo Bluetooth KC21, um microcontrolador PIC16F867A e uma porta de comunicação RS-232. A O kit também acompanha uma fonte de 12V e um cabo serial RS-232 (CERNE-TEC, 2011). 3.1.2 Multímetro
  • 40. 35 Multímetro analógico de bolso modelo FT1000A da empresa Smart, que possui 7 faixas de medição DC, 4 faixas de medição AC, 2 faixas de medição de resistência e terminais de entrada protegidos. Possui sensibilidade de 2KΩ/Vdc & Vac, tensão DC de 0~10/50/250/1000Vdc, tensão AC de 0~10/50/250/1000Vdc, corrente DC de 0~0,5/50/500mA, resistência de x10Ω/x1KΩ (centro de escala 5KΩ) e decibéis entre - 20dB~+22dB nas faixas Vac (HAYAMAX, 2011). 3.1.3 Sensor de Nível Sensor de nível modelo LL101101 da empresa Honeywell, e ele possui um sensor do tipo básico que fornece uma saída digital que indica presença ou ausência de líquido, opera entre -40ºC e 125ºC (-40ºF e 257ºF), trabalha com temperatura de armazenamento entre 50 ° C a 150 ° C (-58 ° F a 302 ° F), sua tensão é de 5Vdc, possui aço inoxidável e faixa de pressão entre 0-5 bar (HONEYWELL, 2011). 3.1.4 Sensor Fotoelétrico Sensores do tipo fotoelétricos são citados por BRAGA (2008) como sendo um elo que os equipamentos eletrônicos devem construir em relação à interação que eles devem prover com o mundo exterior, seja o homem, outro equipamento eletrônico ou um dado componente. Estão presentes na indústria e em outras áreas para diversas finalidades e os modelos encontrados são diversos como, por exemplo, o LDR (Líght Dependent Resistor). O sensor do tipo fotoelétrico possui uma característica importante que é a agilidade de comunicação e isto é devido à luz ser a sua principal característica de funcionamento. Este tipo de componente além deste benefício, não apresenta nenhum tipo de desgaste em sua composição o que o faz resistente. O funcionamento dos sensores fotoelétricos como ilustrado na figura abaixo, seguem basicamente o princípio de que quando um componente, ou algo móvel, intercepta o campo de luminosidade que tem inicio em uma fonte de luz e segue linearmente para o sensor, este detecta esta interrupção e este gera um pulso elétrico.
  • 41. 36 Figura 8 – Funcionamento de sensores Fotoelétricos. Fonte: Braga, 2006.7 O sensor utilizado no presente projeto é fotoelétrico do tipo LDR. Este sensor possui o Sulfeto de Cádmio (CsS) como principal matéria-prima de sua composição, e a incidência de luminosidade é o fator de que a sua resistência elétrica depende. Necessitando de LED, lâmpada incandescente, fluorescente ou até mesmo eletrônica para garantir seu funcionamento. 3.1.5 Bomba Submersa A moto bomba d’água Sarlo S180 opera entra 110V e 220V, possui frequência de 60Hz, seu consumo é de 5W, coluna d’água de 0,45m e tem vazão de 180 litros/hora, conforme a figura 9 abaixo. Figura 9: Especificações Moto Bomba D’água Sarlo S180. Fonte: SarloBetter, 2011.8 7 BRAGA, Newton C. Todos os tipos de sensores, Saber Eletrônica, São Paulo, n. 405, out. 2006. Disponível em: <http://www.sabereletronica.com.br/secoes/leitura/661>. Acesso em: 20 mar. 2011. 8 iMANUAL do Proprietário. SarloBetter, 2011. Disponível em: <http://www.sarlobetter.com.br/index.php?action=forceDownload&path=/media/noticias/files/20006293424ae9 6b21e030c.pdf>. Acesso em: 20 mar. 2011.
  • 42. 37 3.1.6 Reservatório Fabricado de forma artesanal pela empresa Sotello, o reservatório é constituído de 5 placas de vidro com espessura de 4mm com um furo em uma das placas laterais, foi cuidadosamente vedado com silicone específico para esta finalidade e com tratamento anti- fungos. As medidas estão melhor detalhadas na imagem abaixo (SOTELLO, 2011). 3.1.7 Fonte Alimentação ATX Fonte ATX de alta performance da marca Multilaser com potência real de 400W e pico de 800W, opera entre 100-130/200-240V (Bivolt), frequência entre 50/60Hz, possui conectores de +3.3V, +5V, +12V, -5V, -12V, +5VSB, +3.3V+5V MAX. Possui uma conexão para ser conectada a motherboard (placa-mãe) de 24 pinos, uma conexão SATA, três chicotes modulares HDD, um chicote modular FCC e um cabo de força. Possui também dimensões de 86x150x140mm e seu peso é de 4,5kg (MULTILASER, 2011). 3.2 SIMULAÇÃO DO AMBIENTE DO PROTÓTIPO DA MÁQUINA DE REFRIGERANTES O ambiente físico do presente projeto é simulado com o auxílio do software Proteus Design Suite versão 7.8, comercializado pela empresa Labcenter Eletronics (2011). Por meio do aplicativo ISIS Schematic Capture que é integrado à suíte de aplicativos do Proteus, é realizada a simulação de todo o circuito eletrônico da matriz de testes. E com o VSM é possível simular o software embarcado. Nos tópicos que seguem serão explicados os aplicativos utilizados neste projeto e que fazem parte da suíte de aplicativos do Proteus.
  • 43. 38 3.2.1 Proteus Design Suite O Proteus Design Suite é uma suíte que agrega aplicativos que possibilitam o desenvolvimento de simulações bem próximas aos níveis reais de circuitos eletrônicos, bem como o desenho de circuitos impressos, além da simulação de softwares embarcados. O web site Labcenter (2011) ressalta ainda a importância que a suíte de aplicativos do Proteus traz à projetistas de software, pois, com o protótipo físico simulado, não é necessário aguardar a confecção do protótipo físico real para começar a desenvolver o software embarcado e realizar testes. 3.2.2 ISIS Schematic Capture Com a utilização do ISIS foi possível simular o esquema físico da matriz de testes e dos componentes eletrônicos que estão a ela acoplados. E isso é ilustrado na figura 10 abaixo. Figura 10: Simulação do Protótipo físico da máquina de refrigerantes Os principais componentes utilizados nessa ferramenta e que estão disponíveis na biblioteca do ISIS são: 1N4001 (D1), Button (RB0), LED-RED (D1), LM016L (LCD1), MINRES 1K (R10), MINRES 22K (R14), MINRES 4K7 (R1), MINRES220R (R8), NPN
  • 44. 39 (Q1), PIC16F876A (U1), POT (POT), RELAY (RL1), SW-SPST (SW1). Estes componentes foram dispostos no projeto do ISIS de forma que o ambiente simulado chegue o mais próximo possível do ambiente real. 3.2.3 VSM (Virtual System Modelling) O VSM é citado pelo web site Labcenter Eletronics (2011), como sendo responsável por permitir a simulação de um software embarcado junto ao hardware simulado com o ISIS. No presente projeto o VSM teve um papel fundamental para que o código desenvolvido no ambiente do PIC C, pudesse ser simulado no ambiente do ISIS. Assim, o código “.hex” que foi gerado a partir de um arquivo “.c”, é gravado no microcontrolador como se fosse realizado um load via porta RS-232 no ambiente real. Após isso, então, é possível executar o programa dentro do ambiente simulado do ISIS e verificar como ocorre a comunicação entre os componentes eletrônicos por meio das portas do microcontrolador em tempo real. 3.3 IMPLEMENTAÇÃO DO CÓDIGO FONTE A lógica do código fonte do presente projeto foi construída à partir do funcionamento da máquina de refrigerantes. Com isso foi desenvolvido um fluxograma do código fonte deste projeto como é explicado abaixo e ilustrado na figura 11 a seguir. Primeiramente é inicializado o display de LCD em (inicializa_lcd(); e lcd_inst();), após isto é impresso no display de LCD a mensagem “- MAQUINA DE -” com a instrução (lcd_escreve();), então o cursor é posicionado na segunda linha com a rotina (Lcd_pos_xy(1,2);) e é impresso na segunda linha a mensagem “- REFRIGERANTE -”. A seguir é criado um loop por meio de um “while(1)”, onde está o main do código, e ele fica verificando as rotinas (alertaReservatorio(); e monitorarAbastecimento();). Após sair deste “while(1)”, o código segue para outro “while(1)” onde é verificado se há nível no reservatório (SENSORNIVEL=1), se há presença (SENSORPRESENCA=1) e se há borda (SENSORBORDA=1), após isto, é impresso a mensagem no display de LCD (“Máquina Pronta”), e se há presença, então o código segue para a rotina de abastecimento
  • 45. 40 (acionarBomba();), senão, segue para a rotina de alerta de reservatório (alertaReservatorio ();) e é o fim do segundo while. Figura 11: Fluxograma do código-fonte.
  • 46. 41 Para que o código ficasse mais simples e as variáveis utilizadas pudessem ser alteradas ao longo da construção do código-fonte, foi utilizado o recurso #define para as principais saídas do sistema: BOMBADAGUA (Bomba d’água no pino PIN_A1), SENSORNIVEL (Sensor LL111001 no pino PIN_A2), SENSORBORDA (Sensor de borda no pino PIN_C6), SENSORPRESENCA (Sensor de presença no pino PIN_C7). Segue abaixo o trecho do código-fonte com essa estrutura apresentada. No presente trabalho foi utilizado algumas funções (definidas previamente na prototipagem das funções) para realizar as tarefas que são desempenhadas pela máquina de refrigerantes. Ao todo são 4 funções principais: monitorarSensorNivel(), monitorarAbastecimento(), acionarBomba() e alertaReservatorio(). A função que monitora o sensor de nível (LL111001) é a função monitorarSensorNivel(), verifica se o bit está em “0”, e isto significa que o nível de líquido dentro do reservatório está à cima do nível de segurança e portanto a máquina irá operar normalmente, assim, o código é desviado para um else que executa a função de monitorar o abastecimento. Ou então, esta função, verifica se o bit está em “1”, e isto significa que o nível de líquido dentro do reservatório está abaixo do nível de segurança, e desta forma a máquina não irá operar, retornando para o usuário uma mensagem no display de LCD (“Abastecer Reservatorio”). Segue abaixo o código-fonte da função monitorarSensorNivel(). #define BOMBADAGUA PIN_A1 // Pino de dados 3 (Bomba D'água) #define SENSORNIVEL PIN_A2 // Pino de dados 4 (Sensor LL111001) #define SENSORBORDA PIN_C6 // Pino de dados 17 (Sensor de Borda) #define SENSORPRESENCA PIN_C7 // Pino de dados 18 (Sensor de Presença) //Rotina de monitoramento do nível de líquido dentro do Reservatório por meio do sensor LL101101. void monitorarSensorNivel() { //SENSOR DE NÍVEL = 0 >> Reservatório a cima do nível de abastecimento (IDEAL) //SENSOR DE NÍVEL = 1 >> Reservatório abaixo do nível de segurança (PREOCUPANTE) //Aguardando Abastecimento printf (lcd_escreve, "Aguardando:"); lcd_pos_xy (1, 2); // Posiciona o cursor na segunda linha, primeira coluna do LCD.
  • 47. 42 A função monitorarAbastecimento() é que verifica por meio de um looping infinito se o sensor de presença e o sensor de borda são true, e se essa condição for verdadeira, então é executada por meio de um if, uma função que aciona a bomba d’água e deixa a máquina pronta para o abastecimento, mostrando uma mensagem no display de LCD (“Maquina Pronta! Esperando Copo..”). Segue abaixo o trecho do código-fonte. printf (lcd_escreve, "Sensor de Nivel"); delay_ms(2000); output_low (SENSORNIVEL); //Suspender. lcd_escreve ('f'); // Limpa o display de LCD. while (1) { //Máquina atingiu o nível de Segurança para abastecimento, suspender, até reservatório estiver no nível IDEAL if (input(SENSORNIVEL)) { alertaReservatorio(); } else { monitorarAbastecimento(); } } } //Rotina que executa o monitoramento do abastecimento de um recipiente por meio do relé. void monitorarAbastecimento() { while (1) //looping infinito { // Se o sensor de presenta detectar recipiente, o sensor de nível estiver ok e o sensor de borda não detectar copo cheio: Aciona Bomba. if ((!input(SENSORNIVEL))&&(!input(SENSORPRESENCA))&&(input(SENSORBORDA))) { acionarBomba(); // Aciona o relé e a partir daí a fonte ATX, acionando a Bomba e abastecendo o recipiente } else { //Apagar o display e mostra: Maquina Pronta. if (!input(SENSORNIVEL)){ output_high(SENSORPRESENCA); lcd_escreve ('f'); // Limpa o display de LCD. printf (lcd_escreve, "Maquina Pronta!"); lcd_pos_xy (1, 2); // Posiciona o cursor na segunda linha, primeira coluna do LCD. printf (lcd_escreve, "Esperando Copo.."); delay_ms(100); } else { alertaReservatorio();} } } }
  • 48. 43 A função acionarBomba() identifica por meio de um if se o bit SENSORBORDA está em “1”, pois, se estiver significa que o recipiente está com nível até a borda e portanto a máquina irá abortar o abastecimento mostrando a mensagem “Maquina Pronta! Esperando Copo..”. Caso contrário, se o bit desta função estiver em “0”, ou seja, o recipiente está com nível de líquido abaixo do nível do sensor de borda, então, por meio de um else é executado o comando output_high(BOMBADAGUA) para que seja abastecido o recipiente e também que mostre uma mensagem na tela de LCD informando esta ação (“Abastecendo Recipiente”). Após o abastecimento e sendo identificado pelo (SENSORBORDA) que o líquido do recipiente chegou no nível de borda, então será mostrado a mensagem ao usuário “Copo abastecido, Pode retirar...”. Segue abaixo o trecho do código-fonte. //Rotina que aciona o relé para que o abastecimento seja realizado. void acionarBomba() { if (!input(SENSORBORDA)) //Recipiente Cheio então aborta o abastecimento { //Mensagem que o nível de líquido do recipiente está no máximo. Abortar! printf (lcd_escreve, "Abortando,"); lcd_pos_xy (1, 2); // Posiciona o cursor na segunda linha, primeira coluna do LCD. printf (lcd_escreve, "Copo Cheio!"); delay_ms(2000); lcd_escreve ('f'); // Limpa o display de LCD. output_low(BOMBADAGUA); //Desliga o relé, cessando o abastecimento. } else { //Nível do recipiente está OK, Abastecer! lcd_escreve ('f'); //Limpa o display de LCD. printf (lcd_escreve, "Abastecendo,"); lcd_pos_xy (1, 2); // Posiciona o cursor na segunda linha, primeira coluna do LCD. printf (lcd_escreve, "Recipiente.."); output_high(BOMBADAGUA); //Abastecendo.. while((input(SENSORBORDA))&&(!input(SENSORPRESENCA))&&(!input(SENSORNIVE L)))//Enquanto não detectar a borda, continua abastecendo.. { pisca_led_b(); } output_low(BOMBADAGUA); //Abastecido, desligando bomba.. lcd_escreve ('f'); //Limpa o display de LCD. printf (lcd_escreve, "Copo abastecido,"); lcd_pos_xy (1, 2); //Posiciona o cursor na segunda linha, primeira coluna do LCD. printf (lcd_escreve, "Pode Retirar..."); delay_ms(5000); //Aguarda 5 segundos para retirada do copo. lcd_escreve ('f'); //Limpa o display de LCD. } }
  • 49. 44 A função alertaReservatorio() imprime a mensagem “Abastecer Reservatorio” no display de LCD, toda vez que o nível do reservatório estiver abaixo do nível de segurança, e isto é detectado pelo sensor de nível (SENSORNIVEL) quando o bit estiver em “0”. Segue abaixo o trecho do código fonte. 3.4 ARQUITETURA DE PROTÓTIPO DA MÁQUINA DE REFRIGERANTES O presente trabalho tem como objetivo a construção de uma arquitetura de um protótipo físico de uma máquina de refrigerantes, que seja automatizada via software por meio de um microcontrolador. O protótipo da máquina de refrigerantes proposto no presente trabalho, é composto de uma matriz de testes da empresa Cerne-Tec (2011) que é intitulada pela empresa de Kit didático, e é equipada com um microcontrolador PIC16F876A cuja arquitetura é citada por Souza (2010), como tipo Harvard. A matriz de testes será alimentada por uma fonte de energia externa ao projeto de 110V, e atende a requisitos fundamentais para o desenvolvimento deste trabalho, pois, possui um display de LCD frontal para que o usuário possa ter total interação com o equipamento, possui suporte a gravação e regravação por meio do software Winpic800 (2010) para que se torne possível a automatização do protótipo. O microcontrolador PIC16F876A que vem acoplado junto à matriz de testes, possui portas livres para que possam ser conectados tanto a fonte ATX Multilaser (2011) que será alimentada com energia externa ao projeto de 110V, como também o sensor de nível Honeywell (2011) que é alimentado com 5V de tensão oriundos do microcontrolador, //Rotina que imprime um aviso no display de LCD informando que é necessário Abastecer o Reservatório. void alertaReservatorio() { if (input(SENSORNIVEL)) { printf (lcd_escreve, "Abastecer"); lcd_pos_xy (1, 2); // Posiciona o cursor na segunda linha, primeira coluna do LCD. printf (lcd_escreve, "Reservatorio "); delay_ms(100); pisca_led_a(); } }
  • 50. 45 contempla ainda botões e LED’s Saber Eletrônica (2009) para dar interatividade e sinalização de atividades, respectivamente, e também conta com uma porta RS-232 Soares (2008) que possibilita a comunicação com um microcomputador para permitir a realização da programação no microcontrolador PIC16F876A. Outro fator importante é o suporte a linguagem de programação C (2.5.1) que é utilizada para realizar a programação do software que irá automatizar o equipamento, e que será realizada com o auxílio da IDE PIC C Compiler com bibliotecas específicas para esta linguagem. O projeto também conta com uma moto bomba d’água S180 da SarloBetter (2011), que será alimentada com energia elétrica proveniente da fonte ATX. A bomba d’água consegue encher um copo com capacidade de 300 ml com 7 segundos em média, de acordo com testes realizados. E esta bomba é necessária para que haja escoamento do líquido que deve conter no reservatório Sotello (2011). O reservatório Sotello (2011) que possui capacidade para receber aproximadamente 19,375 litros de líquido, tem o papel de armazenar todo o líquido que será utilizado para abastecer um dado recipiente. Ainda, o reservatório possui um furo vazado para que um sensor de nível possa ser acoplado e rosqueado. Um nível mínimo de líquido foi estipulado entre 14cm e 15cm desde a base do reservatório até o sensor de nível. Foi utilizado um sensor de nível Honeywell (2011), que será alimentado pela fonte ATX com +5V, para assegurar que o nível mínimo de líquido que estiver no reservatório não baixe, pois, se isso ocorrer, poderá ocasionar queima na bomba d’água, pois, esta deve trabalhar sempre submersa. O protótipo segue o esquema dos componentes envolvidos e que estão conectados conforme a figura 12 abaixo.
  • 51. 46 Figura 12: Esquema do Protótipo da Máquina de Refrigerantes. 3.4.1 Funcionamento Primeiramente para que o protótipo funcione de forma segura, é necessário que as duas únicas e principais fontes de alimentação externas estejam devidamente transmitindo a tensão de 110V, tanto para a fonte ATX quanto para a matriz de testes. Partindo do princípio de que o sistema esteja, então, devidamente alimentado com a tensão necessária para o seu funcionamento, e que todos os componentes estejam conectados, a primeira ação, deve ocorrer, quando coloca-se um recipiente com até 300ml de capacidade no suporte junto ao painel principal. Quando um recipiente for colocado no suporte do painel principal, um sensor fotoelétrico faz a captação da sua presença por meio da interrupção da luminosidade do led e envia então um sinal para o microcontrolador. O microcontrolador devolve um sinal confirmando o recebimento, seguido da ativação do sensor de borda de líquido presente no recipiente. Se o nível de líquido é igual a ‘300 ml’ (recipiente cheio), o sensor de borda devolve um sinal identificando que o recipiente está cheio, e no LCD da matriz de testes aparece uma mensagem de que o recipiente que está sendo utilizado já possui a quantidade máxima de líquido suportado. Caso contrário, é iniciada outra etapa.
  • 52. 47 Quando um recipiente é identificado como vazio após a detecção pelo sensor de borda, o microcontrolador recebe um sinal de que o recipiente está vazio e então envia um sinal para que a fonte ATX seja ligada, e ao liga-la uma mensagem é enviada para o display de LCD informando que o recipiente está sendo abastecido com o líquido. A fonte ATX ao ser ligado pelo microcontrolador, por sua vez, liga a bomba d’água que está conectada a fonte ATX. Ao ligar a bomba, o seu motor faz com que o líquido que está contido no reservatório percorra o duto que está acoplada a bomba e que vai até os bocais. Quando o líquido chega ao bocal, ele é despejado diretamente no recipiente que está no suporte do painel frontal, até enchê-lo. O líquido escoado pela bomba só para de encher o recipiente, então, após o sensor de borda identificar a presença de líquido. Ao detectar a presença de líquido (recipiente cheio), então o sensor de borda envia um sinal para o microcontrolador para que desligue a fonte ATX e ao desliga-la uma mensagem é enviada para o display de LCD informando que o recipiente foi abastecido com sucesso. Consequentemente, a bomba também é desligada, cessando o escoamento do líquido. Para que seja assegurado o abastecimento de um recipiente e também a integridade dos equipamentos da arquitetura do projeto, o nível mínimo de líquido dentro do reservatório deve ser respeitado. E para que isso ocorra, quando o sensor de nível indicar que o mínimo foi atingido, um LED que estará ligado ao microcontrolador, indicará que é necessária a reposição de líquido no reservatório, se mantendo ligado, e enquanto este LED estiver ligado, a máquina de refrigerantes fica em estado de Standy by, e tem o seu funcionamento interrompido. O LED então só será desligado pelo microcontrolador quando o sensor de nível detectar que o líquido do reservatório já excedeu o nível mínimo. 4 RESULTADOS E DISCUSSÃO Neste tópico serão apresentados os resultados obtidos com os testes que foram realizados após a construção da máquina de refrigerantes em modo simulado e também em protótipo real.
  • 53. 48 Serão discutidas as possíveis formas que o sistema embarcado permite interagir com o usuário e também com o próprio sistema. Logo, com a junção destas formas de interação e de acordo com resultados obtidos à partir disto, origina-se o cenário de testes. 4.1 TESTES COM O PROTÓTIPO SIMULADO Com o objetivo de obter resultados quanto ao tempo de resposta do algoritmo e desempenho da máquina de refrigerante, foram analisados as seguintes possibilidades junto ao cenário de testes simulado, conforme descrito abaixo. O tempo de inicialização da máquina de refrigerantes é de aproximadamente 4799ms. O tempo para análise e detecção do sensor de presença é de aproximadamente 100us. O tempo para análise do sensor de borda é de aproximadamente 60us. O tempo para análise do sensor de nível é de aproximadamente 32us. O tempo de resposta do abastecimento é de aproximadamente 32us, e de um novo abastecimento é de aproximadamente 5007ms. O cenário de testes possui 7 situações possíveis. Primeira situação: A máquina inicializa e com o switch 1 aberto, é detectado ausência de líquido dentro do reservatório. É impresso no display de LCD uma mensagem para que abasteça o reservatório (“Abastecer Reservatório”). A máquina fica então inoperante até que o reservatório seja abastecido. Segunda situação. A máquina inicializa e com o switch 1 fechado, é detectado a presença de líquido dentro do reservatório. É impresso no display de LCD uma mensagem de que a máquina está pronta e aguardando que um recipiente seja colocado no suporte (“Maquina Pronta! Esperando Copo..”). Terceira situação. É simulado pelo switch 3 fechado, um recipiente vazio na máquina para que seja abastecido. A máquina verifica se há líquido dentro do reservatório por meio do switch 1 (que está fechado), verifica se switch 2 está aberto (significando recipiente vazio) e também verifica se o switch 3 (que está fechado) detectou a presença de um recipiente. Se estas três variáveis forem verdadeiras o recipiente simulado é abastecido e a máquina imprime
  • 54. 49 no display de LCD uma mensagem informando que o recipiente está sendo abastecido (“Abastecendo Recipiente”). Quarta situação. É simulado um recipiente cheio na máquina para que seja abastecido. O switch 2 (que deverá estar fechado) detecta que o nível de líquido dentro do recipiente está no máximo e não abastece o recipiente. E continua aguardando um recipiente vazio para que seja abastecido. Quinta situação. O switch 2 (fechado) identifica após o abastecimento do recipiente, que o nível máximo foi atingido. É desativado o relé, desligando o contato com o switch 4, cessando o abastecimento. A máquina então imprime uma mensagem no display de LCD informando que o recipiente está abastecido e que pode ser retirado do suporte (“Copo abastecido, Pode Retirar...”). Sexta situação. Durante o abastecimento de líquido de um recipiente simulado, por algum motivo o recipiente é retirado do suporte de abastecimento. O switch 3 (aberto) identifica a ausência de presença e desliga o relé, desligando o contato com o switch 4, cessando o abastecimento. É impresso então no display de LCD uma mensagem de que o recipiente já está abastecido e pode ser retirado do suporte de abastecimento (“Copo abastecido, Pode Retirar...”). Sétima situação. Durante o abastecimento simulado de líquido do recipiente, acaba o líquido de dentro do reservatório (switch 1 aberto). O switch 1 (aberto), identifica a ausência de líquido no reservatório e imprime uma mensagem no display de LCD informando que é necessário abastecer o reservatório (“Abastecer Reservatorio”). 4.2 TESTES COM O PROTÓTIPO REAL Com o objetivo de obter resultados mais próximos possíveis da simulação, que se mostraram bastante satisfatórios, foram realizados testes de vazão e rotinas de funcionamento do protótipo da máquina de refrigerantes. Quanto ao teste de vazão, foi possível perceber que para garantir o tempo de abastecimento calculado anteriormente, o abastecimento é prejudicado pelo retorno de líquido
  • 55. 50 que ocorre pela tubulação. Para que este problema seja evitado, foi necessário que a tubulação mantivesse uma certa curvatura próxima ao bocal. Componentes eletrônicos como os resistores e o relé, tiveram que ser trocados para que não fosse prejudicado o funcionamento do protótipo e também para que não ocorresse queima de demais componentes eletrônicos ou outros equipamentos. As rotinas de funcionamento do protótipo físico foram estabelecidas em 7 etapas e são detalhadas abaixo. Primeira situação. A máquina inicializa e o sensor de nível detecta a ausência de líquido dentro do reservatório. (É impresso no display de LCD uma mensagem para que abasteça o reservatório "Abastecer Reservatorio"). Segunda situação. A máquina inicializa e o sensor de nível detecta a presença de líquido dentro do reservatório. (É impresso no display de LCD uma mensagem de que a máquina está pronta e aguardando que um recipiente seja colocado no suporte). Terceira situação. É colocado um recipiente vazio na máquina para que seja abastecido. (Máquina verifica se há líquido dentro do reservatório por meio do sensor de nível, verifica se o nível de líquido do recipiente não está até a borda e também verifica se o sensor de presença está ligado. Se estas três variáveis forem verdadeiras o recipiente é abastecido e a máquina imprime no display de LCD uma mensagem informando que o recipiente está sendo abastecido "Abastecendo Recipiente"). Quarta situação. É colocado um recipiente cheio na máquina para que seja abastecido. O sensor de borda detecta que o nível de líquido dentro do recipiente está no máximo e não abastece o recipiente, e continua aguardando um recipiente vazio para que seja abastecido. Quinta situação. O sensor de borda identifica após o abastecimento que o nível máximo foi atingido. É desativado o relé, desligando a bomba d'água e cessando o abastecimento. A máquina então imprime uma mensagem no display de LCD informando que o recipiente está abastecido e que pode ser retirado do suporte "Copo abastecido, Pode Retirar...". Sexta situação. Durante o abastecimento de líquido do recipiente, por algum motivo o recipiente é retirado do suporte de abastecimento. (O sensor de presença identifica a ausência de sinal e desliga o relé, desligando a bomba d'água, cessando o abastecimento. É impresso
  • 56. 51 então no display de LCD uma mensagem de que o recipiente já está abastecido e pode ser retirado do suporte de abastecimento."Copo abastecido, Pode Retirar...") . Sétima situação. Durante o abastecimento de líquido do recipiente, acaba o líquido de dentro do reservatório. O sensor de nível identifica a ausência de líquido no reservatório e imprime uma mensagem no display de LCD informando que é necessário abastecer o reservatório "Abastecer Reservatorio". 5 CONCLUSÕES Entre as conclusões alcançadas por este trabalho existem afirmações subdivididas em duas vertentes: relativas ao envolvimento teórico do trabalho com áreas multidisciplinares e relativas ao empenho de implementação prática em simulação e prototipação física. Referente ao envolvimento teórico com diversas áreas de conhecimento, ficou evidente que apenas conhecimentos de Computação não são suficientes para a execução de um projeto de automação industrial que tenha os requisitos como os apontados nos objetivos do presente trabalho. Assim, para a viabilização de projetos dessa magnitude é necessária a sinergia que contempla as grandes áreas de Ciências da Computação, Eletrônica, Engenharia e Automação Industrial. Tecendo um comentário mais específico, tais conhecimentos vão além das trivialidades teóricas e se imergem no universo dos traquejos práticos de junção dos componentes, dos testes desses elementos e da programação final de suas funcionalidades. Referente a implementação prática em simulação e prototipação física da máquina de refrigerantes proposta neste trabalho como tema de estudo, foi possível averiguar que existem diferenças críticas quanto ao modelo computacional simulado e o modelo computacional realizado fisicamente. Com o modelo simulado foi possível obter todas as características do modelo computacional do sistema de controle da máquina de refrigerantes sem o ônus da aquisição de componentes físicos, permitindo uma série de adaptações, modificações de tempo nos componentes e ajustes de funcionalidade, fatores esses que facilitaram o entendimento da plataforma da máquina e os testes dos vários cenários e situações que poderiam ocorrer. A
  • 57. 52 simulação ainda se mostrou um mecanismo rápido para se visualizar os tempos das ações (abastecimento, detecção pelos sensores, entre outros) inerentes à máquina de refrigerantes. Um fator detectado como limitação da simulação foi a ausência de consideração na simulação de componentes físicos necessários na prática para a não ocorrência de pane, por exemplo, todo relé necessita de um componente (diodo) ligado em paralelo à bubina. Tal limitação só foi passível de detecção quando das tentativas de execução dos primeiros experimentos práticos com o programa de controle da máquina. Com o modelo físico, foram identificadas algumas necessidades que não se mostraram necessárias durante a simulação, como por exemplo, a potência dos resistores, do transistor e do relé. Estes componentes durante a contrução e testes, tiveram que ser alterados com a devida potência de acordo com o que se esperava, para que não ocorresse queima de equipamentos e componentes eletrônicos. O tempo de abastecimento do protótipo físico se mostrou bem diferente quanto à simulação. Assim como o delay encontrado em cada comando e funções do código-fonte. Outro fator que não pode ser simulado e foi aperfeiçoado durante os testes, foi o retorno de líquido após o abastecimento de um recipiente pela moto bomba. O líquido que retornava após o abastecimento, muitas vezes atrapalhou o funcionamento da máquina, e alterações no código fonte foram necessárias para sanar esse problema.
  • 58. 53 6 TRABALHOS FUTUROS Baseado no desenvolvimento e conclusão dos objetivos iniciais do presente projeto, identificou-se diversas vertentes para futuros trabalhos. Serão abordados neste capítulo tais vertentes com uma breve descrição representando e detalhando as sugestões propostas. Desta maneira, novas pesquisas poderão surgir, agregando valores ao presente trabalho possibilitando a sua continuidade, e ao realizar a junção de novas tecnologias à Maquina de refrigerante, o ganho de versatilidade se torna algo substancial. Segue abaixo as sugestões identificadas para futuros trabalhos. Primeira Sugestão Implementar junto ao código fonte desenvolvido em linguagem de programação C, novas rotinas para que os push buttons tenham utilidade dentro do escopo da máquina de refrigerante. Os botões nomeados RB0 e RB1 poderiam assumir as funções de pause (PIC) da máquina de refrigerante e máquina em manutenção respectivamente. Para os push buttons RB2 e RB3 seria necessário analisar e identificar uma real usabilidade para os mesmos. Segunda Sugestão Implementar junto ao código fonte novos níveis de abastecimento para a máquina de refrigerantes. Estes níveis assumiriam os valores de 500ml e 700ml que são valores padrão para a indústria de máquinas de refrigerante. Desta forma para estes novos níveis seriam necessários dois sensores adicionais ao projeto para realizar estas tarefas.
  • 59. 54 Terceira Sugestão Desenvolver e implementar um sistema de liberação de crédito para abastecimento via leitor de cartão inteligente. Desta forma para cada quantia ‘x’ de créditos obtivos, seriam armazenados no cartão os valores de quantidade de créditos, tipo do líquido escolhido e tamanho do copo. Quarta Sugestão Expandir o número de bocais da máquina de refrigerante, aumentando a possibilidade de abastecimento com diversos sabores. Quinta Sugestão Estudar a viabilidade de construção e adaptação da máquina de refrigerante, para o abastecimento de novos líquidos com a utilização de válvulas de pressão. Alterando o perfil da máquina para líquidos como chopp e café. Sexta Sugestão Colocar uma porta automatizada de abastecimento para que o usuário não possa retirar o recipiente de dentro da máquina.
  • 60. 55 7 REFERÊNCIAS ABOUT the Eclipse Foundation. Eclipse, 2011. Disponível em: <http://www.eclipse.org/org/>. Acesso em 20 mar. 2011. ACESSÓRIOS de Computador/Fontes. Multilaser, 2011. Disponível em: <http://www.multilaser.com.br/produtos.php?id=4677>. Acesso em: 20 mar. 2011. AUSTIN, Calvin; PAWLAN, Monica. Advanced Programming For The Java 2 Platform. 1. ed. Addison Wesley, 2000. BRAGA, Newton C. Experimentos com Diodos: Para Aprender o Funcionamento dos Semicondutores. Saber Eletrônica, 2010. Disponível em: <http://www.sabereletronica.com.br/secoes/leitura/1622>. Acesso em 20 mar. 2011. BRAGA, Newton C. LEDs Lâmpadas Substituem em Aplicações Automotivas. Saber Eletrônica, 2009. Disponível em: <http://www.sabereletronica.com.br/secoes/leitura/1450>. Acesso em 20 mar. 2011. BRAGA, Newton C. O multímetro, Eletrônica Total, São Paulo, n. 138, ago. 2009. Disponível em: <http://www.sabereletronica.com.br/secoes/leitura/1393>. Acesso em: 20 mar. 2011. BRAGA, Newton C. O que são e como funcionam os potenciômetros digitais, Eletrônica Total, São Paulo, n. 125, jul. 2007. Disponível em: <http://www.sabereletronica.com.br/secoes/leitura/115>. Acesso em: 20 mar. 2011. BRAGA, Newton C. Todos os tipos de sensores, Saber Eletrônica, São Paulo, n. 405, out. 2006. Disponível em: <http://www.sabereletronica.com.br/secoes/leitura/661>. Acesso em: 20 mar. 2011. CCS C Compiler Details. CCS Custom Computer Service, 2011. Disponível em: <http://www.ccsinfo.com/content.php?page=compiler-details>. Acesso em: 14 out. 2011. CUNHA, Alessandro F., Como Fazer a Leitura de Capacitores. Saber Eletrônica, 2008. Disponível em: <http://www.sabereletronica.com.br/secoes/leitura/267>. Acesso em: 20 mar. 2011. DAMASCENO, Marcelo Gonçalves. Potenciômetro Digital de 256 passos: PD-PIC II, Eletrônica Total, São Paulo, n. 131, jul. 2008. Disponível em: <http://www.sabereletronica.com.br/secoes/leitura/865>. Acesso em: 20 mar. 2011. DOMINGOS, Wellington Rocha. Como Trabalhar com Display LCD. Saber Eletrônica, 2009. Disponível em: <http://www.sabereletronica.com.br/secoes/leitura/1203>. Acesso em: 20 mar. 2011.
  • 61. 56 GABRILOVICH, Evgeniy; FINKELSTEIN, Lev. JNI – C++ Integration made easy, 2001. Disponível em: <http://www.cs.technion.ac.il/~gabr/papers/cuj_jni.pdf>. Acesso em 20 mar. 2011. ISIS Schematic Capture. Labcenter, 2011. Disponível em: <http://www.labcenter.com/products/schematic.cfm>. Acesso em 14 out. 2011. KIT Didático Cerne Bluetooth. Cerne-Tec, 2011. Disponível em: <http://www.cerne- tec.com.br/detalhescerneblue.htm>. Acesso em: 20 mar. 2011. LL101101. Honeywell, 2004. Disponível em: <http://sccatalog.honeywell.com/imc/printfriendly.asp?FAM=liquidlevel&PN=LL101101>. Acesso em: 20 mar. 2011. MARTINS,Nardenio Almeida. Sistemas Microcontrolados: Uma Abordagem com o Microcontrolador PIC16F84. 1. ed. 1. Editora Novatec, 2005. MANUAL do Proprietário. SarloBetter, 2011. Disponível em: <http://www.sarlobetter.com.br/index.php?action=forceDownload&path=/media/noticias/files /20006293424ae96b21e030c.pdf>. Acesso em: 20 mar. 2011. MICROCHIP PIC16F876A DATASHEET. Microchip, 2011. Disponível em: <http://ww1.microchip.com/downloads/en/DeviceDoc/39582b.pdf>. Acesso em: 28 jul. 2011. MOSAICO ENGENHARIA. Mosaico, 2011. Disponível em: <http://www.mosaico.com.br/>. Acesso em: 28 jul. 2011. MPLAB User’s Guid with MPLAB Editor and MPLAB SIM Simulator. Microchip, 2009. Disponível em: <http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_User_Guide_51519c.pdf>. Acesso em: 20 mar. 2011. MULTIMETROS. Hayamax, 2011. Disponível em: <http://www.hayamax.com.br/0600020020- multimetros/multimetro_analogico_ft1000a_ftg#_especific>. Acesso em: 20 mar. 2011. NICOLISI, Denys E. C. Microcontrolador 8051 Detalhado. 6. ed. Editora Érica, 2004. PIC C Builder for Eclipse 0.4.2. Eclipse Market Place, 2011. Disponível em: <http://marketplace.eclipse.org/content/pic-c-builder-eclipse>. Acesso em: 20 mar 2011. RESISTORES. Saber Eletrônica, 2008. Disponível em: <http://www.sabereletronica.com.br/secoes/leitura_verbete/192>. Acesso em: 20 mar. 2011. PROTEUS PCB Software Design. Labcenter, 2011. Disponível em: <http://www.labcenter.com>. Acesso em: 14 out. 2011. SÁ, Maurício Cardoso de. Programação C para Microcontroladores 8051. 1. ed. São Paulo: Érica, 2005. SENA, Antônio Sérgio. Microcontroladores PIC. 1. ed., 2009. (mudar)
  • 62. 57 SOARES, Márcio José. Comunicação RS-232 – Noções Básicas – Parte 1, Saber Eletrônica, São Paulo, n. 424, maio 2008. Disponível em: <http://www.sabereletronica.com.br/secoes/leitura/774>. Acesso em: 20 mar. 2011. SOTELLO. Sotello, 2011. Disponível em: <http://www.sotello.com.br/>. Acesso em: 20 mar. 2011. SOUZA, David José de. Desbravando o PIC: Ampliado e Atualizado para PIC16F628A. 12. ed. São Paulo: Érica, 2010. STALLINGS, William. Arquitetura e Organização de Computadores. 5. ed. São Paulo: Prentice Hall, 2003. TANENBAUM, A. S. Organização Estruturada de Computadores. 5. ed. Rio de Janeiro: Prentice-Hall, 2006. THE Advantage VSM. Labcenter, 2011. Disponível em: <http://www.labcenter.com/products/vsm_overview.cfm>. Acesso em 14 out. 2011. THE Concise LCD Data Sheet. Beyond Logic, 2010. Disponível em: <http://www.beyondlogic.org/lcd/lcd.pdf>. Acesso em: 20 mar. 2011. TUDO sobre capacitores. Saber Eletrônica, 2010. Disponível em: <http://www.sabereletronica.com.br/secoes/leitura/1496>. Acesso em: 20 mar. 2011. WINPIC800. WinPic800, 2011. Disponível em: <http://www.winpic800.com//index.php?option=com_content&task=blogcategory&id=18&It emid=64>. Acesso em: 20 mar. 2011.
  • 63. 58 APÊNDICE A – PLANILHA DE CUSTOS Fonte ATX 1 40,00 40,00 Kit cerne bluetooth 1 399,00 399,00 Moto bomba d'água 1 35,00 35,00 Multímetro 1 15,00 15,00 Reservatório 1 42,00 42,00 Sensor de nível 1 63,79 63,79 Resistores 4 0,50 2,00 Transistor NPN 1 9,00 9,00 Diodos 1 1,00 1,00 Push Button 4 1,00 4,00 0,00 Total 610,79
  • 64. 59 APÊNDICE B – DATASHEET PIC16F87XA
  • 65. 60