Ir ao conteúdo
  • Cadastre-se

Projeto voltímetro digital com PIC 16f877 e LCD


vitormetallica

Posts recomendados

É uma boa opção essa barra de pinos, mas eu acho ela pra comprar em qualquer loja de eletrônica? Obrigado e valeu.

Cara eu acho que se encontra em qualquer loja de componentes eletronicos sim. Mas caso você não encontre tem alguns site de venda de componentes.

Segue o link de um:

http://www.soldafria.com.br/barra-de-pinos-1x40-vias-82mm-180-graus-p-4097.html

Tiago Souza

Link para o comentário
Compartilhar em outros sites

Bom dia a todos!!!

Estou com duvida sobre a Precissão do Multimetro PIC(Acho que seria isso).

Pois como ele está usando a tensão de referencia a alimentação VCC (+5) do PIC ele ira sempre considerar o VCC como o maximo.

Aqui depois de alguns teste notei o seguinte:

  • Para ver se estava certo montei no protoboord o voltimetro até 5vcc;
  • A minha alimentação do PIC está em 4,92 Vcc; (Essa conseguida através de Bateria 9v e 7805 com capacitor de Ent. de 47uF e capacitor de saida 10uF).
  • Para simular a variação de tensão liguei um trimpot de 10K em serie com um resistor de 1K;
  • Sendo assim obtinha as seguinte medições:

O trimpot no Minimo = 0,42V no Multimetro e 0,42 no PIC;

O trimpot no Maximo = já com 4,90 no Multimetros mostrava 5,00 no PIC;

Ligando no VSS = 0,00V;

Ligando no Vcc = 5,00V.

Ou sejá é gerado um erro pela tensão de vcc ser um pouco abaixo do esperado 5VCC.

Codigo utilizado para conversão em tensão:


set_adc_channel(0); //Habilita o canal 0
delay_us(20); //Espera um pouco, obrigatório!
q1 = read_adc(); //Lendo o canal 0
p = (5.0 * q1) / 1024; //Conversão para tensão.

Sendo Assim seria melhor eu tentar fazer uma melhor "retificação em 5Vcc", ou mudar o programa para o valor que estou medindo agora.

OBS: Teve dia que já medi de tensão de VCC com 4,94V.

Desde já agradeço;

Obrigado.

Tiago Souza

Link para o comentário
Compartilhar em outros sites

Thiago, gostei muito dos seus testes, pois eu mesmo não havia feito algo do gênero.

Tenho uma dica. Na parte do código:

p = (5.0 * q1) / 1024;         //Conversão para tensão.

Mude para:

p = (5.0 * q1) / 1023;         //Conversão para tensão.

No próprio forum fo compilador tem esse impasse, se deveria dividir por 1024 ou por 1023. Tem uma discusao técnica por lá.

Outra coisa é a qualidade do seu multímetro. Ele é confiável? Qual a qualidade dele.

Como você fez uma retificação para 5V e essa sendo a referência superior do PIC, ele deverá ler sim os 5V corretemente. Essa variação q você notou me intriga.

O código do jeito que está não tem muito afinamento a ser dado, está muito simples já. Só tem um detalhe que nunca comentei aqui no fórum mais deve ser levado em consideração é a velocidade de leitura do canal ADC do PIC.

Provavelmente no código tem uma parte que diz algo do tipo:

setup_adc(ADC INTERNAL);

Essa é a velocidade q usualmente utilizamos, mas de acordo como datasheet, ela depende do cristal utilizado. Mesmo sendo um cristal baixo, não é recomendado o uso do ADC_INTERNAL. Sempre deixei ele por se tratar de um código de exemplo e simples voltado para o estudo.

Nesse caso, poste o código completo para que eu possa comentá-lo.

Falou

Link para o comentário
Compartilhar em outros sites

Em relação ao capacitor de 10uF que tenho que colocar na alimentação do PIC, eu coloco ele no pino 11 ou 12? Como seria essa ligação? Desde já obrigado.

Sim coloque o mais perto possivel do PIC (Vcc e Vss).

