Páginas

sexta-feira, 12 de junho de 2015

Carro movido a água - A falácia

Resolvi escrever esse post depois de ver inúmeros vídeos circulando pela internet, primeiro de "inventores populares" oferecendo a oportunidade de rodar milhares de quilômetros com o seu automóvel utilizando apenas 1 litro de água. Logo esses videos caseiros viraram matéria de jornais, daqueles bem ruizinhos mesmo, pois como vou mostrar é fácil desmascarar esse charlatanismo. Por fim, já tem gente oferecendo comercialmente os kits de conversão de fácil instalação no seu automóvel.

ÁGUA OU HIDROGÊNIO - O MILAGRE DA HIDRÓLISE - OU AQUELA EXPERIÊNCIA QUE VOCÊ FEZ NA QUINTA-SÉRIE.
Existe uma pequena confusão sobre o tal carro movido a água que algumas pessoas não se dão conta. Apesar de ser abastecido com água, o combustível no caso é o gás Hidrogênio H2, formado por duas moléculas do átomo de Hidrogênio. O gás é obtido fazendo a eletrólise da água, processo no qual ao passar uma corrente elétrica por uma solução aquosa, quebramos a molécula de água em seus componentes básicos Hidrogênio e Oxigênio. É exatamente como aquelas experiências que você fazia na quinta série, utilizando alguns fios, algumas pilhas, tubos de ensaio, água e sal. 

A FALÁCIA.
Para desmascarar de uma vez por todas essa falácia, vou usar como base um vídeo no youtube. Observe nos comentários do vídeo que realmente existem pessoas que acreditam que o feito do cidadão é possível e que quem não acredita ou argumenta contra é considerado "limitado" por achar que as leis da física não podem ser mudadas, blá, blá, blá. Ou ainda aqueles que dizem que essa tecnologia é antiga e todos que de certa forma a reinventam são mortos... conspiração.




Voltando ao vídeo. Perceba que é dito que:
O carro rodou 1.000 km com 1,5 litros de água destilada.

Agora, para efeitos de simplificação das contas, vou assumir que:
1) O Hidrogênio foi obtido DE GRAÇA, nenhum custo financeiro ou energético foi necessário para a sua obtenção.
2) O veículo usado como base será o mesmo do vídeo, que eu identifiquei como sendo um Chery S-18.
3) Não existe atrito, desgaste, forças resistivas ou outras que possam roubar potência, ou seja, toda energia da queima dos combustíveis citados será aproveitada para o MOVIMENTO do veículo e que o gasto de energia para deslocar o veículo é o mesmo independente do combustível utilizado (o que parece bem obvio).


O primeiro ponto que eu vou mostrar é que o rendimento do hidrogênio não é assim tão incrível a ponto de 1 litro de água ser capaz de mover um veículo por uma distância tão grande. Vou mostrar ainda que não é preciso ser um gênio para resolver esse problema, todas os cálculos são resolvidos com regra-de-três.

A QUÍMICA DO PROCESSO.
Não confundir átomos com moléculas. O gás queimado é o gás hidrogênio (H2) que é uma molécula formada por DOIS átomos de hidrogênio.

Uma molécula de água, a famosa H2O tem 1 átomo de oxigênio e 2 átomos de hidrogênio. 
Como a densidade de água é de 1:1 sabemos que 1 litro de água pesa exatamente 1 kg, mas a maior parte da massa que compõe a água se deve ao Oxigênio. Para achar quantas gramas de hidrogênio é possível extrair de um litro de água precisamos fazer algumas contas.
Se você não se lembra do segundo grau, pode consultar o São Google e confirmar que:

1 mol de água pesa 18 gramas (16 g de Oxigênio e 2 g de Hidrogênio)
em 1 litro (1000 gramas) de água teremos 62,5 mols de moléculas o que dá também 62,5 mols de hidrogênio (gás).

O hidrogênio tem massa molecular de 2,02 gramas/mol, logo em 1000 litro de água é possível extrair 125 gramas de H2.

Outro dado tabelado é a energia calorífica do H2 que é de 120.10^6 Joules/kg.
Logo no nosso litro de água, se queimarmos todo o H2 disponível, será possível extrair 15.10^6 Joules.  

Legal, então sabemos agora que em 1 litro de água, podemos extrair no máximo 15.10^6 J de energia (isso sem levar em consideração que foi necessário gastar energia para extrair o hidrogênio da água). Mas será essa quantidade suficiente para mover um carro popular por 1.000 km? para responder essa pergunta e mostrar que tudo é uma farsa, vamos ver alguns dados da gasolina e do veículo.

