• Nenhum resultado encontrado

elt024-09-PwmAd

N/A
N/A
Protected

Academic year: 2021

Share "elt024-09-PwmAd"

Copied!
37
0
0

Texto

(1)

Universidade Federal de Itajub´a

(2)
(3)

Rotina para envio de dados/comando para o LCD Para comando RS = 0; Para dados RS = 1; Habilitar a escrita (RW=1) ou leitura (RW=0) Acionar terminal EN (enable)

Delay para o LCD entender o comando Desabilita o terminal EN

(4)

Instru¸c˜ao RS RW Dados (bit) Tempo (m´ax.) 7 6 5 4 3 2 1 0 Limpa 0 0 0 0 0 0 0 0 0 1 37 us Reset 0 0 0 0 0 0 0 0 1 - 1.5ms Config. 0 0 0 0 0 0 0 1 ID S 37 us Config. 0 0 0 0 0 0 1 D C B 37 us Movim. 0 0 0 0 0 1 SC RL - - 37 us Config. 0 0 0 0 1 DL N F - - 37 us Move(l,c) 0 0 1 X 0 0 Coluna 37 us Ocup. 0 1 BF - - - 10 us

(5)

Defini¸c˜oes

ID: 1 – Incrementa, 0 – Decrementa

S: 1 – O display acompanha o deslocamento SC: 1 – Desloca o display, 0 – Desloca o cursor RL: 1 – Move para direita, 0 – Move para esquerda DL: 1 – 8 bits, 0 – 4 bits

N: 1 – 2 linhas, 0 – 1 linha

F: 1 – 5x10 pontos, 0 – 5x8 pontos BF: 1 – Ocupado, 0 – Dispon´ıvel X: 1 – 2a linha, 0 – 1a linha Coluna: nible que indica a coluna

(6)

Desenvolvimento da biblioteca

Cria¸c˜ao de rotinas de delay (2ms e 40us) Fun¸c˜ao para enviar comandos

Fun¸c˜ao para enviar dados Fun¸c˜ao de inicializa¸c˜ao

(7)

1 # i n c l u d e " b a s i c o . h " 2 # i n c l u d e " c o n f i g . h " 3 # i n c l u d e " lcd . h " 4 5 // i n ´ı c i o do p r o g r a m a 6 v o i d m a i n (v o i d) { 7 u n s i g n e d int i , j ; 8 c h a r msg [] = " H e l l o W o r l d ! "; 9 l c d I n i t () ; 10 for( i =0; i <11; i ++) { 11 l c d D a t a ( msg [ i ]) ; 12 for( j = 0; j < 6 5 0 0 0; j ++) ; 13 } 14 for( ; ; ) ; 15 }

(8)
(9)

Transdutores

Processo de convers˜ao anal´ogico digital Utiliza¸c˜ao de comparadores de tens˜ao Discretiza¸c˜ao do sinal

(10)

Sensor de ˆangulo (passivo)

Potenciˆometro como divisor de tens˜ao

VRL = VS∗ R2 R1+ R2 = VS∗ ( R2 RPot )

(11)

Conversor anal´ogico digital de 2 bits

(12)

5 4 3 2 1 00 01 10 11 Valor convertido para binário 3,75 2,50 1,25 5,00 V al or o rig in al , e m V ol ts Li m ite s d a co m pa ra çã o

(13)

LM35

Sensor ativo de temperatura

Entrega um sinal proporcional `a temperatura

Possui diversos circuitos internos de estabiliza¸c˜ao e corre¸c˜ao Mais simples e mais caro

Evita uso de CPU’s mais caras ou circuitos de interface (NTC/PTC)

VS = T ∗ 0.5(

mV

(14)
(15)

Lendo o sensor com um AD de 10 bits: Faixa de temperatura = -40 `a 150 graus

Faixa de tens˜ao do sensor = -400 `a 1500 milivolts Faixa de convers˜ao = 0 `a 1023