Thiago, gostei muito dos seus testes, pois eu mesmo não havia feito algo do gênero.

Tenho uma dica. Na parte do código:

p = (5.0 * q1) / 1024;         //Conversão para tensão.

Mude para:

p = (5.0 * q1) / 1023;         //Conversão para tensão.

No meu já tinha mudado, cheguei até colocar 1022, só que o 0V aparecia com 0,02V.

Outra coisa é a qualidade do seu multímetro. Ele é confiável? Qual a qualidade dele.

Essa medição deu a mesma no meu Multimetro, no do serviço e em osciloscopico do serviço, este dois ultimos são calibrados.

PS o meu está dando uma diferença quando meço em Vca em baixa tensão.

Como você fez uma retificação para 5V e essa sendo a referência superior do PIC, ele deverá ler sim os 5V corretemente. Essa variação q você notou me intriga.

Note que a diferençã é de apenas 0,08v.

Nesse caso, poste o código completo para que eu possa comentá-lo.

Então o meu codigo tem algumas coisas a mais, pois estou irei também fazer algumas medições em CA, que por sinal ainda não tenho certeza se está certa a maneira como estou fazendo, mas isso fica para depois.

Segue o meu Codigo:


#include <16F877A.h>

#device adc=10

#FUSES NOWDT //No Watch Dog Timer
#FUSES XT //Crystal osc <= 4mhz --> QUANDO MUDO PARA HS NÃO FAZ NADA
#FUSES PUT //Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES BROWNOUT //Reset when brownout detected
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection

#use delay(clock=4000000)

#include <lcd.c>
#define TAMANHO 20

//#BYTE Rb =0x06
//#BYTE Rc =0x07
//#define trisb 0b11111111
//#define trisc 0b00000000

void init(void)
{

// port directions: 1=input, 0 = output

// port_b = 0;

}
long int i, j;
int16 q, q1,q4,q5;
float p, p1,p4,p5, x[TAMANHO],Y[TAMANHO], temp1, temp2,temp0,temp22, vac, iac;


