You are on page 1of 54

UNIVERSIDADE CATLICA DOM BOSCO

Curso de Engenharia Mecatrnica

Andr Garcia Barbosa


Guilherme Afonso Bento Mello

LETREIRO ELETRNICO MODULAR CONTROLADO POR


MICROCONTROLADOR COM INTERFACE GRFICA

Campo Grande - MS
2008
UNIVERSIDADE CATLICA DOM BOSCO
Curso de Engenharia Mecatrnica

Andr Garcia Barbosa


Guilherme Afonso Bento Mello

LETREIRO ELETRNICO MODULAR CONTROLADO POR


MICROCONTROLADOR COM INTERFACE GRFICA

Monografia de trabalho de concluso de curso submetido como requisito


parcial para obteno do grau de Engenheiro Mecatrnico.

Campo Grande - MS
2008
Sobrenome, Nome do aluno

Modelo para redao de monografia de trabalho de concluso


de curso para o curso de engenharia mecatrnica.

Consultar profissional qualificado da biblioteca para a


confeco da ficha catalogrfica.

Monografia Universidade Catlica Dom Bosco.

1. Palavra-Chave1. 2. Palavra-Chave2.
DEDICATRIA

Aos nossos pais e a Deus, que sempre estiveram ao nosso lado, deu exemplos

de amor e respeito, alm da perseverana e do sentimento de conduta em cada ato,

e tambm aos nossos amigos, que em cada conquista, e juntos celebramos a vitria.
AGRADECIMENTOS

A incluso desta seo de agradecimentos opcional e fica critrio do(s) autor(es),

que caso deseje(em) inclu-la dever(ao) utilizar este espao, seguindo est

formatao.

Nome do Autor 1

Gostaria de agradecer quelas pessoas que nos ajudaram ao longo do projeto, e

que muitas vezes nos deram total apoio para seguirmos e continuarmos atrs dos

nossos objetivos.

Guilherme Afonso Bento Mello


RESUMO

O projeto apresentado fora inicialmente proposto pela empresa Marc Painel

Eletrnico, cujo objetivo era desenvolver um letreiro eletrnico com comunicao

serial do tipo USB (Universal Serial Bus). Foi utilizado o microcontrolador da Atmel

AT89S8253 da famlia 8051. A interface grfica desenvolvida em ambiente C/C++

juntamente com a criao da comunicao serial RS232, para enviar ao letreiro em

cdigo ASCII as frases desejadas. Trabalhando principalmente em programao

orientada a objetos. O projeto produzido durante o ltimo ano de engenharia

mecatrnica foi empregado um cabo conversor de sinal serial: USB para RS232. E

atravs de outros programas, que puderam mostrar o real sinal obtido dos dados do

programa para o microcontrolador.

Palavras-chave: Letreiro eletrnico. USB. RS232. Microcontrolador. Interface. Matriz

de Leds.
ABSTRACT

Initially, the project was proposed about Marc Painel Eletrnico company, which the

objective was development an electronic sign with USB (Universal Serial Bus) serial

type communication. It has used the microcontroller Atmel AT89S8253 from 8051s

family. The graphical interface has developed in C/C++ environment together with a

RS232 serial communications creation, to send to sign in ASCII code the desires

sentences. Working mainly with objects orientations programming. The project

produced during the last year of mechatronics engineering, the use of a serial

conversion cable is required to sign: USB to RS232. And through others programs,

which can showed the real signal of the data obtained from the program to the

microcontroller.

Keywords: Electronic Sign. USB. RS232. Microcontroller. Interface. Leds Matriz


LISTA DE FIGURAS

Figura 1.1 Matriz de LEDs ..................................................................................... 13

Figura 1.2 Cabo conversor serial RS232 para USB ............................................... 14

Figura 2.1 Arquitetura bsica do microcontrolador 8051 ........................................ 17

Figura 2.2 Microcontrolador em formato DIP.......................................................... 18

Figura 2.3 Exemplo de encapsulamento Quad Pack ............................................. 18

Figura 2.4 Expanso de memria usando 4Kbytes internos e 64Kbytes externos . 20

Figura 2.5 Expanso de memria usando apenas 64Kbytes externos .................. 21

Figura 2.6 Circuito de reset do microcontrolador.................................................... 21

Figura 2.7 Endereo do desvio das interrupes ................................................... 23

Figura 2.8 Oscilador interno com cristal ................................................................. 23

Figura 2.9 Oscilador externo .................................................................................. 24

Figura 2.10 Modos de transmisso da comunicao serial .................................... 25

Figura 2.11 LED diretamente polarizado ................................................................ 27

Figura 2.12 MAX232 em encapsulamento DIP ...................................................... 30

Figura 2.13 MAX232 Esquema de ligao .......................................................... 30

Figura 3.1 Pinagem do microcontrolador AT89S8252 ............................................ 32

Figura 3.2 Microcontrolador AT89S8252 / Encapsulamento DIP ........................... 32

Figura 3.3 Controle individual de LEDs ................................................................. 33

Figura 3.4 Seqncia de acendimento das colunas ............................................... 34

Figura 3.5 Fluxograma do cdigo fonte do microcontrolador ................................. 36

Figura 3.6 Caracteres possveis do letreiro ............................................................ 37

Figura 3.7 Esquema eltrico da matriz de LEDs ................................................... 38

Figura 3.8 Layout: Matriz de LEDs face superior................................................... 39


Figura 3.9 Layout: Matriz de LEDs face inferior..................................................... 39

Figura 3.10 Esquema eltrico do mdulo controlador ............................................ 40

Figura 3.11 Layout do mdulo controlador ............................................................. 41

Figura 3.12 Imagem 3D do mdulo controlador ..................................................... 41

Figura 3.13 Esquema eltrico do mdulo gerenciador ........................................... 42

Figura 3.14 Layout do mdulo gerenciador ............................................................ 43

Figura 3.15 Layout do mdulo gerenciador em 3D ................................................ 43

Figura 5.1 Mdulo de comunicao e interface ...................................................... 51


LISTA DE ABREVIATURAS E SIGLAS

API Application Programming Interface

DIP Dual Inline Package

EEPROM Electrically-Erasable Programmable Read-Only Memory

GUI Graphical User Interface

LED Light Emitter Diode

RAM Random Access Memory

ROM Read-Only Memory

USB Universal Serial Bus