Faixa de tens˜ao do AD = 0 `a 5 volts Calcular fator de convers˜ao.

(16)

memória controle canal

>

valor término da conversão início conversor tensão incremento do valor entradas analógicas comparador

(17)
(18)

Toda convers˜ao AD exige um determinado tempo. Para que o

microcontrolador realize corretamente a convers˜ao ´e necess´ario seguir os seguintes passos:

1 Configurar o conversor

2 Iniciar a convers˜ao

3 Aguardar o final da convers˜ao 4 Ler o valor

(19)

3 v o i d a d c I n i t (v o i d) { 4 B i t S e t ( TRISA ,0) ; // s e t a o b i t 0 c o m o e n t r a d a 5 A D C O N 0 = 0 b 0 0 0 0 0 0 0 1; // s e l e c i o n a o c a n a l 0 e l i g a o AD 6 A D C O N 1 = 0 b 0 0 0 0 1 1 1 0; // s´o A N 0 ´e a n a l ´o g i c o , r e f e r ^e n c i a na ←-f o n t e 7 A D C O N 2 = 0 b 1 0 1 0 1 0 1 0; // F O S C / 32 , A l i n h a d o `a d i r e i t a , t c = 12 ←-T A D 8 } 9 10 int a d c R e a d (v o i d) { 11 u n s i g n e d int A D v a l o r ; 12 B i t S e t ( ADCON0 ,1) ; // i n i c i a c o n v e r s ~a o 13 w h i l e( B i t T s t ( ADCON0 ,1) ) ; // e s p e r a t e r m i n a r a c o n v e r s ~a o ; 14 A D v a l o r = A D R E S H ; // l^e o r e s u l t a d o 15 A D v a l o r < <= 8; 16 A D v a l o r += A D R E S L ; 17 r e t u r n A D v a l o r ; 18 }

(20)

1 # i f n d e f A D C _ H

2 # d e f i n e A D C _ H

3 v o i d a d c I n i t (v o i d) ;

4 int a d c R e a d (v o i d) ;

(21)

3 # i n c l u d e " ssd . h " 4 # i n c l u d e " adc . h " 5 v o i d m a i n (v o i d) { 6 u n s i g n e d int i ; 7 int t e m p = 0; 8 s s d I n i t () ; 9 a d c I n i t () ; 10 for( ; ; ) { 11 t e m p = a d c R e a d () ; 12 s s d D i g i t (( t e m p / 1 0 0 0) %10, 3) ; 13 s s d D i g i t (( t e m p / 100 ) %10, 2) ; 14 s s d D i g i t (( t e m p / 10 ) %10, 1) ; 15 s s d D i g i t (( t e m p / 1 ) %10, 0) ; 16 s s d U p d a t e () ; 17 for( i = 0; i < 1 0 0 0; i ++) ; 18 } 19 }

(22)
(23)

10%

50%

(24)

Vantagens

Mais barato que uma sa´ıda anal´ogica

Pode ser transformado numa sa´ıda anal´ogica atrav´es de um filtro passa baixa

Para algumas situa¸c˜oes o filtro n˜ao ´e necess´ario2 Desvantagens

N˜ao ´e uma sa´ıda anal´ogica

2

Quando o dispositivo a ser controlado j´a possui um filtro passa baixa, normalmente por causa da sua constru¸c˜ao f´ısica. Ex: aquecimento por resistˆencias

(25)
(26)
(27)

Frequˆencia do PWM

Depende do circuito que implementa o PWM

Quanto mais alta melhor para simular uma sa´ıda anal´ogica Pode ser utilizada para sinaliza¸c˜ao sonora

C´alculo:

FrequenciaPWM = FOSC

[(PR2 ) + 1] ∗ 4 ∗ (TMR2Prescaler)

Para um cristal de 8 MHz podemos atingir frequˆencias de 488Hz at´e 2MHz

(28)

Problemas com frequˆencias muito altas: Perda de resolu¸c˜ao

ResolucaoPWM(max ) =

log(FOSC FPWM)

log(2) bits

Para frequˆencia de 2MHz3 a resolu¸c˜ao ´e de 2 bits, ou seja, podemos configurar o duty cycle apenas para 12.5%, 37.5%, 62.5% ou 87.5% do valor.

3

(29)

Conhecendo a quantidade de bits de resolu¸c˜ao dispon´ıveis para a frequˆencia escolhida podemos ajustar o duty-cycle de acordo com a express˜ao abaixo:

DutyCyclePWM = [CCPRxL : CCPxCON(5 : 4)]

(PR2 + 1) ∗ 4

O valor do duty cycle pode ser entendido como uma porcentagem do

(30)

memória reiniciar

>

controle início reinicia

>

ligar VCC GND

(31)
(32)

Para configurar as sa´ıdas PWM devemos especificar: 1 Frequˆencia de trabalho atrav´es de PR25 e TCON2

2 Duty cycle em CCPR1L e CCPR2L

3 Configurar como sa´ıda em TRISC

4 Configurar a sa´ıda como PWM em CCP1CON e CCP2CON

5

O prescaler foi configurado para 16 bits de modo a obter a maior faixa de frequˆencia aud´ıvel.

(33)

3 4 v o i d p w m S e t 1 (u n s i g n e d c h a r p o r c e n t o ) { 5 6 // f o r m u l a do d u t y c y c l e : 7 // D C p o r c e n t o = V / (( P R 2 + 1 ) ∗ 4 ) ; 8 // V = DC / 1 0 0 ∗ ( P R 2 + 1 ) ∗ 4 ) = DC ∗ ( P R 2 + 1 ) / 25 9

10 u n s i g n e d int val = ((u n s i g n e d int) p o r c e n t o ) *( PR2 +1) ;

11 val = val / 25; 12 13 // g a r a n t e q u e t e m a p e n a s 10 b i t s 14 val &= 0 x 0 3 f f; 15 16 // os 8 p r i m e i r o s b i t s s ~a o c o l o c a d o s no C C P R 1 L 17 C C P R 1 L = val > > 2; 18 19 // os ´u l t i m o s d o i s s ~a o c o l o c a d o s na p o s i ¸c ~a o 5 e 4 do C C P 1 C O N 20 C C P 1 C O N |= ( val & 0 x 0 0 0 3) < < 4;

(34)

1 v o i d p w m S e t 2 (u n s i g n e d c h a r p o r c e n t o ) { 2 u n s i g n e d int val = p o r c e n t o * PR2 ; 3 val /= 25; 4 val &= 0 x 0 3 f f; 5 C C P R 2 L = val > > 2; 6 C C P 2 C O N |= ( val & 0 x 0 0 0 3) < < 4; 7 } 8 v o i d p w m F r e q u e n c y (u n s i g n e d int f r e q ) { 9 // P R 2 = f o s c /( f p w m ∗ 4 ∗ p r e s c a l e r )−1 = ( 8 0 0 0 0 0 0 /( f r e q ∗ 4 ∗ 16 ) ) ←-− 1 10 PR2 = (1 2 5 0 0 0/( f r e q ) ) - 1; 11 } 12 13 v o i d p w m I n i t (v o i d) { 14 B i t C l r ( TRISC ,2) ; // c o n f i g u r a os p i n o s c o m o s a ´ı d a s 15 B i t C l r ( TRISC ,1) ; 16 T 2 C O N |= 0 b 0 0 0 0 0 0 1 1; // c o n f i g u r a o p r e s c a l e p a r a 1 : 16 17 B i t S e t ( T2CON ,2) ; // L i g a o t i m e r 2 18 C C P 1 C O N |= 0 b 0 0 0 0 1 1 0 0; // c o n f i g u r a C C P 1 c o m o um P W M 19 C C P 2 C O N |= 0 b 0 0 0 0 1 1 0 0; // c o n f i g u r a C C P 2 c o m o um P W M 20 }

(35)

1 # i f n d e f P W M _ H 2 # d e f i n e P W M _ H 3 v o i d p w m S e t 1 (u n s i g n e d c h a r p o r c e n t o ) ; 4 v o i d p w m S e t 2 (u n s i g n e d c h a r p o r c e n t o ) ; 5 v o i d p w m F r e q u e n c y (u n s i g n e d int f r e q ) ; 6 v o i d p w m I n i t (v o i d) ; 7 # e n d i f // P W M H

(36)
(37)

2 # i n c l u d e " p i c 1 8 f 4 5 2 0 . h " 3 # i n c l u d e " pwm . h " 4 # i n c l u d e " adc . h " 5 // i n ´ı c i o do p r o g r a m a 6 v o i d m a i n (v o i d) { 7 int v a l u e ; 8 p w m I n i t () ; 9 a d c I n i t () ; 10 for( ; ; ) { 11 v a l u e = a d c R e a d () ; 12 // a j u s t a n d o a f r e q u ^e n c i a de a c o r d o c o m e n t r a d a a n a l ´o g i c a 13 p w m F r e q u e n c y ( v a l u e ) ; 14 // a j u s t a n d o o duty−c y c l e p a r a 50 % 15 p w m S e t 1 (50) ; 16 } 17 }

Referências

Documentos relacionados

- 30 de março: Prazo para que os estados enviem para a Embaixada dos EUA (via e-mail: [email protected]) o material completo dos candidatos que participarão no

Sobre a redução da carga de fundação observou-se que os projetos lajes nervuradas com espessura de mesa de 5 centímetros e concreto de 50 MPa apresentaram cargas de

The treatments guava leaf flour HF and ethanol/acetone extract flour HE significantly p≤0.05 decreased the levels of non-HDL cholesterol, compared to the HC group, with a reduction

Com este relatório o gestor do call center pode visualizar o desempenho de cada agente, identificando a quantidade de chamadas receptivas, ativas e perdidas na posição de

Foram estudados 47 olhos de 41 crianças portadoras de catarata infantil submetidas ao tratamento cirúrgico por meio da técnica de lensectomia, onde 28 (68,29%)

Até ao final do 1º mês do início de cada período de avaliação o avaliado remete ao Conselho Técnico-Científico da Unidade Orgânica, a proposta do perfil

7.1. A aprovação no Processo Seletivo constitui mera expectativa de direito à contratação, ficando a concretização deste ato condicionada à observância, pelo Colégio Pedro II,

Criar o Programa Porto Velho 2030 para pensar e planejar a cidade que queremos, antecipando soluções para problemas urbanos decorrentes do crescimento desordenado, e possibilitar