void main()
{

lcd_init();

printf(lcd_putc," ENGENHARIA \n ELETRICA ");
delay_ms (2000);;

printf(lcd_putc,"\fTIAGO SOUZA\n 201102 ");
delay_ms (4000);
{
if (input (PIN_B1)== 1) { output_high (PIN_C1),output_low (PIN_C2),
printf(lcd_putc,"\f MEDICAO EM \n CONTINUA ", );}
else
{output_low (PIN_C1),output_high (PIN_C2),

printf(lcd_putc,"\f MEDICAO EM \n ALTERNADA ");}

delay_ms (2000);
}


setup_adc_ports(ALL_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
while (TRUE)
{
//********************************
// MEDIÇÃO DE TENSÃO CC EM AN0 *
//********************************
temp2 = 0;
set_adc_channel(0); //Habilita canal 0
delay_us(20); //Espera um pouco, obrigatório!
q = read_adc(); //Lê canal 0
p = (5.0 * q) / 1023; //Conversão para tensão.
temp0=(p*1);
//********************************
// MEDIÇÃO DE CORRENTE CC EM AN1 *
//********************************
set_adc_channel(1); //Habilita canal 1
delay_us(20); //Espera um pouco, obrigatório!
q1 = read_adc(); //Lê canal 1
p1 = (5.0 * q1) / 1023; //Conversão para tensão.
temp1=(p1*1);

//********************************
// MEDIÇÃO DE TENSÃO CA EM AN4 *
//********************************
for(i=0;i<TAMANHO;i++)
{
set_adc_channel(4); //Habilita canal 4
delay_us(5000/6); //Espera um pouco, obrigatório!
q4 = read_adc(); //Lê canal 4
p4 = 5.0 * q4 / 1023; //Conversão para tensão.
vac=(p4*1);

x[i]=vac;
}
temp2=x[0];
for(i=1;i<TAMANHO;i++)
{
if (x[i] > temp2)
temp2=x[i];
}
temp2 = temp2/1.4142;
//
delay_us(1);
//********************************
// MEDIÇÃO DE CORRENTE CA EM AN5 *
//********************************
temp22 = 0;
for(j=0;j<TAMANHO;j++)
{
set_adc_channel(5); //Habilita o canal 5
delay_us(5000/6); //Espera um pouco, obrigatório!
q5 = read_adc(); //Lê o canal 5
p5 = 5.0 * q5 / 1023; //Conversão para tensão.
iac=(p5*1);

y[j]=iac;
}
temp22=y[0];
for(j=1;j<TAMANHO;j++)
{
if (y[j] > temp22)
temp22=y[j];
}
temp22 = temp22/1.4142;
//
delay_us(1);




output_high (pin_c3); // --> Para verificar se gravou

if (input (PIN_B1)== 1) { output_high (PIN_C1),output_low (PIN_C2),
printf(lcd_putc,"\fVcc AN0: %2.2f\nVcc AN1: %f", temp0, temp1);}
else
{output_low (PIN_C1),output_high (PIN_C2),

printf(lcd_putc,"\fVca AN4: %2.2f\nIca AN5: %f", temp2, temp22);}


//delay_ms (1);
}
}

MAis uma vez agrade Matheus pela ajuda;

Obrigado.

Tiago Souza

Link para o comentário
Compartilhar em outros sites

De acordo como datasheet:

TCyGg.jpg

Devemos considerar o tempo que o PIC leva para fazer a leitura do canal AD como eu disse anteriormente. Por se tratar de uma aplicação simples, nunca pensei que poderia gerar esse erro. Mas é um ponto a ser obeservado como nosso colega fez.

De toda forma, para um cristal maior que 2.5Mhz, devemos ter 8 TOSC. Nesse caso de acordo com a tebela, mude o:

setup_adc(ADC_CLOCK_INTERNAL);

Para

setup_adc(ADC_CLOCK_DIV_8);

Outra coisa é a fonte que deve ser levada em consideração. você deve se certificar que o PIC esteja recendo seus 5V, o mais estável possível

Um ideia é colocar um capacitor na saída do potêniômetro para estabilizar a saída dele. Isso pode ajudar.

Outra coisa é você retirar essa parte:

temp1=(p1*1);  

você não precisa multiplicar por 1. Apenas imprima o valor de q1 ou mude o nome da variável. você está gastando tempo com multiplicação sem necessidade.

Não lia a parte do código q lê tensão CA pois você não colocou o circuito. Cuidado com tensão em excesso no PIC.

No mais é isso. Tente essas mudanças propostas e me diga.

Falou

Link para o comentário
Compartilhar em outros sites

Então Matheus!!!

Sobre o setup_adc(ADC_CLOCK_DIV_8); vou mudar assim que voltar da faculdade.

NA formula; "temp1=(p1*1);" o 1 está ai pelo fato que nos teste estou usando no maximo 5v mesmo, porém quando for fazer o definitivo terei de alterar ai, pois pretendo medir até 200vcc, 20A e 400 vca, 40A. Apesar que os 40A vai ser difícil, mais vai estar preparado.

Segue o circuito que estou usando para teste, onde:

SW1: Seleção de tensão continua ou Alternada;

SW2: Seleção de tensão em 5Vcc ou pela SW1;

SW3: Seleção de Medida mostrada no LCD ser Continua(AN0 e AN1) ou Alternada (AN4 e AN5).

Note que mando o mesmo sinal para as 4 entradas analogicas.

Isso só para verificar se está fncionando o programa, depois irei colocar os componentes corretos para as devidas Converções de V/V e I/V.

CircuitoparatestesdoVoltimetro5v.jpg

Valeu!!!

Tiago Souza:cool:

Link para o comentário
Compartilhar em outros sites

você deve alterar o divisor resistivo consistido pelos resistores de 5K e 3.6K.

você refaz as contas com essa fórmula:

TwsKc.png

E no código você altera o q2 = p * 2.41;, pelo "fator de conversão" de 30V para 5V que nesse caso seria 30/5 = 6. então fica: q2 = p * 6;

Testa aí p ver se funciona!

Falou

Bom dia Na Primeira pagina tem como se calcular um Divisor resistivo.

  • Minha duvida é se para entrada do PIC tenho de ter algum valor minimo ou maximo para se trabalhar com resistores.

Pela formula Terei de ATRIBUIR uma valor para R1.

Mas de primeira achei os valores muitos baixos.

Fiz um divisor para Vin:505V (para facilitar as contas) e R1 atribuido: R1= 5KΩSendo assim o Valor de R2 ficou: R2=50Ω.

Ai resolvi aumentar o R1=100KΩ;

Sendo assim o valor de R2 ficou: R2=1KΩ

Qual seria a melhor opção? Ou é melhor abaixar ou aumentar mais?

Obrigado;:)

