• Nenhum resultado encontrado

Medição de Temperatura com DS1820

N/A
N/A
Protected

Academic year: 2021

Share "Medição de Temperatura com DS1820"

Copied!
6
0
0

Texto

(1)

Medição de Temperatura com DS1820

Objectivo:

Projectar um termómetro, usando o sensor 1-wire DS1820 num PSoC.

Material Necessário:

Placa de desenvolvimento EasyPSoC4 da Mikroelektronica, sensor Dallas DS18B20 e LCD 2x16 (estes dois dispositivos são incluídos com EasyPSoC4).

Pré-Requisitos:

O utilizador deverá saber programar em C e ter noções básicas sobre PSoCs, nomeadamante sobre o chip CY8C27643 da Cypress. O software PSoC

Designer deverá estar já instalado no PC, com a opção do software de programação em C da Imagecraft, escolhido como padrão (que pode ser utilizado gratuitamente por um período de 45 dias).

Montagem do Circuito:

Na placa EasyPSoC4 (que inclui como padrão o PSoC DIL CY8C27643 da Cypress), montar o display LCD 2x16 e o sensor de temperatura DS1820 ( ambos incluídos com o kit). Assegurar que o display GLCD não esteja montado na placa EasyPSoC4.

(2)

NOTA: O interruptor 1 no SW3 deverá ser colocado na posição ON (e o 2

OFF), como nesta aplicação será utilizada a porta P0-2 do PSoC para ligar o sensor DS1820).

Fig 2: Diagrama do circuito com ligações do sensor de temperatura e do

LCD 2x16

Experiência:

1 – Instalação do módulo 1-wire

O módulo 1-wire, no caso de já não estar instalado no software PSoC Express, está disponível no site da Cypress em:

http://www.psocdeveloper.com/uploads/media/OneWire_v1.3.3.zip

Colocar a pasta OneWireSW do zip em C:\Programas\Cypress

MicroSystems\PSoC Designer\Data\Stdum, e depois executar o software Cypress Express. Fechar qualquer projecto aberto. Executar Refresh Manifest que se encontra no menú Tools, para que o módulo fique disponível.

2 – Projecto

a) Iniciar novo projecto no PSoC Designer, dando-lhe um nome, como

por exemplo DS1820. O software perguntará se se quer criar um novo directório, ao qual responder-se-á premindo Sim. Na janela seguinte

(3)

b) No PSoC Designer escolher LCD, que se encontra dentro de Misc

Digital do módulo User Module Selection, premindo duas vezes sobre o ícone de LCD. A seguir escolher OneWireSW que se encontrará dentro de Digital Misc do módulo User Module Selection, premindo duas vezes sobre o ícone OneWireSW.

c) Selected User Modules deverá ficar com os ícones, como se vê a

seguir:

d) Primir a seguir o botão (Interconnect View) para se poder

configurar as ligações no PSoC.

Para OneWireSW fazem-se as seguintes selecções:

Para LCD fazem-se as seguintes selecções:

No Gobal Resources alterar o relógio para 12_MHz (Sys_Clk/2), deixando os parâmetros restantes como aparecem automáticamente:

(4)

e) A seguir, primir no botão (Generate Application). O PSoC Designer gerará as aplicações.

f) Agora, primir no botão (Application Editor), e dentro de pasta ds1820 files e a sub-pasta Source files, abrir o ficheiro main.c e escrever o seguinte código, substituindo o croquit que é gerado automáticamente:

//--- // C main line

// Medição de temperatura com DS1820

// Autor: Tayeb Habib – Aliatron email: tayeb.habib@aliatron.pt // Código adaptado de http://narong.engr.tu.ac.th/microlab/doc

//--- #include <m8c.h> // especificação de constantes e macros

#include "PSoCAPI.h" // Definições de API PSoC para todos Módulos #include <stdlib.h>

char TextBuff[5];

