PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA CURSO DE ENGENHARIA DE COMPUTAÇÃO. EletroTerm

Documentos relacionados
Sistemas Embutidos Prática. Prof. Marcos Augusto Menezes DCC/ /UFMG

Conversor Analógico Digital do MSP430G2553

PROGRAMAÇÃO DO TREINAMENTO:

C:\Users\House\Desktop\fluxo.c 1: /****************************************************************************** 2: * Objetivo: Este projeto visa

EL08D - MICROCONTROLADORES

Prof. Gabriel Kovalhuk

26.1. Máquinas de comunicação serial no MSP430.

#define CURSOR_PRIMEIRA_LINHA 128 // set display address// Insere o cursor na segunda linha

Microcontroladores 2 EL08D Turma M12

MSP430 Lab 03 Montagem e teste do cristal

ELETROCARDIÓGRAFO PORTÁTIL BASEADO NO MICROPROCESSADOR MSP430

MICROCONTROLADORES 2 EL08D - TURMA M12

EL08D - MICROCONTROLADORES

Projeto Final de Microcontroladores 2 Alarme de Temperatura

2a Prova de ELT024 Programação para Sistemas Embarcados Prof. Rodrigo Maximiano Antunes de Almeida

MSP 430 Lab 04 Fontes de clock e configuração das entradas e saídas digitais

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS CURSO DE ENGENHARIA DE COMPUTAÇÃO

{tipo da função} nome_da_função ({parâmetros}) { comandoa; comandob;... }

Sistemas Microcontrolados

MSP 430 Lab 04 Fontes de clock e configuração das entradas e saídas digitais

Exemplos de Programas em C para o 8051 para o compilador crossware EEL Prof. Raimes Moraes

O Pino P2.7 não está sendo usado e cada Display mostrará valores de 0 a 9.

Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás. Experimento 7: Sensores e Transdutores

Arduino Básico: As versatilidades desta plataforma na prática

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CCET - Centro de Ciências Exatas e de Tecnologia Engenharia de Computação. Display POV

Curso introdutório de microcontroladores - Plataforma Arduino

MSP430 Lab 06 Comunicação com display de 40 2 e análise

Conversor Analógico-Digital - ADC

Trabalho de AMSR. Especificação e Verificação de uma Câmara Fotográfica Digital. Problema a Resolver FEUP/MRSC/AMSR MPR. » Problema a concurso

Funções dos Microcontroladores Microcontroladores e Microprocessadores Especialização em Automação Industrial

MSP430 Lab 05 Biblioteca básica para comunicação com o Display do Nokia5110

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CURSO DE ENGENHARIA DE COMPUTAÇÃO CÂMPUS CURITIBA

Enviando Dados Pela Porta Serial na placa LaunchPad MSP430 Utilizando o ambiente ENERGIA

Laboratório de Microprocessadores e Microcontroladores. Experimento 7:

Estudar os passos que devem ser feitos (ponto de partida até o objetivo)

Usando display LCD tipo 16x2

Laboratório de Microprocessadores e Microcontroladores. Experimento 7:

Experimento 6 Conversor analógico digital e comunicação serial

Introdução a Engenharia Elétrica

TEM VÁRIOS ESTADOS: 0V,0.1V,3V,3.3V,4V,5V,10V, ETC.

TERMÔMETRO COM O LM35 Parte I

ET53C - SISTEMAS DIGITAIS

Curso de robótica 2. Novos conceitos de programação

Microcontroladores PIC

Disciplina de Algoritmos e Programação

Pontifícia Universidade Católica do Paraná PUCPR Curso Engenharia de Computação. Fabio Eduardo Pereira José Roberto Wotecoski Pedro José F.

Fundamentos de Programação

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA ENGENHARIA DE COMPUTAÇÃO PROJETO SCATMAN S DIMMER

Desenvolvimento de uma Interface de Aquisição e Controle de Dados

Introdução a Programação de Jogos

10. EXERCÍCIO 1: BOTÕES E LEDS

Grupo de Robótica Experimental do Instituto Militar de Engenharia. Microcontroladores STM32 ARM Cortex-M3 Aula 04 Periféricos II

Introdução ao Fortran 90-3

Introdução à Programação em C (I)

Tutoriais PET-Tele. Introdução à Amostragem de Sinais com o kit Arduino (Versão: A2016M06D21)

UNIVERSIDADE DO VALE DO PARAÍBA UNIVAP FACULDADE DE ENGENHARIA, ARQUITETURA E URBANISMO - FEAU MANIPULADOR ROBÓTICO DE ACIONAMENTO REMOTO

Plano de Aula. 1 o semestre. Aula número 011 Periféricos Display LCD, Conversor AD e conversor DA (PWM)

Pontifícia Universidade Católica do Paraná ESCOLA POLITECNICA. Engenharia da Computação 5º Período

Introdução ao Arduino ESCOLA DE ARTES VISUAIS DO PARQUE LAGE. Núcleo de Arte e Tecnologia. julio lucio martin. Aula 07

Microcontroladores PIC. Operação com Displays de Cristal Líquido LCDs

Introdução à Programação em C

Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados - Prof. Alessandro Zimmer Introdução à Linguagem C

OMicrocontrolador PIC16F877A implementa um conversor

Introdução à Programação em C (I)

SCREAMER. Ricardo Geraldes David João Lucas Pinheiro Berto

MICROCONTROLADORES PIC

Sistemas de Controle 2

Características da Linguagem C

MSP430 - Arquitertura

Revisão Linguagem C Parte 1

Departamento de Engenharia Elétrica. ELE Microprocessadores I. Prof. Carlos Antonio Alves Sala 59 Fone

Introdução ao Fortran 90-4

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CCET - Centro de Ciências Exatas e de Tecnologia Engenharia de Computação. Control Arm (Pong)

PSI2662 Projeto em Sistemas Eletrônicos Embarcados: Sensores e Atuadores. Temporizadores e Interrupção, AD/DA, Display, Integração com MatLab

MSP430 Lab 06 Comunicação com display de 40 2 e análise das formas de onda no analisador lógico

ET53C - SISTEMAS DIGITAIS

Sistemas Digitais e Microcontrolados

Laboratório de Microprocessadores e Microcontroladores

Kit de desenvolvimento ACEPIC Light

LINGUAGEM C PARA O 8051

Usando Display Gráfico com C18 e C30

Introdução ao PIC. Guilherme Luiz Moritz 1. 6 de novembro de DAELT - Universidade Tecnológica Federal do Paraná

Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática

CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA ENGENHARIA DA COMPUTAÇÃO ANDRÉ CLAUDINO GABRIEL HENRIQUE GAVA ALBO ALENCAR

Controle de irrigação automatizado controlado por placa de Arduino Mega

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA ENGENHARIA DE COMPUTAÇÃO PROJETO MOVIMENT CAR CURITIBA 2009.

UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO CURSO DE ENGENHARIA ELETRÔNICA DISCIPLINA DE INSTRUMENTAÇÃO ELETRÔNICA

PROGRAMAÇÃO DO TREINAMENTO:

Programação ARM. Engenharia de Sistemas Embarcados Prof. Abel Guilhermino

BANKSEL ADCON1 clrf ADCON1 bsf ADCON1,ADFM ; seta AD para VCC, GND e entradas analogicas, setando o bit ADFM configura como justificado a direita

Contador crescente e decrescente...

Aula 08: Funções (Parte II)

Algoritmos e Programação

Disciplina: Laboratório de Fis26

PROJETOS DE TÓPICOS ESPECIAIS 2º SEMESTRE 2015 Professor Dr. Amauri Amorin Assef. Iniciar enviando os caracteres para escrever UTFPR na tela do PC:

Introdução à lógica e programação

Transcrição:

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA CURSO DE ENGENHARIA DE COMPUTAÇÃO EletroTerm CURITIBA 2009

Leandro Alves de Menezes EletroTerm Documentação referente ao Projeto Integrado do Curso de Graduação Engenharia de Computação da Pontifícia Universidade Católica do Paraná, orientado pelo professor Afonso Ferreira Miguel. CURITIBA 2009

Agradecimentos Aos amigos que contribuíram positivamente para o termino desse projeto. Ao nosso professor que graças aos seus ensinamentos contribuíram para o termino desse projeto.

RESUMO O projeto EletroTerm tem como finalidade aplicar os conceitos de microprocessadores e eletrônica, que se obteve com o decorrer do curso, para o desenvolvimento de um termômetro digital o qual ao obter a temperatura mostra no display.

5 Sumário 1. INTRODUÇÃO... 6 2. OBJETIVO... 7 3. DESENVOLVIMENTO... 8 4. CONCLUSÃO... 13 5. REFERÊNCIAS BIBLIOGRÁFICAS... 14 6. ANEXOS... 15

6 1. INTRODUÇÃO Este trabalho tem como finalidade desenvolver um projeto baseado no MSP 430 que monitora o ambiente com a utilização de componentes eletrônicos dispostos no kit disponibilizado pela Universidade, cuja temperatura será observada em um display LCD em graus Celsius. O software desenvolvido na linguagem C/C++ utilizando conceitos aprendidos em aulas como na experiência 09 e 10 que consiste em desenvolver funções para controlar o LCD em ambas as linguagens junto utilizando um exemplo fornecido pela TI (em anexo).

7 2. OBJETIVO O projeto EletroTerm tem como objetivo monitorar a temperatura ambiente de acordo com o que o que for registrado pelo sensor. A temperatura será mostrada por display.

8 3. Desenvolvimento O projeto necessita englobar os dois grandes grupos que são a parte de Hardware e Software. A parte de Hardware consiste no kit de desenvolvimento MSP 430 fornecido pela Universidade. Imagem 01: TEXAS - MSP430 PUCPR Classroom Kit V1.2

9 Para a parte de interação com o usuário foi utilizado um Display LCD 16x2 Imagem 02: Display LCD em funcionamento Referente ao sensor, foi utilizado um sensor interno do próprio MSP430, assim facilitando sua implementação.

10 3.1 Software Toda a parte lógica de programação foi desenvolvida utilizando a linguagem C/C++, utilizando o IAR Embedded Workrech. O software que será transposto abaixo está todo comentado. Este, conta com várias subrotinas de acesso ao LCD, conversor analógico, leitura do sensor, conversão para Celsius. #include <msp430x44x.h> //definição de ports #define Lcdrs_Out P2OUT #define Lcdrs BIT6 #define Lcdhabilita_Out P2OUT #define Lcdhabilita BIT7 #define Lcd_Dados P5OUT float conversao = 0, temp; int Temperatura [6], Index = 0,Result = 0, Leitura = 0; int temp_inteiro, Dezena, Unidade; int BitIndica = 0; void EscreveFrase (char *str, int tamstr); void InitDisplay(void); void Envia(void); int Calcula (int Valor); void main(void) WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer P2DIR = Lcdrs+Lcdhabilita; P5DIR = 0xFF; // seta P5 como saída ADC12CTL1 = SHS_1 + SHP + CONSEQ_2; // TA1, samp timer, rpt ADC12MCTL0 = SREF_1 + INCH_10; // VRef+, A10 ADC12IE = 0x01; // Enable ADC12MEM0 interrupt ADC12CTL0 = SHT0_7 + REFON + ADC12ON + ENC; // sample for 192 ADC12CLK cycles TACCTL1 = OUTMOD_4; // Toggle TACTL = TASSEL_2 + MC_2; // SMCLK, cont-mode _BIS_SR(LPM0_bits + GIE); // Enter LPM0, enable interrupts InitDisplay(); while(1) if (Leitura) //30mV = 26 Graus conversao = 0.0000080566*Result; temp = (conversao*26)/0.03; temp_inteiro = temp; EscreveFrase ("Temperatura : ", 14); Index = 0; Leitura = 0;

11 Result = 0; _BIS_SR(LPM0_bits + GIE); // ADC12 Interrupt Service Routine - Media #pragma vector=adc12_vector interrupt void ADC12ISR (void) if (Index < 6) Temperatura [Index] = ADC12MEM0; Index++; else for (int i=0; i<6; i++) Result += Temperatura [i]; Result /= 6; Index = 0; Leitura = 1; _BIC_SR_IRQ(CPUOFF); // Exit LPM0 void Envia() //Peteleco para sair o dado do display, o lcdhabilita e o negado é para o pulso, ou seja o enable if (!BitIndica) Lcdrs_Out &= ~Lcdrs;//0 = and else Lcdrs_Out = Lcdrs;//1 = or //Enable Lcdhabilita_Out = Lcdhabilita; for (int i = 0; i <500; i++); Lcdhabilita_Out &= ~Lcdhabilita; void InitDisplay() BitIndica = 0; //barramento tem 8 bits Lcd_Dados = 0x30; //barramento tem 8 bits Lcd_Dados = 0x30; //barramento tem 8 bits

12 Lcd_Dados = 0x30; // Function set (8-bit interface, 2 linhas,matriz de 5*7) Lcd_Dados = 0x38; // Desliga o cursor Lcd_Dados = 0x0C; // Apaga display Lcd_Dados = 0x01; // Seleção de modo de entrada (Entry mode set ) Lcd_Dados = 0x06; void EscreveFrase (char *str, int tamstr) BitIndica = 0; //envio do comando Lcd_Dados = 0x80; //posiciona cursor for (int i=0; i<tamstr; i++) Lcd_Dados = str[i]; BitIndica = 1; //envio do caracter Envia(); //Separação Unidade = Calcula (temp_inteiro); Lcd_Dados = Dezena+'0'; Lcd_Dados = Unidade+'0'; int Calcula (int Valor) Dezena = (Valor/10); if (Valor >= 10) while (Valor >= 10) Valor -= 10; return Valor;

13 4. Conclusão Com o projeto conseguiu-se com sucesso utilizar a maioria dos conhecimentos adquiridos até o momento no curso de Engenharia de Computação. O projeto serviu para demonstrar que tendo um plano de trabalho e seguindo-o é possível desenvolver o projeto tranquilamente. Mesmo tendo obstáculos no decorrer do projeto, consegui terminar com êxito. Esse projeto mostrou que quando tem dificuldades é possível contar com os amigos e com eles estarei preparado para futuros desafios.

14 5. REFERÊNCIAS BIBLIOGRÁFICAS http://www.afonsomiguel.com http://focus.ti.com/mcu/docs/mcuprodcodeexampl es.tsp?sectionid=96&tabid=1468 http://afonsomiguel.com/sites/default/files/msp430 f449.pdf

15 6. Anexo Imagem 03: Imagem do projeto em funcionamento Código onde o código do projeto foi baseado. //****************************************************************************** // MSP-FET430P440 Demo - ADC12, Sample A10 Temp and Convert to oc, TA1 Trigger // // Description: Use the ADC12's integrated temperature sensor to measure // temperature. Sample time is set for 125 ADC12CLK cycles to allow 30us for // the integrated temperature sensor (see datasheet). ADC12 is operated in // repeat-single-channel mode with the sample and convert trigger sourced // from Timer_A CCR1. Timer_A is configured for continuous mode and is clocked // by SMCLK. TA1 is set for toggle mode triggering the ADC12 every 125ms. // The ADC12MEM0_IFG bit set at the end of each conversion triggers an ISR. // Normal mode is LPM0. // ACLK = LFXT1 = 32768, MCLK = SMCLK = DCO = 32xACLK = 1048576Hz, // ADC12CLK = ADC12OSC // //* An external watch crystal between XIN & XOUT is required for ACLK *// // // Uncalibrated temperature measured from device to devive will vary do to // slope and offset variance from device to device - please see datasheet. // // MSP430F449 // -----------------