Tiago

Link para o comentário
Compartilhar em outros sites

Quanto maior o valor dos resistores, menos corrente fluirá pelo divisor. A intenção é essa mesma. Pois o objetivo do divisor nesse circuito é apenas pegar um sinal e não alimentar uma carga.

Mas você diz que irá colocar 505V Putz, é coisa p caramba. Nessa tensão a corrente com os R1=100k e R2=1k será igual a I=V/R então teremos I=505/101000=5mA

Um valor seguro.

Falou

Link para o comentário
Compartilhar em outros sites

Mas você diz que irá colocar 505V Putz, é coisa p caramba. Nessa tensão a corrente com os R1=100k e R2=1k será igual a I=V/R então teremos I=505/101000=5mA

Um valor seguro.

Falou

Na verdade na parte CC vou no maximo Retificar os 220VCA e isso pode me dar algo em torno 300Vcc.

E Na parte CA no maxino 460Vca. (Para obter utilizarei o Primario de Um Transfromador ligando 220Vca no Center tap, e medindo 440 nos polos extremos).

PS: Essa parte desses divisores posso fazer ma mesma Placa onde estará o PIC, ou seria melhor eu Fazer em uma placa separado (Placa driver)? :confused:

valeu!!

Tiago Souza

Link para o comentário
Compartilhar em outros sites

Pessoal eu posso utilizar um resistor de 1.2K em série com o pino 15 do LCD como está representado no circuito do voltímetro para 30V postado pelo membro do cdh Janascimento na página 5 deste tópico , ou tenho que usar um diodo ao invés do resistor? Gostaria de saber se as duas possibilidades são possíveis. Desde já obrigado.

Link para o comentário
Compartilhar em outros sites

Gostaria de uma opnião sobre onde deixar os divisores resistivos (serão 2).

Segue o Layout da placa que pretendo montar.

PlacaPCI1teste.jpg

A entrada dos sinais é pelo soquete SV2 (ao lado do PIC (esquerdo)).

A duvida coloco o divisor resistivo na placa ou coloco em outra placa antes dessa?

Obrigado.

Falou!:cool:

Tiago Souza

Link para o comentário
Compartilhar em outros sites

@ogaittiago: Os divisores resistivos podem ser na própria placa. Nao tem portância. ogaittiago, esse projeto seu é escolar ou profissional?

Chegou a testar o circuito num protoboard? Não faça a placa antes de testar.

@vitormetallica, ponha um resistor de uns 20 ohms aí. A intenção do diodo é fazer a tensão cair de 5V para algo em torno de 4.3V que é a tensão dos back lights dos LCDs. Mas essa informação você encontra no datasheet.

Falou

Link para o comentário
Compartilhar em outros sites

@ogaittiago: Os divisores resistivos podem ser na própria placa. Nao tem portância. ogaittiago, esse projeto seu é escolar ou profissional?

Chegou a testar o circuito num protoboard? Não faça a placa antes de testar.

  • A duvida em ser na placa ou fora é pela "ALTA TENSÃO" que estaria nela.
  • O Projeto é escolar
  • Eu já testei, porém somente com as tensões do PIC, ou sejá o que estaria depois dos divisores. Em CA usei um trafo para abaixar a tensão e fiz um retificador com 741. (sem capacitor, onda pulsante).
  • Ainda estou com um ERRO significativo na parte de TENSÃO CA.

Tiago Souza

Link para o comentário
Compartilhar em outros sites