unsigned char TLSB, TMSB, TempI; int TempP; void main() { LCD_1_Start(); LCD_1_Position(0,0); LCD_1_PrCString("1-Wire & DS18B20");

OneWireSW_1_Start(); //inicializa pino 1-Wire while(1)

{

OneWireSW_1_Reset(); //reset de 1-Wire OneWireSW_1_WriteByte(0xCC); //comando skip ROM

OneWireSW_1_WriteByte(0x44); //comando de conversão //temperatura

OneWireSW_1_Delay10mTimes(90); //espera 900ms para //conversão

OneWireSW_1_Reset(); //reset de 1-Wire OneWireSW_1_WriteByte(0xCC); //comando skip ROM OneWireSW_1_WriteByte(0xBE); //comando de leitura de //Scratch Pad

(5)

TempI = (TLSB >> 1) & 0x7F;

TempI = TempI | (TMSB & 0x80); //temperatura em forma de //inteiros

TempP = TLSB & 0x01; //ponto binário de //temperatura

itoa(TextBuff,TempI,10); //converter dados para

//ASCII

LCD_1_Position(1,0); //ajuste de posição de LCD

LCD_1_PrCString("Temp = "); //escrever dados no LCD

LCD_1_PrString(TextBuff);

TempP = TempP * 5; //converter para ponto

//decimal

itoa(TextBuff,TempP,10); //mostrar ponto decimal

LCD_1_PrCString(".");

LCD_1_PrString(TextBuff);

LCD_1_PrCString(" C "); }

g) Finalmente primir no botão (Build). O resultado poderá ser visto na janela Build da parte inferior de PSoC Designer, e que será:

Starting MAKE... creating project.mk lib/lcd_1.asm lib/onewiresw_1.asm lib/psocconfig.asm lib/psocconfigtbl.asm ./boot.asm ./main.c Linking..

ROM 13% full. 2088 bytes used (does not include absolute areas). RAM 8% full. 23 bytes used (does not include stack usage).

ds1820 - 0 error(s) 0 warning(s) 15:37:06

h) O ficheiro ds1820.hex será gerado, o qual pode agora ser utilizado

para programar o PSoC da placa EasyPSoC4. Quando programado o hex, o display LCD 2x16 mostrará a temperatura actual, a qual pode ser alterada, tocando com um dedo no sensor DS1820.

(6)

Considerações Finais:

Montar um buzzer e adicionar à aplicação de modo que o PSoC toque um tom, cada vez que este efectue uma leitura de temperatura no sensor DS1820.

Bibliografia:

http://www.aliatron.com/loja/catalog/advanced_search_result.php?keywords =pSOC&search_in_description=1 http://www.cypress.com/products/index.jsp?fid=24&rpn=CY8C27643 http://www.psocdeveloper.com/uploads/media/OneWire_v1.3.3.zip www.engricardofranco.kit.net/scapitulo-1.pdf www.engricardofranco.kit.net/scapitulo-2.pdf www.engricardofranco.kit.net/scapitulo-3.pdf http://narong.engr.tu.ac.th/microlab/doc

Referências

Documentos relacionados

A prova do ENADE/2011, aplicada aos estudantes da Área de Tecnologia em Redes de Computadores, com duração total de 4 horas, apresentou questões discursivas e de múltipla

O Museu Digital dos Ex-votos, projeto acadêmico que objetiva apresentar os ex- votos do Brasil, não terá, evidentemente, a mesma dinâmica da sala de milagres, mas em

nhece a pretensão de Aristóteles de que haja uma ligação direta entre o dictum de omni et nullo e a validade dos silogismos perfeitos, mas a julga improcedente. Um dos

Equipamentos de emergência imediatamente acessíveis, com instruções de utilização. Assegurar-se que os lava- olhos e os chuveiros de segurança estejam próximos ao local de

Tal será possível através do fornecimento de evidências de que a relação entre educação inclusiva e inclusão social é pertinente para a qualidade dos recursos de

6 Consideraremos que a narrativa de Lewis Carroll oscila ficcionalmente entre o maravilhoso e o fantástico, chegando mesmo a sugerir-se com aspectos do estranho,

Com o objetivo de compreender como se efetivou a participação das educadoras - Maria Zuíla e Silva Moraes; Minerva Diaz de Sá Barreto - na criação dos diversos

Na sua qualidade de instituição responsável pela organização do processo de seleção, o Secretariado-Geral do Conselho garante que os dados pessoais são tratados nos termos do