SUMRIO

1. INTRODUO ............................................................................................................. 13

1.1. ASPECTOS GERAIS .......................................................................................................................... 14

1.2. OBJETIVO .......................................................................................................................................... 14

1.3. JUSTIFICATIVA .................................................................................................................................. 15

2. FUNDAMENTAO TERICA ................................................................................... 16

2.1. MICROCONTROLADOR .................................................................................................................... 16

2.1.1. CARACTERSTICAS GERAIS ............................................................................................................ 16

2.1.2. PINAGEM ........................................................................................................................................... 19

2.1.3. ORGANIZAO DA MEMRIA ......................................................................................................... 20

2.1.4. RESET ................................................................................................................................................ 21

2.1.5. INTERRUPES ............................................................................................................................... 22

2.1.6. CLOCK ............................................................................................................................................... 23

2.1.7. CONTADORES / TEMPORIZADORES .............................................................................................. 24

2.1.8. CANAL DE COMUNICAO SERIAL ................................................................................................ 24

2.1.9. LINGUAGEM UTILIZADA ................................................................................................................... 26

2.2. DIODO EMISSOR DE LUZ (LED)....................................................................................................... 26

2.2.1. TENSO E CORRENTE ..................................................................................................................... 27

2.2.2. CLASSIFICAO POR LUMINOSIDADE .......................................................................................... 28

2.3. MAX232 .............................................................................................................................................. 29

3. DESENVOLVIMENTO ................................................................................................. 31

3.1. SELEO DO MICROCONTROLADOR ............................................................................................ 31

3.2. TEORIA DE FUNCIONAMENTO ........................................................................................................ 32

3.3. DIAGRAMA DE FLUXO ...................................................................................................................... 34

3.4. CARACTERES ................................................................................................................................... 36

3.5. MATRIZ DE LEDS .............................................................................................................................. 37

3.5.1. LAYOUT DA MATRIZ ......................................................................................................................... 38

3.6. MDULO CONTROLADOR ............................................................................................................... 39

3.7. MDULO GERENCIADOR ................................................................................................................ 41

4. CDIGO FONTE ......................................................................................................... 44

4.1. ASSEMBLY ........................................................................................................................................ 44

4.2. C/C++ ................................................................................................................................................. 44


4.3. JAVA ................................................................................................................................................... 45

4.4. PYTHON ............................................................................................................................................. 46

5. LINGUAGEM DE PROGRAMAO E COMUNICAO SERIAL .............................. 47

5.1. INTERFACE GRFICA ....................................................................................................................... 48

5.1.1. C++ BUILDER 6.................................................................................................................................. 48

5.1.2. COMUNICAO SERIAL ................................................................................................................... 49

5.1.3. PROTOCOLO RS232 ......................................................................................................................... 51

6. CONCLUSO .............................................................................................................. 52

7. REFERNCIAS ........................................................................................................... 53
1. INTRODUO

Um letreiro eletrnico consiste em manipular uma matriz de LEDs de maneira

com que seja possvel visualizar uma mensagem ou uma informao, usando

caracteres alfa numricos e alguns caracteres especiais, selecionados atravs de

uma comunicao entre o usurio e o letreiro.

H uma grande variedade de LEDs existentes no mercado cada qual com suas

caractersticas, onde a principal delas a energia luminosa que eles podem emanar,

geralmente medida em candelas ou lumens e suas subunidades.

Matrizes de LEDs so agrupamentos de LEDs cuja funo de cada um deles

compor um ponto num caractere ou imagem, a ser formada quando acesos da

maneira correta; como mostra na figura 1.1 a primeira matriz de LEDs desenvolvida.

Para controlar a matriz de LEDs preciso acionar de forma seqencial cada LED,

de forma que seja possvel observar caracteres

Figura 1.1 Matriz de LEDs.

Para que o microcontrolador possa expressar a informao contida em forma

de cdigos previamente escritos em sua memria de programa, necessria uma

interface de comunicao entre o usurio e o letreiro, onde ser possvel enviar a

mensagem desejada para o letreiro com facilidade e com uma visualizao

amigvel.

13
1.1. ASPECTOS GERAIS

O letreiro consiste de uma matriz de LEDs acoplada ao mdulo de controle

com microcontrolador, que far a receptao da frase introduzida e enviada pelo

usurio com o apoio da interface grfica.

Por meio da interface bem constituda e formada, permite de maneira simples,

selecionar a porta que seu computador para uma livre para comunicao de dados,

sendo atravs de um cabo conversor o uso da porta serial USB, apresentado na

figura 1.2, ou mesmo atravs da porta serial comum (RS232), alm de escolher uma

velocidade de transmisso de dados para o letreiro.

Figura 1.2 Cabo conversor serial RS232 para USB.

1.2. OBJETIVO

Este projeto tem como objetivo desenvolver um letreiro eletrnico controlado

por microcontrolador com comunicao via porta USB, que atenda aos requisitos de

mercado, envolvendo conhecimentos de lgica, programao, eletrnica e desenho

tcnico.

As caractersticas que o sistema do letreiro eletrnico contm so:

Baixo custo (R$) para evitar gastos adicionais a cada atualizao ou mudanas

de campanhas;

14
Verstil e facilmente programvel pelo usurio para a disponibilizao de

mensagens em ambientes internos ou externos, convergindo em um dispositivo de

propaganda para uso institucional e industrial como meio de divulgao de

informaes especficas, ajustando-se s necessidades e condies de cada

estabelecimento, contando com fcil manuteno;

Dinmico e eficiente, como meio para divulgar, informar, orientar e vender

(Produtos - Servios - Procedimentos Valores Normas de Segurana - Metas -

Produtividade - Promoes - Eventos);

O letreiro apresenta caracteres alfanumricos, tambm medio da

temperatura ambiente. Para medir a temperatura do ambiente foi utilizado o sensor

de temperatura LM35 que alm de ter preciso, apresenta custo baixo. Alm de

letras e nmeros ter a possibilidade de conter caracteres especiais.

1.3. JUSTIFICATIVA

O motivo pelo qual utilizado os microcontroladores deve-se ao fato de que

muito pode ser automatizado e muitos problemas podem ser resolvidos usando-os.

Com arquitetura e tamanho reduzidos, os microcontroladores ajudam a minimizar a

planta de trabalho e o circuito onde fora inserido.

