No mundo físico parâmetros como
temperatura, força, pressão, umidade, velocidade entre outros são sinais analógicos.
Essas grandezas físicas são convertidas em sinais elétricos, para podermos
trabalhar com esses dados com o auxilio de micro controladores, devemos
converter esses sinais usando um conversor analógico digital (ADC) que é um componente
eletrônico que converte sinais para uma forma discreta.
Os conversores analógicos digitais são
os dispositivos mais usados no mundo para a aquisição de dados, o conversor
usado neste projeto é o ADC0808 com uma resolução de 8 bits possuindo oito
entradas de sinais analógicos com seu controle feito de maneira multiplexada.
O conversor analógico digital ADC0808 usa
o método de aproximação sucessiva para transformar os sinais lidos em dados
digitais.
O design do ADC0808 foi otimizado pela
incorporação dos mais desejados aspectos vistos em outros conversores, o
dispositivo oferece alta velocidade de conversão, precisão e dependência mínima
em relação a mudanças na temperatura ambiente.
Principais Características.
1.Fácil interface com micro controladores.
2.Não necessita de ajuste de zero ou de fundo de escala.
4.Oito canais de entradas multiplexados.
5. Com alimentação de 5V os sinais de
entrada podem variar de 0 a 5V.
6.Tensões
de saída compatível com as especificações TTL.
Conforme Trietley (1986), os conversores
A/D por aproximação sucessiva são os mais comuns entre os conversores A/D, permitem
uma conversão rápida, proporcionando uma gama de 100.000 ou mais conversões por
segundo.
Na técnica de aproximação sucessiva, é
utilizada um algoritmo para converter a entrada analógica em digital.
Este algoritmo consiste em ajustar o
MSB para 1 e todos os outros bits para 0. O comparador compara a saída do
conversor D/A (Vd) com o sinal da entrada analógica (Ve). Se Vd > Ve, o 1 é
removido do MSB e enviado para o próximo bit mais significativo. Se Ve > Vd,
o MSB permanece como 1 e o próximo bit mais significativo também recebe 1.
Assim o 1 é deslocado e testado em cada bit do decodificador D/A até o final do
processo, para obter o valor binário equivalente.
O
ADC0808 possui oito entradas, para selecionar a que será usada para receber os
sinais do extensômetro devemos enviar para o ADC 3 bits nos pinos 25,24,23.
Tabela de
seleção de entradas National Semiconductor- Data sheet ADC0808 – Outubro de 1999
O sinal enviado pelo extensômetro
depois de amplificado e tratado entrará no pino 26 (IN0), para selecionar esse
canal é preciso enviar 3 bits 0 (zero), ou aterrar os 3 pinos do seletor, neste
projeto os 3 pinos foram aterrados, o sinal analógico é convertido em um sinal digital com 8 bits de
resolução que no nosso caso permite uma mudança de estado a cada 20mV.
De acordo com o diagrama de tempo do
ADC podemos dizer quais os requisitos para realizar a leitura dos dados
processados pelo ADC, e definir uma freqüência de operação para atualização.
De acordo com o data sheet as
freqüências podem estar dentro da faixa de 10 a 1280 Khz, para gerar um clock
dentro destas especificações foi usado um CI 555 e a freqüência estipulada foi
de 320Khz.
No micro controlador a porta P0 recebe
valores de 0x00 até 0xFF
que
em decimal equivaleriam a 0 até 255 uma multiplicação simples por 2 nos permite
trabalhar com números decimais de 1 a 510 sendo uma aproximação simples e
efetiva dos 0 a 5kg que iremos exibir em nosso display, só nos restando fazer
um jogo com casas decimais que foi facilmente implementado no código.
Display
LCD, como inicializar sem uma biblioteca pronta.
Conforme visto em: http://www.electronica-pt.com/index.php/content/view/247/37/ (2009), os LCD são formados por
material que se denomina cristal líquido. As moléculas desse material são
distribuídas entre duas lâminas transparentes polarizadas. Essa polarização é
orientada de maneira diferente nas duas lâminas, de forma que estas formem
eixos polarizadores perpendiculares, como se formassem um ângulo de 90º. As
moléculas de cristal líquido são capazes de orientar a luz.
A base da iluminação de um LCD é a luz
fornecida por uma lâmpada CCFL ou um conjunto de LEDS. Nos LCD monocromáticos,
cada ponto da tela corresponde a um ponto da imagem.
Um pixel é a menor unidade de uma
imagem, o número de pixels no display determina a resolução do LCD.
Os LCDs são amplamente usados em
conjunto com micro controladores para mostrar a informação visualmente, os LCDs
possuem uma tabela de caracteres ASCII e símbolos matemáticos em sua memória.
O LCD requer três sinais de controle
que devem ser enviados pelo micro controlador.
Enable (E) - Este sinal permite
acessar o display através das instruções R/W e RS.
Quando enable tem nível lógico baixo o
display ignora os sinais vindos de R/W e RS, quando enable tem nível lógico
alto o display checa os estados desses dois controladores, e responde de
acordo.
Read/Write (R/W) Ler e Escrever- Determina
a direção em que os dados fluem entre o LCD e o micro controlador, quando R/W
tem nível lógico baixo os dados enviados pelo micro controlador são escritos no
LCD, quando R/W tem nível lógico alto os dados são lidos do LCD.
Register select (RS) Seletor de
Registros - De acordo com os dados nesse controlador o LCD interpreta o tipo de
dado que está sendo enviado pelo micro controlador.
Quando RS tem nível baixo uma
instrução está sendo escrita no LCD, quando o nível é alto um caractere ou mais
está sendo escrito.
E = 0 Acesso ao LCD desabilitado
= 1 Acesso ao LCD habilitado
R/W = 0 Escrevendo dados no LCD
= 1Lendo dados do LCD
RS= 0 Uma instrução foi enviada ao LCD
= 1 Um caractere foi enviado ao LCD
Escrevendo dados no LCD
Enviar dados para o LCD requer alguns
passos:
1) Setar o bit R/W bit como 0 (zero).
2) Setar o bit RS como 0 (zero) ou 1
(um) (instrução ou caractere).
3) Enviar dados para as linhas de
dado.
4) Setar o bit E como 1 (um).
5) Setar o bit E como 0 (zero).
Lendo dados
1) Setar o bit R/W como 1 (um)
2) Setar o bit RS como 0 (zero) ou 1
(um) (instrução ou caractere).
Display LCD 20x4 – descrição dos
pinos. (Data Sheet MGD2004D-FL-YBS – 26 de junho de 2006)
Inicialização do LCD
Antes de usar o display LCD para nosso
objetivo, ele deve ser inicializado via reset interno ou pelo envio de um
conjunto de instruções. Como nosso projeto foi concebido com a idéia de
conectar o display a um micro controlador, escolhemos a inicialização por
instruções.
Inicializar um display LCD com
instruções é um processo simples, abaixo temos um fluxograma que indica todos
os passos.
Fluxograma de inicialização por
instruções do Display LCD (Ajay Bhargav - http://www.8051projects.net/)
De
acordo com o fluxograma podemos observar que o display LCD é inicializado
conforme a seguinte seqüência
1)Enviar o comando 0x30 - Usando a
interface de 8 bits
2)Esperar 20ms
3)Enviar o comando 0x30 – Usando a
interface de 8 bits
4)Esperar 20ms
5)Enviar o comando 0x30 – Usando a
interface de 8 bits
Teclados são dispositivos que realizam
a interface homem máquina e os teclados matriciais como o usado neste projeto
são os mais conhecidos devido sua arquitetura simples e sua fácil integração
com micro controladores.
Existem vários métodos de se ler dados
enviados por um teclado e eles basicamente se diferenciam pela maneira com que são
conectados a um micro controlador, mas a lógica permanece a mesma.
No micro controlador as colunas são
definidas como pinos de entrada e as linhas como pinos de saída.
Teclado matricial
Para detectar qual tecla foi
pressionada todas as linhas recebem nível lógico baixo e todas as colunas
recebem nível alto, o micro controlador espera alguma mudança de estado nas
colunas, se uma tecla foi pressionada o nível baixo será enviado para a entrada
do micro processador, pois as colunas foram definidas como pinos de entrada.
A linguagem C
De acordo com Aitken, Jones (2002), a
linguagem C é poderosa
e flexível, o que você conseguirá programando em C será somente limitado por
sua imaginação.
A linguagem C não restringe a criação,
C é usado em projetos como sistemas operacionais, editores de texto, gráficos,
tabelas e até mesmo compiladores para outras linguagens.
C é uma linguagem portável,
portabilidade significa que um programa escrito em C para um sistema, por
exemplo, um sistema IBM, pode ser compilado e funcionar em outro sistema com
pouca ou nenhuma modificação.
C é modular, o código em C pode e deve
ser escrito em rotinas chamadas funções, estas funções podem ser reusadas em
outras aplicações ou programas.
De acordo com o data Sheet Atmel 8-bit
Microcontroller with 8K Bytes In-System Programmable Flash, o AT89S52 é um
integrado de baixo consumo e alta performance com 8 Kbytes de memória flash
programável. O dispositivo é compatível com os padrões industriais de conjunto
de instruções 80C51.
O AT89S52 possui 32 linhas de entrada
e saída, Watchdog timer, dois ponteiros de dados, três contadores /
temporizadores de 16 bits, porta serial com comunicação full duplex, oscilador
integrado e suporte a dois modos de economia de energia.
Ao combinar uma CPU versátil de 8-bit
com memória flash programável no sistema o Atmel AT89S52 é um micro controlador
poderoso que fornece uma solução altamente flexível e de custo eficaz para
muitas aplicações de controles incorporados.
Gostaríamos de citar a família ATMEGA
da Atmel que possui funções muito pertinentes ao nosso trabalho como o ADC
integrado e uma velocidade consideravelmente maior o que nos facilitaria em
muito o desenvolvimento deste projeto, mas pelos motivos citados acima e por fins didáticos decidimosdescartar o uso desta linha de micro controladores.
O que nos motivou a escolher o micro
controlador AT89S52 foi a familiaridade que adquirimos com o mesmo durante o
curso e para mostrar o poder da família 8051. Nosso intuito foi o de mostrar
que as aulas de micro controladores nos deram embasamento suficiente para
alçarmos vôos maiores.
O condicionador de sinal 1B31 da
Analog Devices pode ser dividido em três partes, um amplificador de
instrumentação com alta precisão, um ajustador de excitação da ponte e um
conjunto de filtros.
O 1B31 pode ser usado em uma grande
variedade de sensores como transdutores, medidores de força, torque e pressão.
Ideal para aplicações industrias pois é pouco sensível a mudanças ambientais e
a ruídos.
O 1B31 nos proporciona uma
série de facilidades entre elas podemos citar:
·Ajuste
de tensão de excitação da ponte.
·Ajuste
de offset da saída
·Ajuste
de ganho.
O ganho do nosso
amplificador é ajustado seguindo a seguinte equação:
*
Onde RG é o resistor de
ganho que vai conectado entre os pinos 3 e 4.
Com uma tensão de fundo de
escala de 5,375 mV e com uma resolução de 0,2V e com 250 passos nossa tensão de
saída ideal seria de 4,9 V, o que resulta em uma ganho de 907 usando uma resistência
de 80 ohms.