Pessoal gostaria de saber se é melhor programar em C pelo compilador Microc do que pelo CCS/PICC? Porque dois colegas de facu e o meu professor me disseram que é furada usar o CCS/PICC, que devo utilizar o Microc!

Meu projeto do voltimetro não tá funcionando de jeito nenhum, porém usando o meu circuito e gravando no PIC um programa de um termômetro programado no Microc, o circuito funciona, o led acende indicando que o PIC está rodando o código!valeu

Link para o comentário
Compartilhar em outros sites

Olá pessoal, fiz o voltimetro no Proteus e funcionou beleza, dai gravei o PIC e fiz os testes no protoboard. E deu um erro estranho.

Fiz a seguinte adaptação: Se a tensão subir acima de 13,8 V desliga o LED. Se a tensão diminuir abaixo de 11 volts, liga o LED. Quero implementar isso num carregador de baterias automático.

Só que o LED fica piscando, não importando a tensão da regulagem... Já troquei Cristal, capacitores, coloquei filtros, etc... Será que é o código?

coloquei tb um led pra ligar pra indicar que o PIC inicializou legal.

Detalhe, quando eu puxo o resistor do pino 2 o Led desliga.

olha o código ai ai?

#include <16F877A.h>

#device adc=10

#FUSES NOWDT //No Watch Dog Timer

#FUSES XT //Crystal osc <= 4mhz

#FUSES PUT //Power Up Timer

#FUSES NOPROTECT //Code not protected from reading

#FUSES NODEBUG //No Debug mode for ICD

#FUSES BROWNOUT //Reset when brownout detected

#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O

#FUSES NOCPD //No EE protection

#use delay(clock=4000000)

#include <lcd.c>

int16 q1;

float p, q2;

void main()

{

lcd_init();

setup_adc_ports(AN0_AN1_AN3); //Canal 0 analógico

setup_adc(ADC_CLOCK_INTERNAL); //Fuente de reloj RC

set_adc_channel(0); //Habilitación canal0

delay_us(20);

while (TRUE)

{

output_high(pin_b0);

q1 = read_adc(); //Lectura canal0

p = (q1 * 5)/1024.0;

q2 = p * 6;

printf(lcd_putc,"\fTensao:%2.2f", q2);

delay_ms (100);

if (q2>=13.8)

{

output_low(pin_b1);

}

if (q2<=11)

{

output_high(pin_b1);

}

}

}

E o esquema

Tô no aguardo por sugestões:lol:

post-801738-13884959522233_thumb.jpg

Link para o comentário
Compartilhar em outros sites

@chacalgbi, rodei seu código e está funcionando no proteus.

você disse que é para um carregador de baterias. Me diz uma coisa, como esse carregador de baterias é? Ele carrega a bateria com tensão constante ou pulsante?

Imagino que tenha a pena retificado para carregar a bateria e não tenha filtrado. Dessa forma, a tensão fica variando, pulsando na porta do PIC e ele entende que toda hora a tensão é menor que 11 e maior que 13.8....

Fica a dica aí, verifique se o circuito do carregador está com tensão retificada e filtrada.

@vitormetallica Ora, nunca tive problemas com o CCS. O pessoal tem mania d edefender só aquele compilador que está acostumado. No meu caso, nunca tive problemas então eu recomendo o CCS.

Falou

Link para o comentário
Compartilhar em outros sites

@chacalgbi, rodei seu código e está funcionando no proteus.

você disse que é para um carregador de baterias. Me diz uma coisa, como esse carregador de baterias é? Ele carrega a bateria com tensão constante ou pulsante?

Imagino que tenha a pena retificado para carregar a bateria e não tenha filtrado. Dessa forma, a tensão fica variando, pulsando na porta do PIC e ele entende que toda hora a tensão é menor que 11 e maior que 13.8....

Fica a dica aí, verifique se o circuito do carregador está com tensão retificada e filtrada.

@vitormetallica Ora, nunca tive problemas com o CCS. O pessoal tem mania d edefender só aquele compilador que está acostumado. No meu caso, nunca tive problemas então eu recomendo o CCS.