15
2. FUNDAMENTAO TERICA

Neste captulo ser abordada a fundamentao terica necessria para o

desenvolvimento do projeto.

2.1. MICROCONTROLADOR

Os microcontroladores tomaram conta dos equipamentos eletroeletrnicos, e

usado em diversas solues de problemas, como exemplo observa-se seu emprego

desde chuveiros eltricos at complexos equipamentos mdicos [1,2].

A diferena entre um sistema microprocessado e um microcontrolado o fato

deste ultimo ter internamente em um nico encapsulamento o que o

microprocessado exigiria em vrios outros chips. O microcontrolador no s reduz o

preo do sistema como tambm reduz o espao fsico devido a todos componentes

necessrios serem internos a um nico chip.

As vantagens dos microcontroladores da famlia 8051 o fato de possurem

em um nico circuito integrado, vrios elementos que em um sistema

microprocessado usaria alguns outros CIs, tais como memria RAM e ROM, canal

de comunicao serial, e as portas de entrada e sada [3].

2.1.1. CARACTERSTICAS GERAIS

CPU de oito bits otimizada para aplicaes de controle;

64 Kbytes de endereamento de memria de programa;

64 Kbytes de endereamento de memria de dados;

Quatro Kbytes de memria de programa interna;

128 bytes de memria RAM de dados interna;

16
32 linhas de E/S bidirecionais, endereveis individualmente;

Dois temporizadores/contadores;

Cinco entradas de interrupes (trs internas e duas externas) com dois

nveis de prioridades;

Um oscilador interno de relgio;

Um canal de comunicao serial UART full-duplex(capacidade de enviar

e receber informaes simultaneamente).

A arquitetura bsica do microcontrolador da famlia 8051 apresentada na

figura 2.1.

Figura 2.1 Arquitetura bsica do microcontrolador 8051.

Os microcontroladores so mais facilmente encontrados em encapsulamentos

DIP (Dual In-line Package), que tambm conhecido por DIL (Dual In-Line) devido a

sua pinagem estar disposta em duas linhas. Na figura 2.2 pode ser observado o

microcontrolador AT89S52, fabricado pela Atmel [3,4].

17
Figura 2.2 Microcontrolador com formato DIP.

Todavia, existem outros tipos de encapsulamentos, como por exemplo, os

Quad-Pack, que tem a distribuio da sua pinagem em quatro segmentos em volta

do circuito integrado e pode ser visto na figura 2.3 [3].

Figura 2.3 Exemplo de Encapsulamento Quad Pack.

18
2.1.2. PINAGEM

Conforme visto na figura 2.2, o encapsulamento DIP do microcontrolador 8051

possui 40 pinos, que so utilizados para estabelecer vinculo fsico com o meio

externo, ou seja, traduzir em sinais eltricos o programa em sua memria, com isso

possvel interfacear com display, teclado e etc.

O microcontrolador 8051 dispe de quatro ports (podem ser traduzido para

Portos, porm aqui ser usado ports devido a literatura disponvel tambm adotar a

palavra no idioma tradicional) de 8 bits cada, e cada um desses bits pode ser

configurado independentemente dos outros. So denominados com P0, P1, P2, P3,

e alguns dos pinos desses ports possuem funes especiais, por exemplo, os oito

bits de P0 e P2 podem ser usados como bits menos significativos e mais

significativos respectivamente no caso de expanso de memria como ser visto no

item sobre memria mais adiante.

Outros pinos possuem funes especiais como o P3.0 que pode ser

configurado para receber sinais pelo canal serial, o P3.1 que quando configurado

transmite sinais pelo canal serial, P3.2 e P3.3, podendo ser utilizados para gerar

interrupo externa, P3.4 e P3.5 para controlar o contador, P3.6 e P3.7 para

sinalizar escrita e leitura respectivamente da memria de dados externa.

Outros pinos completam a gama da pinagem do microcontrolador 8051, so

eles: RST/VPD utilizado para reiniciar o programa contido no microcontrolador;

XTAL1 e XTAL2 para uso do clock (clock o sinal usado para definir a velocidade de

cada instruo); Vss aterramento do microcontrolador; PSEN\ utilizada para

habilitao do programa externo; ALE utilizado para multiplexar endereo de

memria de dados; EA\ quando em nvel lgico zero trabalha apenas com a

memria externa e, quando em nvel lgico 1 trabalha com a memria interna desde

19
que o endereo no ultrapasse 4096; Vcc pino de alimentao do microcontrolador

[4].

2.1.3. ORGANIZAO DA MEMRIA

A memria do microcontrolador 8051 est organizada em memria de

programa e memria de dados. A memria de programa pode ser configurada para

ser usada apenas os 4Kbytes que est disponvel internamente, ou ao fazer

expanses de memria que no caso externa e usar 4Kbytes internos mais

60Kbytes externos ou simplesmente usar 64Kbytes externos com pode ser

visualizado nas figuras 2.4 e 2.5 respectivamente.

A memria RAM (Memria de Acesso Aleatrio, so memrias volteis) de

dados, alm da interna do microcontrolador pode ser expandida para 64Kbytes

externamente e trabalhar com a quantidade de memria resultante da soma das

duas [3].

Figura 2.4 Expanso de memria usando 4Kbytes interno e 60Kbytes externos.

20
Figura 2.5 expanso de memria usando apenas 64kbytes externos.

2.1.4. RESET

O reset responsvel por reinicializar o programa contido no microcontrolador,

e acontece quando o pino RST permanece por mais de dois ciclos de mquina em

nvel alto.

Ao ocorrer o reset alguns registradores so preenchidos com valores

predeterminados e que deve ser levado em considerao para evitar acionamentos

indevidos como exemplo P0, P1, P2, P3 tero valor 255 (ou FF em hexadecimal)

aps a reinicializao.

Para gerar o sinal que far o pedido de reset ao microcontrolador basta colocar

um capacitor em srie com um resistor conforme ilustrado na figura 2.6, este circuito

garantir os dois ciclos de mquina em nvel alto no pino de RST [4].

Figura 2.6 Circuito de reset do microcontrolador.

21
2.1.5. INTERRUPES

Interrupes so sinais gerados internamente ou externamente que solicitam

CPU que pare de executar o que est em andamento e execute o que foi solicitado

pela interrupo e depois volta funo anterior ao pedido da interrupo.