A GASOLINA
A gasolina tem densidade de 0,73g/L ou seja, 1 litro de gasolina pesam 730 gramas.
Outro dado (tabelado) é a energia calorífica da gasolina que é de 42,5.10^6 J/kg.

Considerando os dados que obtive do Chery S-18, o mais otimista de todos foi o que considerava o consumo do automóvel como sendo de 15,1 km/L de gasolina na estrada.

Com o consumo médio de 15,1 km/L para rodar os 1.000 km seriam necessários 66,22 litros de gasolina. E esse volume de gasolina corresponde a 48,33 kg do combustível (regra de três com a densidade).

Então se 1 kg de gasolina fornecem 42,5 .10^6 J , os 48,33 kg necessários para percorrer os 1.000 km fornecem 2.054,03 .10^6 Joules.

Ou seja, fazendo todas as simplificações possíveis, seria necessário 2.054 .10^6 Joules para mover o carro por 1.000 km, que é uma quantidade de energia bem maior (136 vezes maior) que a fornecida pela queima do hidrogênio presente em 1 litro de água, que como vimos, é de apenas 15 .10^6 Joules.

Além disso, a simplificação 1) diz que não gastamos nada para obter o hidrogênio é a que mais pesa, uma vez que para se extrair o hidrogênio de água, vamos gastar a mesma quantidade de energia que ele vai devolver em sua queima (novamente, desprezando todo tipo de perda, resistência ou atrito.)

OUTROS CASOS:
Se você procurar mais, vai ficar ainda com mais raiva vendo que a quantidade de pessoas que tem propagando essas mentiras. Nesse outro, ainda mais mentiroso, eles vão além e dizem que o carro rodou 2.000 km com menos de 1 litro de água. Não sendo o bastante, ainda chamaram uns calouros de engenharia elétrica, pra corroborar a mentira. É tanta desinformação que reparem o que a repórter fala à partir dos 2:25 min do vídeo.... "...em apenas uma molécula de H2O são várias partículas partículas do gás que se transformam em combustível". Nota-se total desconhecimento de química básica, confundindo termos como partículas (átomos) e moléculas. Como vimos, cada molécula de H20 fornece uma (e não várias) moléculas de H2 que é o combustível.




Conclusão. Não compre kit de conversão seja chines, americano ou brasileiro. Não acredite em quem disse que teve resultado. Não compartilhe tudo que você lê ou escuta sem antes fazer o mínimo de verificação, jornalistas dificilmente sabem algo (principalmente ciência) com o mínimo de profundidade necessária, então como se pode ver pelos vídeos, é muito fácil enganá-los e convence-los a fazer propaganda gratuita de algo que beira o estelionato. Lembre-se a burrice se propaga com uma velocidade muito maior que a sabedoria.

Fontes:
http://www.carrosnaweb.com.br/fichadetalhe.asp?codigo=1213
http://www.antoniolima.web.br.com/arquivos/podercalorifico.htm

sexta-feira, 9 de janeiro de 2015

Frequencímetro microprocessado com PIC


[REVISADO]
Mais um projeto envolvendo microcontroladores PIC. Ele que já foi montado e testado no proto-board mas infelizmente não tive tempo de montar a placa final. A princípio é um circuito muito simples exigindo o mínimo de componentes externos além do microprocessador graças aos recursos do PIC, mais especificamente, do módulo do Timer 1 (TMR1) ativando os recursos de incremento externo e modo assíncrono. O circuito apresentado é capaz de medir frequências entre 10 Hz e 50 MHz, mesmo com o PIC trabalhando com o Clock de 4 MHz.


Esquema Frequencímetro com PIC 16F628A e LCD


A medida do sinal é feita quase que diretamente no pino do processador e o resultado é exibido em um display de LCD 16X2 com resolução de 5 dígitos. É possível modificar o programa para se ter uma resolução maior e/ou o circuito para exibir o resultado em diplays de 7 segmentos, porém, dependendo da quantidade de dígitos que o projetista deseja exibir, pode ser necessário a adição de um CI decodificador (BCD-7seg) ou de um PIC com maior número de pinos para fazer a multiplexação dos displays.

Lógica de Funcionamento:
O funcionamento do frequencímetro é baseado em "janelas de amostragem", que são intervalos de tempo muito pequenos (na casa dos milissegundos) onde é feito a contagem dos pulsos. Em seguida extrapola-se o valor dessa contagem para o tempo de 1 segundo. Ou seja, não contamos todos os pulsos que chegam durante um segundo inteiro.
Para cada faixa de frequência que se deseja medir, devemos escolher o tempo de amostragem adequado. Para frequências maiores (ordem de MHz), deve usar intervalos menores, já medições em faixas de frequências menores (ordem de kHz) deve-se utilizar intervalos de amostragem maiores.