Falou

MatheusLPS, o carregador é retificado e filtrado, corrente continua pura, mas ainda não liguei no carregador, tô testando numa fonte variável que eu tenho aqui, muito bem filtrada tb... Eu testei no protoboard, no Proteus simula direitinho. Até mudei para a outra extremidade do protoboard para vê se não havia algum mal contato, etc... Mas tá do mesmo jeito. Outra coisa interessante: O LED de indicação do PIC rodando tá beleza.... e o led que devia acender ou apagar de acordo com a tensão fica piscando... mais ou menos a velocidade de 500ms. Mas eu acho que tem alguma interferência, se eu tocar o dedo no resistor de 10K no pino 1 o led para de piscar e no terra tb acontece isso. Isso ocorreu com um outro projeto que fiz... mudei tudo de lugar e resolveu, mas eu não sei qual a causa dessas interferências. Já aconteceu algo parecido com você? Tem como configurar os pinos de I/O restantes para ficarem inertes? acho que o PIC tá recebendo alguma informação de um lugar que não devia.

Coloquei um capacitor de 470uf antes do 7805 outro de 10uF depois e perto do pic, ao lado do cristal coloquei um de 100nF. mesmo assim nada.

Tô ocilando com capacitores de 30pF porque não tinha de 33, tentei com 22pF e 15pF.... e nada!!!!!:confused::mad::eek:

Dá uma luz ai!!

Link para o comentário
Compartilhar em outros sites

Experimenta esse código:

#include <16F877A.h>
#device adc=10

#FUSES NOWDT //No Watch Dog Timer
#FUSES XT //Crystal osc <= 4mhz
#FUSES PUT //Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES BROWNOUT //Reset when brownout detected
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection

#use delay(clock=4000000)

#include <lcd.c>

int16 q1;
float p, q2;

void main()
{

lcd_init();

setup_adc_ports(AN0); //Canal 0 analógico
setup_adc(ADC_CLOCK_DIV_8); //Fuente de reloj RC

set_adc_channel(0); //Habilitación canal0
delay_us(20);
output_high(pin_B0);

while (TRUE)
{
q1 = read_adc(); //Lectura canal0

p = (q1 * 5)/1024.0;
q2 = p * 6;

if (q2 >= 13.8)
{
output_low(pin_b1);
}
if (q2 <= 11.0)
{
output_high(pin_b1);
}

printf(lcd_putc,"\fTensao:%2.2f", q2);
delay_ms (100);


}
}

Esse capacitor que você disse ter colocado ao lado do cristal de 100nF fica onde exatamente? Não é em pararelo ao cristal nao né.

Testa aí com o outro código me diz.

Outra coisa, todos os TERRAS devem ser comum. Eles são o ponto em comum. Inclusive da sua fonte variável aí.

Falou

Link para o comentário
Compartilhar em outros sites

Esse capacitor que você disse ter colocado ao lado do cristal de 100nF fica onde exatamente? Não é em pararelo ao cristal nao né.

Testa aí com o outro código me diz.

Outra coisa, todos os TERRAS devem ser comum. Eles são o ponto em comum. Inclusive da sua fonte variável aí.

Falou

Não, o capacitor de 100nF é nos pinos 11 e 12, +5V e GND respectivamente.

Me diz uma coisa, a entrada de leitura da tensão é no pino 2. O GND dessa tensão tb tem que tá ligada ao GND do 7805? Ou seja, da alimentação do PIC?

No esquema que eu peguei não tem isso, e acho que foi feito por você e o Janascimento. Tai o circuito:

post-801738-13884959522693_thumb.jpg

Link para o comentário
Compartilhar em outros sites

Isso mesmo.

Ligue todos os terras juntos.

É o ponto em comum. Talvez esse pode ser o erro.

Veja o circuito que postei lá na 1ª página:

smd5A.png

Apenas 1 terra em comum. Inclusive da alimentação.

Só falta ali o cristal e tal.. Pois o circuito é capado. só serve para simular.

O resto necessário você tem no circuito que você postou.

Falou

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!