O microcontrolador 8051 pode ser interrompido de cinco modos diferentes:

Interrupo externa INT0\;

Interrupo do timer/counter TIMER0;

Interrupo externa INT1\;

Interrupo do timer/counter TIMER1;

Interrupo pelo canal de comunicao serial.

Essas interrupes podem ser habilitadas ou desabilitadas individualmente, e

tambm possvel desabilitar todas de uma nica vez.

Para cada pedido de interrupo o fluxo do programa se desloca para um local

diferente e especfico j definido pelo fabricante do microcontrolador. Esses locais

so endereos da memria de programa interna como mostra a figura 2.7 [4].

22
Figura 2.7 Endereo de desvio das interrupes.

2.1.6. CLOCK

O clock pode ser gerado por osciladores internos ou osciladores externos. No

caso de usar o oscilador interno basta colocar um cristal ou ressonador entre os

pinos XTAL1 e XTAL2 como mostrado na figura 2.8. Quando desejvel usar clock

externo basta aterrar o pino XTAL1 e injetar o sinal proveniente da fonte geradora de

clock no pino XTAL2 com visto na figura 2.9 [4,5].

Figura 2.8 Oscilador interno com cristal.

23
Figura 2.9 Oscilador externo.

2.1.7. CONTADORES / TEMPORIZADORES

No microcontrolador 8051 possui dois T/C que so utilizados para contar

tempo, pulsos externos e gerar pedidos de interrupo.

Os T/Cs podem ser configurados de quatro maneiras possveis:

Modo 0 contador ou temporizador de oito bits com divisor de

freqncia de at 32 vezes;

Modo 1 contador ou temporizador de 16 bits;

Modo 2 contador ou temporizador de oito bits com recarga automtica;

Modo 3 contador de eventos de oito bits e um temporizador de oito

bits.

Os T/Cs podem ser usados independentemente dos outros componentes do

microcontrolador e pode ser habilitados ou no via software ou hardware [3,4].

2.1.8. CANAL DE COMUNICAO SERIAL

A comunicao serial foi criada com o intuito de resolver os problemas

provenientes de uma comunicao paralela, pois esta possui muitos fios e que para

realizar transmisso e recepo de dados longa distncia era de fato muito

trabalhoso e custoso.

24
A comunicao serial possibilita que seja feita transmisso de dados com um

nmero reduzido de fios, visto que a informao enviada bit a bit e depois na

recepo montado o byte referente ao dado enviado.

A transmisso pode ser feita das trs formas que seguem e podem ser

observadas na figura 2.10:

Simplex um elemento apenas emite e o outro apenas recebe;

Half-Duplex os elementos recebem e enviam dados porem no

simultneos;

Full-Duplex os elementos recebem e enviam dados simultaneamente.

Figura 2.10 Modos de transmisso da comunicao serial.

A transmisso pode tambm ser classificada com sncrona ou assncrona. Na

transmisso sncrona so enviados alguns bits de sincronizao e em seguida envia

uma quantidade qualquer de bits de dados e finalmente so enviados alguns bits de

parada. Na transmisso assncrona so enviados um start bit e mais sete bits de

dados, aps o stimo bit de dado enviado um stop bit sinalizando o fim do envio do

caractere.

O microcontrolador 8051 capaz de executar transmisses full-duplex e de

forma sncrona ou assncrona conforme configurao interna.

25
2.1.9. LINGUAGEM UTILIZADA

Devido robustez do Assembly, tanto em velocidade como em controle de todo

o fluxo do programa quase que em nvel de hardware, foi adotada esta linguagem no

desenvolvimento do programa a ser inserido no microcontrolador, contudo nada

impediria a utilizao de outras linguagens como C, que se apia no uso de

compiladores e interpretadores do cdigo para criao do hexadecimal, que a

base de gravao no microcontrolador.

A principal vantagem em se utilizar linguagem C o fato de suas instrues

serem de alto nvel o que facilita muito na hora de programar. O programador no

precisa conhecer profundamente o hardware e seus mnemnicos que so as

instrues de baixo nvel dos microcontroladores, erros que o programador em

Assembly teria que tratar, no C no necessrio, pois o prprio compilador j

corrige algumas restries como endereamento de variveis, condies de desvios

e outras.

Devido ao fato dos compiladores utilizarem o espao interno da memria sem

que o programador saiba quais so, e possurem funes prontas para soluo de

algumas tarefas como comunicao com perifricos, aumentam a utilizao desta

memria de forma considervel. Enquanto um programa em Assembly ocupa alguns

kbytes o mesmo programa em C ocupa algumas centenas de kbytes, e tambm

por este motivo que foi notada a importncia de se programar em Assembly [5].

2.2. DIODO EMISSOR DE LUZ (LED)

O diodo emissor de luz que abreviado por LED (Light Emitter Diode), algum

tempo vem substituindo as lmpadas incandescentes, em vrias aplicaes, por

26
causa de sua baixa tenso, longa vida e por apresentarem excelente funcionamento

em circuitos chaveados.

Enquanto os diodos comuns so feitos de silcio o que acaba bloqueando a

passagem de luz devido a sua opacidade, os LEDs so fabricados com elementos

como glio, arsnico e fsforo. So fabricados nas mais diversas cores dentre elas

se destaca o verde, amarelo, vermelho e azul.

Quando um LED est diretamente polarizado como pode ser visto na figura

2.11, os eltrons livres cruzam a juno e caem nas lacunas, e devido a essa queda

de um nvel de energia mais alto para um nvel mais baixo, ele irradia energia. No

diodo comum a energia irradiada em forma de calor, mas no LED irradiada em

forma de luz [6].

Figura 2.11 LED diretamente polarizado.

2.2.1. TENSO E CORRENTE

Todo LED tem uma queda de tenso caracterstica que varia conforme a cor, a

corrente, a tolerncia, etc., e definido pelo fabricante. A corrente mxima que o

LED suporta sem que haja danos tambm especificada pelo fabricante.

27
Na figura 2.11 o resistor utilizado para limitar a corrente no LED que se for

acima do especificado pelo fabricante danifica-o, e se for muito menor tambm h

uma diminuio considervel do brilho.

Para efetuar o clculo de qual valor do resistor a ser usado, basta saber qual a

queda de tenso no nele e a corrente, e aplicar na lei de ohm. A queda de tenso no

resistor dada por:

VR = V S - VD