É possível fazer no programa, um sistema de "auto-range", onde programa determina a faixa de frequência de acordo com o sinal na entrada. Isso é obtido fazendo a amostragem dos pulsos começando pela escala mais baixa (intervalo de amostragem maior), caso a contagem estoure, o resultado é desprezado e é feita uma nova amostragem na escala seguinte (intervalo de amostragem menor) até que a contagem dos pulsos no sinal de entrada não estoure durante a amostragem.
Dividir o intervalo de medição em faixas pode ser útil para uma exibição melhor do resultado, principalmente quando se usa poucos dígitos.

Exemplo:
O primeiro range (faixa ou intervalo de medição) corresponde a um janelamento de 1 segundo (JANELA=1000 ms). Logo vamos contar quantos pulsos recebemos do sinal de entrada durante um segundo. Caso a contagem do TMR1 estoure (ultrapasse 65535) significa que o sinal possui uma frequência maior que 65 kHz e neste caso o programa muda a janela para 500 ms e faz uma nova amostragem, se durante essa nova amostragem a contagem estourar novamente, significa que o sinal de entrada possui uma frequência maior que 131 kHz e deve-se utilizar um intervalo de amostragem menor ainda. O programa trabalha nesse loop, reduzindo o tempo de amostragem até que a contagem do TMR1 não exceda 65535, quando isso acontecer, basta fazer a conta de extrapolação dos pulsos e exibir o resultado.

O Hardware:
O sinal de entrada é ligado ao pino de incremento externo do TMR1, para testes de bancada é possível ligar diretamente a entrada ao pino através de um resistor limitador, na prática é necessário utilizar algum circuito para adequar o sinal da entrada (amplitude, impedância de saída) a níveis seguros para o PIC. Existem diversos projetos na internet de circuitos de condicionamento de sinal e proteção. O projetista deve selecionar o circuito para cada caso, lembrando que: A amplitude máxima do sinal suportável pelo processador é de 5 V. Aconselho o uso de acoplamento óptico para evitar interferências e isolar eletricamente o sinal de entrada do processador.

O software:
O firmware foi escrito em C. Utilizando o compilador CCS e o MPLAB.
As funções são bem simples, segue abaixo uma breve explicação de delas.

Função de amostragem 
int16 amostragem(int16 janela)
{ int16 TEMP=0;              //inicializa variavel TEMP
output_low(RB7);           
SET_TRIS_B(0b11000000);    //inicia o janelamento por                                          //hardware.
set_timer1(0);
delay_ms(janela);          //Aguarda por X milissegundos                                        //enquanto o TMR1 recebe a                                          //contagem.
TEMP=get_timer1();         //Captura o valor da contagem na                                    //variável no TMR1 e passa para a                                    //variável TEMP.
output_low(RB7);           //encerra o janelamento por                                          //hardware.
SET_TRIS_B(0b01000000);
return TEMP;               //Repassa o valor da contagem
}
O "janelamento por hardware" é opcional e é feito ligando se o pino RB7 juntamente com a entrada do sinal. Quando não estamos amostrando o sinal de entrada, o pino RB7 força a entrada do sinal para nível baixo, quando queremos fazer a contagem colocamos o pino RB7 como entrada (alta impedância) e com isso o TMR1 só é incrementado dentro desta rotina. 


Função BINÁRIO-BCD
//CONVERTE UM VALOR BINÁRIO PURO DE UMA VARIÁVEL
//EM 4 DÍGITOS BCD
void binario_BCD(int16 TEMP) // formato 012.34 
{ digits[0]=((TEMP/10000))+0X30;     //soma 30H para a
digits[1]=((TEMP/1000)%10)+0X30;   //adequar a ROM do LCD
digits[2]=((TEMP/100)%10)+0X30;    // 30H = 0, 31H= 1,...
digits[3]=((TEMP/10)%10)+0X30;
digits[4]=((TEMP)%10)+0x30; //
}
No caso de se trabalhar com display de LCD, pode-se passar o valor diretamente em binário e a rotina se encarrega de fazer a conversão, devendo o programador apenas ajustar a vírgula (parte decimal),  eu prefiro transformar tudo em caractere para se manter a compatibilidade em caso de uso de displays de 7-segmentos.