16 // / \ XIN - // 32KHZ // -- RST XOUT - // // A10 (Temp) P5.1 -->LED // // M. Buccini // Texas Instruments Inc. // Feb 2005 // Built with CCE Version: 3.2.0 and IAR Embedded Workbench Version: 3.21A //***************************************************************************** #include <msp430x44x.h> int long temp; int long IntDegC; void main(void) WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer P5DIR = 0x02; // Set P5.2 as output ADC12CTL1 = SHS_1 + SHP + CONSEQ_2; // TA1, samp timer, rpt ADC12MCTL0 = SREF_1 + INCH_10; // VRef+, A10 ADC12IE = 0x01; // Enable ADC12MEM0 interrupt ADC12CTL0 = SHT0_7 + REFON + ADC12ON + ENC; // sample for 192 ADC12CLK cycles TACCTL1 = OUTMOD_4; // Toggle TACTL = TASSEL_2 + MC_2; // SMCLK, cont-mode while(1) _BIS_SR(LPM0_bits + GIE); // oc = ((x/4096)*1500mv)-986mv)*1/3.55mv = x*423/4096-278 IntDegC = (temp - 2692) * 423; IntDegC = IntDegC / 4096; _NOP(); // SET BREAKPOINT HERE // ADC12 Interrupt Service Routine #pragma vector=adc12_vector interrupt void ADC12ISR (void) temp = ADC12MEM0; // IFG is cleared _BIC_SR_IRQ(CPUOFF); // Exit LPM0 P5OUT ^= 0x02; // Toggle LED