Onde,

VR tenso no resistor;

VS tenso da fonte;

VD tenso no diodo.

Da lei de ohm tem:

Traduzindo para o circuito:

Onde IS = corrente mxima do LED.

Para a maioria dos LEDs disponveis comercialmente, a queda de tenso tpica

de 1,5V a 2,5V, e correntes nominais entre 10 e 50 mA [6].

2.2.2. CLASSIFICAO POR LUMINOSIDADE

Os LEDs mais comuns so os de 3 mm, 5 mm e 10 mm. E so classificados

com relao ao brilho que produzem:

28
Baixo brilho: com correntes nominais que variam entre 5 e 20 mA e potncia

entre 50 e 500 mcd (milicndela), geralmente utilizados para indicar algum estado de

componentes eletrnicos, tal como o stand by dos televisores;

Alto brilho: com correntes nominais que variam entre 20 e 50 mA e potncia

entre 500 e 3000 mcd, usado em tunning de carros e decorao de pequenos

ambientes;

Superleds: com correntes nominais entre 100 e 2000 mA e potncia entre

10000 e 120000 mcd, usado para iluminao e decorao de grandes ambientes e

lanternas.

Os LEDs mais usados em letreiros so os de alto brilho e com 5 mm,

principalmente quando forem usados em outdoors, pois possuem um brilho e nitidez

suficiente para uma boa visualizao pelo pblico que o observa.

2.3. MAX232

O Max232 um circuito integrado capaz de converter os nveis de sinal

proveniente de uma porta padro RS-232, para um nvel TTL.

Ele composto por dois conversores, e podem ser usados tanto para

transmisso quanto para a recepo de dados. A figura 2.12 mostra a pinagem do

encapsulamento e a figura 2.13 mostra um exemplo de como deve ser efetuado a

ligao.

29
Figura 2.12 Max232 em encapsulamento DIP.

Figura 2.13 Max232: Esquema de ligao.

30
3. DESENVOLVIMENTO

Neste captulo so abordados os procedimentos de associao dos

microcontroladores, esquema modular, teoria de controle, esquemas da montagem

de circuito impresso, gerenciador.

3.1. SELEO DO MICROCONTROLADOR

Para que pudesse ser desenvolvido o letreiro era necessrio um

microcontrolador que pudesse aliar baixo custo, memria de dados para os

caracteres, e memria de programa suficiente para desenvolvimento do programa do

cdigo fonte, e portas de entrada e sada suficiente para a aplicao.

Entre os microcontroladores pesquisados esto o AT89S52, AT89S8252 e

AT89S8253 da Atmel, como na figura 3.1 apresenta a pinagem e o encapsulamento

na figura 3.2. O primeiro atendia ao nmero de portas, porm no tem memria de

dados, o segundo e o terceiro atendem a todos os requisitos, no entanto o

AT89S8253 possui memria de programa um tanto excessiva para o

desenvolvimento do programa o que o torna mais caro, logo o escolhido foi o

AT89S8252 cujas caractersticas seguem abaixo:

Compatvel com a famlia 8051;

8Kbytes de memria de programa;

2Kbytes de memria EEPROM para dados;

256 Bytes de memria RAM;

32 linhas de entrada e sada;

Trs contadores/temporizadores de 16 bits;

Nove fontes de Interrupes;

Interface Serial.
31
Figura 3.1 Pinagem do microcontrolador AT89S8252.

Figura 3.2 - Microcontrolador AT89S8252 / Encapsulamento DIP.

3.2. TEORIA DE FUNCIONAMENTO

Para que um LED funcione, ele tem que ter tenso positiva em seu anodo e o

catodo deve ser aterrado, ligando todos os anodos de LEDs pertencentes mesma

linha em comum, quando for energizar esta linha estar colocando positivo em todos

32
os anodos dos LED's, contudo para que somente um se acenda basta que aterre

apenas o catodo de um deles. As colunas tambm estaro ligadas entre si atravs

do catodo dos LEDs pertencentes a esta coluna. Desta forma, para que selecione

qual LED deve ser aceso, basta escolher a linha e energiz-la e escolher a coluna e

aterr-la, apresentada na figura 3.3.

Figura 3.3 Controle individual de LEDs.

No projeto liga-se uma coluna por vez, logo, coloca-se positivo nas linhas

correspondente a primeira coluna do caractere, e posteriormente aterra a coluna um,

deixa aterrada por um tempo e depois desaterra, que o efeito de ligar e desligar a

coluna, coloca-se agora positivo nas linhas correspondentes a segunda coluna do

caractere, liga a coluna deixa ligada por um tempo e desliga a coluna, isto ser feito

para todas as colunas do caractere, e voltar para a primeira coluna, como todo o

processo ser feito em uma freqncia muito alta o olho humano enxergar como se

todas as colunas estivessem ligadas ao mesmo tempo, podendo assim visualizar

corretamente o caractere em sua ntegra. Demonstrado na figura 3.4.

33
Figura 3.4 Seqncia de acendimento de colunas.

3.3. DIAGRAMA DE FLUXO

Para o desenvolvimento do programa foi necessrio mapear as portas

conforme as necessidades do letreiro, como o microcontrolador possui quatro ports

de oito bits cada, num total de 32 bits, desse total ser usado sete bits de um dos

34
ports para controlar as linhas do letreiro e os outros trs ports iro controlar as 24

colunas do mdulo do letreiro.

Foi criada uma tabela contendo todos os caracteres; a codificao dos

caracteres foi desenvolvida de maneira genrica, de modo que todos os caracteres

possuem cinco colunas, cada coluna com sete bits; desta forma para inserir um novo

caractere na tabela, basta codific-lo conforme o padro.

Os caracteres entram coluna por coluna no letreiro, quando um caractere da

tabela chamado para entrar no letreiro, cada coluna solicita rotina roda que

libere espao para que ela possa entrar; a rotina roda coloca na primeira coluna o

contedo da segunda coluna, e na segunda o contedo da terceira, e assim

sucessivamente, quando chega coluna 24 ela copiada para a 23 e no lugar da 24

colocado o contedo da coluna do novo caractere que havia solicitado a entrada

no letreiro. Aps a entrada de uma nova coluna no letreiro, todas as colunas so

acesas seqencialmente por um tempo.

Existe uma rotina chamada estabilidade onde h uma varivel responsvel