Rotina de Interrupção por estouro de contagem do TIMER1
#INT_TIMER1 //interrupção do timer1
void inter_timer1(void)
{ FAIXA++;
if(FAIXA>7){FAIXA=0;}
}
A rotina acima ocorre sempre que o valor da contagem dos pulsos do sinal de entrada excede 65.535. Neste caso, a variável FAIXA é incrementada, o que altera o janelamento para um valor menor em outra parte do programa com é visto abaixo. 


void main()
{setup_oscillator(OSC_4MHZ);   //pic16f628A possui cristal interno
SETUP_COMPARATOR(NC_NC_NC_NC);  //comparadores desligados
SETUP_VREF(FALSE);              //tensão de referência desligada
SETUP_TIMER_2(T2_DISABLED,0,1); //TMR2 desabilitado
SET_TRIS_A(0b00000000);
SET_TRIS_B(0b01000000);
lcd_init();                   //invoca rotina de inicialização LCD
lcd_gotoxy(1,1);
ENABLE_INTERRUPTS(INT_TIMER1); //habilita interrupção TMR1
ENABLE_INTERRUPTS(GLOBAL);     //chave geral das interupções
FAIXA = 0;                     //carrega com valor incial

SETUP_TIMER_1(T1_EXTERNAL|T1_DIV_BY_1); //configura TMR1

while(true)
{ delay_ms(1000);
switch (FAIXA)
{case 0:{JANELA=500;     //tempo de amostragem 500 ms
 FREQUENCIA=amostragem(JANELA);
 if(FREQUENCIA==0){FAIXA=7; break;}
 if(FREQUENCIA<30000)
 { binario_BCD(FREQUENCIA*2);
imprime_LCD();
faixa_0(); // 655,35 hz = 655,35 kHz
break;
 }
else
{FAIXA=1;
JANELA=250;
break;
}
break;}
case 1:{JANELA=250;          //tempo de amostragem 250 ms
FREQUENCIA=amostragem(JANELA);
if(FREQUENCIA==0){FAIXA=7; break;}
if(FREQUENCIA<15000)
{ binario_BCD(FREQUENCIA*4);
imprime_LCD();
faixa_0();
break;
}
else
{ FAIXA=2;
JANELA=200;
break;
}
break;
}
...
  }
}

A rotina acima, que não está completa, é o loop principal no qual o programa fica rodando, ela é chamada na função main após as instruções de inicialização do PIC. O caso zero, corresponde à faixa de medida mais baixa (variável FAIXA=0) que corresponde a um janelamento de 500 ms. Se a contagem for menor que 30.000 pulsos, o valor a ser exibido é simplesmente o número de pulsos multiplicado por 2. Se a contagem for maior que 30.000 pulsos, a contagem é desprezada, a variável faixa é incrementada e na próxima passagem pela função o programa irá pular para o caso 1 que utiliza uma janela de 250 ms e assim por diante. 

As rotinas abaixo fazem a exibição do resultado no LCD, nas três situações possíveis. Não confundir com a variável FAIXA (falta criatividade as vezes pra nomear variáveis e rotinas).
void faixa_0(void)
{   printf(lcd_putc,"%c%c.%c%c%c.%c%c%c Hz",digits[0],digits[1],digits[2],digits[3],digits[4]);
}

void faixa_2(void)
{ printf(lcd_putc,"ERRO: f > 60MHZ",);
}

void faixa_1(void)
{ printf(lcd_putc,"ERRO: sem sinal",);

}

Os arquivos para o projeto podem ser obtidos no link abaixo.

Considerações: 
1) Lembrar de setar o TMR1 para trabalhar com incrementos externos, modo assíncrono e sem prescaler. É possível medir frequências até 50 MHz com esse circuito sem muitos problemas.  
2)Para testar o frequencímetro pode-se montar um circuito oscilador composto de um CI 555, um capacitor e um potenciômetro ou trimpot. Se você tiver um cristal e algumas portas lógicas é possível montar um oscilador para a frequência nominal do cristal. 
3) Em muitos casos o circuito de entrada precisa amplificar o sinal que queremos, pois o mesmo pode estar em uma amplitude muito baixa e o PIC não irá conseguir fazer a contagem dos pulsos, Em outros casos, o sinal de entrada precisará ser atenuado (se o intuito for, por exemplo, medir a frequência da rede elétrica), Fica a cargo do projetista escolher e projetar seu próprio circuito de entrada. 

Circuito para teste do frequencímetro

4) É possível transformar o frequencímetro em um capacímetro ou em um indutímetro com pouquíssimas modificações.
Se tiver alguma dúvida ou sugestão sobre o projeto deixe um comentário que você será respondido.
5) Senha do arquivo: dnail.org