pelo tempo de rotatividade do letreiro, ela que define o tempo de entrada das

colunas no letreiro, bastando para modificar o tempo de rotao da frase, alterar esta

varivel. Nesta mesma rotina tem tambm uma varivel responsvel para indicar

qual das cinco colunas do caractere esta entrando no letreiro, e toda vez que entra

nesta rotina ela incrementada.

Todas as colunas chamam a rotina roda e posteriormente caem na rotina

estabilidade, e passado o tempo de estabilidade, o fluxo do programa volta para a

tabela do caractere, contudo na linha seguinte, que tambm ir chamar a rotina

roda, para solicitar a entrada no letreiro, quando estiver na ltima coluna do

caractere, a rotina estabilidade insere um espaamento, zera o contador de coluna e

35
retorna para a linha seguinte a que chamou a rotina roda, como j no tem mais

colunas para inserir ento o fluxo do programa chama o prximo caractere da frase,

previamente armazenada na memria; fluxograma do cdigo do microcontrolador na

figura 3.5.

Depois que todos os caracteres da frase j estiverem sidos mostrados no

letreiro, h o retorno para o comeo da frase e reinicia todo o processo novamente.

Figura 3.5 Fluxograma de cdigo fonte do microcontrolador.

3.4. CARACTERES

A seguir sero listados todos os caracteres includos na base de dados.

Letras inseridas no diagrama: A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R,

S, T, U, V, W, X, Y, Z, , , , , , , , , , .

36
Nmeros inseridos: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9.

Caracteres especiais: vrgula, abre parnteses, fecha parnteses, seta

direcional para direita, seta direcional para esquerda, seta direcional para cima, seta

direcional para baixo, igualdade, abre aspas duplas, fecha aspas duplas, abre

aspas, fecha aspas, dois pontos, ponto e vrgula, barra para a direita, sinal de

menor, sinal de maior, interrogao, exclamao, porcentagem, cifro, jogo da velha,

e comercial (&), ponto, trs pontos, asterisco, mais, menos, reticncias.

Estes caracteres ao serem impressos no letreiro ficaro de acordo com a figura

3.6.

Figura 3.6 Caracteres possveis do letreiro.

3.5. MATRIZ DE LEDS

A matriz de LEDs foi desenvolvida com espaamento de 1,5 cm entre os eixos

dos LEDs, e contendo 168 LEDs que esto distribudos em vinte e quatro colunas e

sete linhas.

37
A matriz de LEDs foi desenvolvida para que tenha estrutura para acoplamento

com outras placas, como pode ser visto na figura 3.7, existem conectores em ambos

os lados da matriz possibilitando a insero da matriz em qualquer parte do letreiro.

Figura 3.7 Esquema eltrico da matriz de LEDs.

3.5.1. LAYOUT DA MATRIZ

Para a construo da matriz de LEDs foi utilizado um programa para gerar o

layout para placa de circuito impresso. Esse layout devido a muito cruzamento de

trilhas tornou-se invivel utilizando placa de face nica, pelo fato de ter que usar

muitos jumps, e principalmente aumentando a rea de ocupao da placa. No

entanto, com placa de face dupla foi possvel excluir os problemas encontrados no

caso da placa de face nica.

A figura 3.8 mostra a face superior e na figura 3.9 pode ser visto a parte inferior

da placa, do layout da matriz de LEDs.

38
Figura 3.8 Layout: Matriz de LEDs face superior.

Figura 3.9 Layout: Matriz de LEDs face inferior.

3.6. MDULO CONTROLADOR

Para aumentar a modularidade do letreiro e diminuir ao mximo possvel o

tamanho da matriz de LEDs, foi criado um mdulo controlador. O controlador contm

o buffer, o microcontrolador e alguns conectores para comunicao com outros

mdulos do letreiro, apresentado na figura 3.10.

39
Figura 3.10 Esquema eltrico do modulo gerenciador.

Na figura 3.10, J5 o conector da fonte, SW1 o boto de liga e desliga do

mdulo, U2 o buffer de controle das linhas, J1, J2 e J4 so os conectores de

colunas e no J3 o pino 1, 2 e 4 usado para comunicao serial com o mdulo

gerenciador e seu devido aterramento junto ao mdulo, j o pino 3 usado pelo

gerenciador para informar o posicionamento do mdulo no letreiro e o momento em

que ele deve ser iniciado. O layout da placa do controlador pode ser visto na figura

3.11 e sua respectiva imagem 3D na figura 3.12.

40
Figura 3.11 Layout do mdulo controlador.

Figura 3.12 Imagem 3D do mdulo controlador.

3.7. MDULO GERENCIADOR

O mdulo gerenciador o responsvel por repassar as mensagens para os

mdulos controladores, via comunicao serial RS-232, e tambm sincronizar a

mensagem ao longo de todo o letreiro. Mdulo apresentado na figura 3.13.

41
Figura 3.13 Esquema eltrico do mdulo gerenciador.

No mdulo gerenciador cujo circuito eltrico est esquematizado na figura 3.13

alm do microcontrolador, U2 o CI Max232 responsvel por converter o sinal do

computador para sinal TTL e vice-versa, U3 o buffer 74HCT244 responsvel por

controlar o fluxo de dados entre o PC e o gerenciador e entre o gerenciador e os

controladores, quando for receber sinais do PC habilitado U3: B e quando vai

enviar mensagens para os mdulos controladores habilitado U3: A, lembrando que

ambos nunca sero habilitados ao mesmo tempo. Na figura 3.13 foram colocados 10

conectores disponveis para expanso modular, todavia h a capacidade de se

expandir para at 24 mdulos controladores. O layout da placa pode ser visto na

figura 3.14 e sua respectiva imagem 3D na figura 3.15.

42
Figura 3.14 Layout do mdulo gerenciador.

Figura 3.15 Layout do mdulo gerenciador em 3D.

43
4. CDIGO FONTE

Procurando atender aos requisitos de projeto e da empresa, foi buscado o

conhecimento de algumas linguagens de programao que pudessem vir a facilitar e

a cumprir com prazo e parmetros do letreiro.

4.1. ASSEMBLY

Ao contrrio do que acontece nas linguagens de alto nvel, existe at certo

ponto uma equivalncia entre a linguagem de montagem simples e a linguagem de

mquina. Por este motivo, a transformao do cdigo de montagem em cdigo de

mquina no chamada compilao, mas montagem. O procedimento de

transformao da linguagem de montagem para linguagem de mquina utilizando o

montador, assembler, e procedimento reverso utilizando-se de desmontador, o

disassembler [7].

Alm disso, e de tempo de conhecimento da linguagem para se trabalhar com

microcontroladores e outros perifricos que podem ser gravados, foi por meio desta

que se baseou o programa de interao dos microcontroladores AT89S8253 do

mdulo para com a recepo de dados que so enviados pelo programa em cdigo

ASCII.

4.2. C/C++

C uma linguagem de programao compilada de propsito geral, estruturada,

imperativa, procedural, de alto nvel, e padronizada, criada em 1972, por Dennis

Ritchie, no AT&T Bell Labs, para desenvolver o sistema operacional UNIX (que foi

originalmente escrito em Assembly). A linguagem C classificada de alto nvel pela

44
prpria definio desse tipo de linguagem. A linguagem C permite acesso de baixo

nvel com a utilizao de cdigo Assembly no meio do cdigo fonte. Assim, o baixo

nvel realizado por Assembly e no C. Desde ento, espalhou-se por muitos outros

sistemas, e tornou-se uma das linguagens de programao mais usadas, e

influenciou muitas outras linguagens, especialmente C++, que foi originalmente

desenvolvida como uma extenso para C [8].

O fato de C++ costumava ser compilado em cdigo C tambm visvel a partir

do fato de que C++ est contida em C: C++ oferece a plena gramtica e suporta

todas as funes da biblioteca C, e incrementa suas prprias caractersticas. Isto faz

com que a passagem de C++ para C, seja mais fcil. Para os usurios que j

trabalham com C, no haver uma alterao repentina dos hbitos existentes [12].

4.3. JAVA

Java uma linguagem de programao orientada a objeto desenvolvida na

dcada de 90 por uma equipe de programadores chefiada por James Gosling, na

empresa Sun Microsystems. Diferentemente das linguagens convencionais, que so

compiladas para cdigo nativo, a linguagem Java compilada para um "bytecode"

que executado por uma mquina virtual [9].

Desenvolvido na premissa de aplicativos baseados em CGI (Common Gateway

Interface) e na web, mas esta linguagem oferece muito mais prometendo eliminar

muitas das frustraes dos primeiros programadores da web, acrescentar animao

a aplicativos web e rodar independentemente de plataforma usando o mesmo

cdigo. Alm disso, Java se parece com C/C++ [10].

Embora a similaridade superficial entre Java e C/C++ torne fcil aos que

conhecem C/C++, escrever algoritmos que executam clculos simples ou passem

45
vrias vezes por uma tarefa repetitiva, um tanto desgastante quando escrito em

C/C++, logo um conjunto de tarefas pode ser minimizado utilizando-se do Java [10].

4.4. PYTHON

Python uma das linguagens relativamente pouco conhecida e aclamada, no

entanto apresenta uma simplicidade indiscutvel e extremamente veloz, e de certa

forma o usurio ao utilizar esta linguagem poder se sentir falando diretamente com

a mquina; alm de ser simples, construda em uma base terica e tcnica muito

complexa [11].

um projeto open source, apoiado por muitos indivduos. uma plataforma

independente, linguagem script, com acesso completo a API do sistema operacional

[13]. Python uma linguagem orientada a objetos e dinmica, e nela quase tudo

um objeto; eleva a orientao a objetos, em alguns casos, ao extremo [11].

46
5. LINGUAGEM DE PROGRAMAO E COMUNICAO
SERIAL

Para o desenvolvimento da interface grfica foi estudada em paralelo a

linguagem de programao que pudessem interagir juntamente, para facilitar o

mesmo.

A interface grfica do utilizador (GUI Graphical User Interface) um

mecanismo de interao homem-computador com um mouse ou teclado o usurio

capaz de selecionar esses smbolos e manipul-los de forma a obter algum

resultado prtico.

Um software tanto um produto quanto um veculo para entrega de um

produto. Como um produto, entrega o potencial computacional personificado pelo

hardware computacional ou, mais amplamente, por uma rede de computadores que

acessam pelo hardware local. Como o veculo de entrega de produto, o software

atua como a base do controle do computador(sistemas operacionais), a

comunicao da informao (redes), e a criao e controle de outros programas

(ferramentas e ambientes de software) [15].

O software de interface grfica um mtodo ao usurio para que ele possa

controlar, alterar e remover dados. O software de comunicao um elemento

chave na transmisso de dados, pois sem o mesmo no possvel fazer a

comunicao dos dados inseridos anteriormente, com o microcontrolador.

Um elemento chave na transmisso de dados, pois sem o mesmo no

possvel fazer a comunicao dos dados inseridos anteriormente, com o

microcontrolador.

47
Para realizar os procedimentos requeridos do projeto foi necessrio selecionar

a melhor linguagem de programao com quela que de maior conhecimento

pudesse atender s expectativas de projeto.

Aps pesquisas pode-se constatar que a linguagem de programao C/C++

fora a que melhor se adaptava aos requisitos, uma vez que estudada ao longo do

curso de engenharia mecatrnica.

5.1. INTERFACE GRFICA

Quando selecionado a linguagem de programao, o segundo passo fora

identificar o programa que pudesse desenvolver uma interface grfica que pudesse

ser amigvel e facilmente identificado pelo usurio.

A seleo da linguagem de programao foi baseada no contexto de tempo de

conhecimento da linguagem e seus parmetros, com o aperfeioamento a

orientao a objetos, bem comum ao C++.

5.1.1. C++ BUILDER 6

O Borland C++ Builder 6 Enterprise Suite permite desde a criao de pginas

da Internet at interfaces simples e robustas, e ao mesmo tempo habilita a

comunicao com outros softwares ainda que no sejam em linguagem C/C++.

Reduz os ciclos de desenvolvimento, permite utilizar os principais padres da

tecnologia web, simplifica a integrao de aplicaes e aproveita a rapidez das

revises incrementais [13].

Principais caractersticas:

Constri aplicaes preparadas para a plataforma cruzada para os sistemas

operativos Windows e Linux;


48
Impulsiona a produtividade com o alto rendimento do compilador de cdigo

nativo 32-bit;

Desenvolvimento de interfaces simples e facilmente alterveis.

Exemplo de cdigo desenvolvido na plataforma C++ Builder:

enviaComando(){

DWORD BytesEscritos = 0;

TamanhoText1 = long filelength(Text1);

WriteFile(hSerial,Text1.text,TamanhoText1,&BytesEscritos, NULL);

5.1.2. COMUNICAO SERIAL

A partir da linguagem de programao e tambm do programa onde seria

desenvolvido o cdigo fonte para transmisso e controle de dados juntamente com a

interface grfica, que fora desenvolvido a comunicao serial.

Conforme citado, foi utilizado um cabo conversor de sinal serial USB para serial

RS232, de modo a viabilizar e facilitar a comunicao, permitindo ao usurio fazer a

escolha do tipo de transmisso que deseja.

Com os caminhos, linguagem C/C++ e C++ Builder, escolhidos foi possvel

traar o comando capaz de permitir a comunicao, checagem de porta e

transmisso dos dados para o microcontrolador do mdulo.

O comando criado para atender a exigncia do projeto de protocolo RS232

(porta serial comum) foi este:

int iniciaSerial(char *NomePorta){

//char *NomePorta = "COM2"; //COM1, COM2...

49
hSerial =

Create(NomePorta,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,

0,NULL);

if(hSerial == INVALID_HANDLE_VALUE)

return false;

DCB dcb;

if( !GetCommState(hSerial, &dcb))

return false;

dcb.BaudRate = CBR_300;

dcb.ByteSize = 8;

dcb.Parity = NOPARITY;

dcb.StopBits = ONESTOPBIT;

//Define novo estado.

if( SetCommState(hSerial, &dcb) == 0 )

return false; //Erro.

Funo responsvel por finalizar a comunicao com a porta serial:

void terminaSerial(){

CloseHandle( hSerial );

Funo responsvel por enviar o comando do campo de texto para o

microcontrolador.

enviaComando(){

DWORD BytesEscritos = 0;

TamanhoText1 = long filelength(Text1);

50
WriteFile( hSerial, Text1.text, TamanhoText1, &BytesEscritos, NULL );

Figura 5.1 Mdulo de comunicao e interface.

5.1.3. PROTOCOLO RS232

RS232 um padro de troca serial de dados entre binrios de um terminal de

dados e um comunicador de dados. No protocolo de comunicao RS-232,

caracteres so enviados um a um como um conjunto de bits. O padro define os

nveis eltricos correspondentes aos nveis lgicos um e zero, a velocidade de

transmisso padro e os tipos de conectores [14].

51
6. CONCLUSO

Ao longo do ano, atravs dos estudos e testes que foram realizados, pouco se

modificou do projeto original, como o tamanho do letreiro e a linguagem de

programao de interface grfica.

Quando concludos todos os estudos e desenvolvimentos, o uso do cabo

conversor de sinal serial USB para RS232 (serial comum) foi fundamental para a

transmisso de dados da frase desejada pelo usurio para o letreiro, e com o

mesmo permitindo ao utilizador optar pela comunicao serial RS232 ou mesmo

pela serial USB; uma vez que se possam realizar as duas diferentes formas de

comunicao de dados.

O mtodo utilizado para o controle da matriz de leds e dos mdulos do letreiro,

foi atravs do microcontrolador da Atmel AT80S5283 da famlia 8051.

52
7. REFERNCIAS

[1]: Configurao aplicada a circuito eletrnico controlador de

temperatura de gua, especialmente aplicado em chuveiro. Disponvel em :

<http://www.patentesonline.com.br/configuracao-aplicada-a-circuito-eletronico-

controlador-de-temperatura-de-agua-especialmente-100743.html> Acesso em 8 Out

2008.

[2]: Monitor de movimentos respiratrios.

<http://www.patentesonline.com.br/monitor-de-movimentos-respiratorios-

163443.html> Acesso em: 8 Out 2008.

[3]: ZENI, Victor Asselmann. Monografia: Trena ultrassnica

microcontrolada. Campo Grande. UCDB. 2008.

[4]: SILVA JUNIOR, Vidal Pereira da. Aplicaes prticas do

microcontrolador 8051. 8 Ed. So Paulo. rica. 1998.

[5]: GIMENEZ, Salvador Pinillos. Microcontrolador 8051 - teoria do hardware e

do software/aplicao em controle digital/laboratrio e simulao. 1 Ed. So Paulo.

Prentice Hall. 2002.

[6]: MALVINO, Albert Paul. Eletrnica. 4 Ed. Rio de Janeiro: Makron Books.

1997.

[7]: Assembly. Disponvel em: < http://pt.wikipedia.org/wiki/Assembly> Acesso

em: 3 Nov 2008.

[8]: C/C++. Disponvel em: < http://pt.wikipedia.org/wiki/C++> Acesso em: 3 Nov

2008.

[9]: Java Linguagem de programao. Disponvel em:

<http://pt.wikipedia.org/wiki/Java_(linguagem_de_programao)> Acesso em: 21

Ago 2008.

53
[10]: FRAIZER, C.; BOND, J.; ANTUNES, . R. trad. API Java Manual de

Referncia. So Paulo. Makron Books. 1997.

[11]: NORONHA SILVA, Gustavo. Curso de Python. Frum Mineiro de

Software Livre. Montes Claros. 2003.

[12]: BROKKEN, Frank B. C++ Annotations Version 7.2.1. Groningen Center

of Information Technology. Disponvel em:

<http://www.icce.rug.nl/documents/cplusplus> Acesso em: 13 Nov 2008.

[13]: LOTT, Steven F. Building Skills in Python A Programmers Introduction

to Python. Creative Commons License. 2008.

[14]: RS232. Disponvel em <http://pt.wikipedia.org/wiki/RS232> Acesso em: 27

Out 2008.

[15]: PRESSMAN, Roger S. Software Engineering A Practitioners

Approach. 6 Ed. New York. McGraw-Hill. 2005.

MORRISON, M. et al. Como Programar em JavaBeans. So Paulo. Makron

Books. 1999.

STROUSTRUP, Bjarne. A Linguagem de Programao C++. 3.ed. Porto

Alegre: Bookman, 2000

REISDORPH, K. et al. Borland C++ Builder 4. Indianapolis. Sams Publishing.

1999.

JAMSA, K.; KLANDER, L. Programando em C/C++: A Bblia. So Paulo.

Makron Books. 1998.

54

You might also like