Chaveamento

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Chaveamento

Mensagempor Pask » 22 Nov 2008 20:57

Amigos, tenho uma aplicação em que, quando a plug for retirado da tomada AC, o PIC deverá reconhecer isto imediatamente através da sua entrada analógica do CAD no pino RA2. Parece simples, mas o problema, é que, o sinal que está acoplado ao pino RA2, vem de uma fonte com retificação e filtragem. No momento em que a alimentação é cortada, a tensão neste pino não decresce instantaneamente como deveria ser e o PIC demora mais de 50ms para reconhecer a queda de tensão e tomar a decisão. Eu preciso que este reconhecimento seja mais rápido - entre 3 e, no máximo, 10 ms - !
Se eu retirar o capacitor eletrolítico que filtra a fonte, surge um sinal retificado em onda completa no pino RA2 que confunde o CAD interno do PIC, impedindo o seu correto funcionamento; se eu mantenho o capacitor, a tensão decresce mais lentamente e o reconhecimento não se dá no tempo que eu quero, surgindo um indesejável "delay".
O fragmento do código que lê este pino, é assim:

set_adc_channel(2); //habilita canal 2 no pino RA2
delay_us(68); //aguarda tempo para conversão A/D
var=read_adc(); //após término da conversão, resultado fica em var

if(var < 231 || var > 378) tomar decisao; //valores lidos do CAD

O problema não está no código fonte, pois todas as leituras do CAD se dão sem problemas.
O problema está no circuito.
Como eu resolvo este problema?
Pask
Word
 
Mensagens: 600
Registrado em: 22 Dez 2006 19:19

Mensagempor Sergio38br » 22 Nov 2008 21:00

boa noite, um resistor em paralelo com o cap. de filtro não resolveria?

[ ]`s
Sergio
Avatar do usuário
Sergio38br
Word
 
Mensagens: 759
Registrado em: 22 Nov 2007 13:39
Localização: São Paulo - SP

Mensagempor Pask » 22 Nov 2008 21:23

Veja o que já tentei:

1 - Colocar um resistor de 1k8 e depois 470 ohms em paralelo com o capacitor. Não resolveu e só aumentou os ruídos na entrada no canal analógico do CAD;

2 - Reduzir o valor do capacitor, originalmente de 100uF para 33uF. Idem para o caso acima;

3 - Criar um circuito para descarregar o capacitor instantaneamente. Não deu certo (ainda);

DETALHE: Eu fiz a descarga manual do capacitor, curto-circuitando o pino do CAD para a massa rapidamente e o PIC acionou do jeito que eu gostaria. Porém, como fazer isto de forma automática?
Pask
Word
 
Mensagens: 600
Registrado em: 22 Dez 2006 19:19

Mensagempor otavio luiz » 23 Nov 2008 06:24

Ao meu ver voce esta utilizando metodo errado, em vez de retificar, filtrar em medir a tensão com AD faça o seguinte, no caso 60hz da 16ms cada ciclo, bem pega a tensão do secundário do trafo e retifica em onda completa mas sem filtragem ai voce tem 120hz ou 8ms, coloca um shimt triger fazendo a detecção por passagem de 0, usa essa passagem por 0 para dar uma int no pic e ressetar um timmer se por um acaso a rede cair no maximo em 16ms ou 2 passagens por 0 ocorre o estouro do timmer e voce faz o chaveamento, entendeu??
Lembre-se, zona de Fresnel não é nenhuma franquia de puteiro.
Avatar do usuário
otavio luiz
Byte
 
Mensagens: 257
Registrado em: 11 Out 2006 13:56
Localização: Barretos - SP, terra de Peão

Mensagempor Pask » 23 Nov 2008 08:53

Eu já tenho um sinal retangular de 5Vpp e 60Hz entrando pelo pino RB0 do PIC. Este pino pode ser configurado para trabalhar com interrupção externa acionada por este sinal. Talvez ele seja a solução seguindo a sua idéia.
Pask
Word
 
Mensagens: 600
Registrado em: 22 Dez 2006 19:19

Mensagempor MOR_AL » 23 Nov 2008 10:57

Olá Pask. Tudo bem?

Existe um CI que deteta a falta da rede. Não me lembro mais qual é.
Você pode fazer um (com tensão de saída analógica entre 5,6V e 0V) da seguinte maneira.
Imagem
Altere o capacitor para a constante de tempo que você deseja.
Para Vdc próximo a 150V, A tensão (Saída) cai para 0,28V em 24ms após a falta na rede. ... E a potência dissipada no resistor R1 fica em cerca de 150mW.
ET. Não se esqueça que ao ligar o aparelho na rede, a tensão de saída levará alguns milissegundos para alcançar os 5,6V. Escolhi o zener de 5,6V porque esta tensão é suportada pela entrada do PIC, e seu coeficiente de temperatura tende a ser zero.
Bom trabalho.
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor barboza » 23 Nov 2008 12:56

Tente colocar um diodo entre dois capacitores, o primeiro menor que irá alimentar o circuito detector, esta tensão passa pelo diodo e alimenta o capacitor maior que alimenta o seu circuito e o PIC.

Assim quando a tensão cair na entrada aciona o detector e o diodo não deixa a tensão do capacitor maior voltar, alimentando o seu MCU para fazer a tarefa.

Uso isso em alguns aparelhos que precisam do recurso de salvar o data/hora do momento da queda da energia.

Quando o circuito é alimentado por um regulador, 7805 por exemplo, pego a tensão de entrada dele, e alimento o detector, na saída dele (5V) uso um capacitor maior (~1000uF), o suficiente para dar tempo para detectar o sinal de queda (com debounce) e salvar os dados que preciso na EEPROM (~10ms).
Os homens mentiriam muito menos se as mulheres fizessem menos perguntas.
Avatar do usuário
barboza
Word
 
Mensagens: 948
Registrado em: 17 Out 2006 13:42
Localização: Longe de onde gostaria de estar

Mensagempor RobL » 23 Nov 2008 13:58

Use o método similar ao do barboza.
Coloque um diodo antes dos capacitores de filtro, antes de todos eles.
Se for 5 Vcc, tire daí uma derivação, do anodo, através de um reistor para um capacitor em torno de 10nF a 100nF x 50V cerâmico (nano Farad).
O mais importante é colocar um resistor em torno de 10K do lado do anodo para a referência a fim de manter o diodo polarizado quando a fonte for desligada (dependo do circuito trafo, etc mas é bom colocar). Este R evita fluir corrente inversa intensa devido a falta de polarização e se não tiver, o diodo vira um resistor e mantém toda a carga do eletrolítico do filtro em sua entrada e não vai cair rápido. Levei bom tempo apanhando até chegar a este R de polarização.

Se neste ponto for maior que 5Vcc, use um zener após o R em paralelo com o cap cerâmico. A finalidade desse cap cerâmico é formar um filtro para a porta evitando que a tensão fique pulsando entre baixo e alto.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor proex » 23 Nov 2008 14:25

Isso tudo é muito complicado.

No secundário do trafo, em qualquer uma das pontas e antes do retificador, ligue um resistor de 220K. Ligue a outra ponta desse resistor na porta RA2.

Pronto!.

RA2 estará "enxergando" uma onda quadrada de 60Hz.

Dai em diante é software.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor Pask » 23 Nov 2008 15:42

Amigos, a questão da onda quadrada de 60Hz no pino RB0 já foi resolvida.
Agora, eu preciso escrever um soft que faça o seguinte: enquanto o sinal retangular estiver presente em RB0, um timer é ressetado continuamente a cada X ms e nunca vai estourar a contagem. Quando este sinal retangular faltar (pela ausência da rede elétrica), esse timer estoura a contagem em poucos ms e o PIC toma a decisão que tiver que tomar.
Eu preciso trabalhar com a interrupção externa em RB0 e, talvez, com a interrupção do timer.
Pask
Word
 
Mensagens: 600
Registrado em: 22 Dez 2006 19:19

Mensagempor RobL » 23 Nov 2008 21:47

Da forma sugerida é a mais simples. Não precisa ocupar um timer e mais nada.
O sinal fica sempre alto na RB0. Setar para interrupção ocorrer na descida do pulso (nível) e pronto faça o que quizer no serviço da INT0.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor Pask » 24 Nov 2008 09:29

O sinal em RB0 não fica sempre alto. Ele é pulsado e retangular. Eu já ajustei o bit INTEDG no registrador OPTION para que a interrupção externa aconteça na borda e subida e de descida do sinal respectivamente. Isto quer dizer que acontecerá uma interrupção externa a cada 8,33ms aproximadamente.
Realmente a idéia de não usar mais o timer é boa mesmo. Não há necessidade de se ocupar um timer com esta operação.
Sendo assim, eu preciso do seguinte:
Enquanto a int. ext. ocorrer, o PIC mantém um flag setado ou ressetado; quando a int. ext. deixar de ocorrer, o PIC inverte o estado desse flag instantaneamente. É preciso controlar o tempo de 8,33ms. Já estou pensando em como fazer isto.
Pask
Word
 
Mensagens: 600
Registrado em: 22 Dez 2006 19:19

Mensagempor RobL » 24 Nov 2008 11:03

Pask, você não entendeu a parte elétrica.
O circuito sugerido, deixa o sinal alto, não pulsante, nada de onda quadrada. Da forma que está o circuito elétrico sugerido, este pulso cai em menos de 8ms (meio ciclo).
Configure INT0 para gerar interrupção na descida do "pulso", na verdade ao variar a tensão para zero.
Repetindo o circuito.
Um diodo é colocado em série com a corrente que vai aos capacitores de filtro. Do anodo deste diodo, onde a tensão ainda é pulsante, tira-se uma derivação através de um R (por exemplo 10K) e este é ligado a um capacitor cerâmico em torno de 10 a 100nF (a determinar para o seu caso).
Esta constante RC será suficiente para que a ondulação seja sempre bem acima do sinal baixo (zero lógico) para sua porta. Quanto mais próximo do zero estiver mais rápido aciona a interrupção.
Não esquecer de ligar também um outro R de 10K do anodo do diodo para referência "terra, negativo".
Desta forma quando a fonte for desligada a tensão no anodo do diodo cai bruscamente a zero e o diodo desliga os eletrolíticos do filtro.
O sinal na porta, sobre o capacitor cerâmico cai rapidamente, devido a resistência de fuga interna do capacitor cerâmico. Esta poderia ser acelerada por um R em paralelo com o Cap cerâmico, mas normalmente não é necessário.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor Pask » 24 Nov 2008 11:18

Peço que você, se puder, me envie um desenho desse esquema que você está sugerindo para eu entender melhor.
Agora, vamos analisar o seguinte: primeiramente, eu preciso que o sinal em RB0 seja retangular para manter um sincronismo com o sinal da rede elétrica ficando em fase com ele; em segundo lugar, pela sua idéia, o sinal não cairá para zero em 8ms. Se eu ajustar para que a int. aconteça somente na borda de descida, somente será gerada uma borda de descida a cada 16,7ms, certo? Mas, tudo bem.
Na verdade, ainda não entendi muito bem como a tensão sobre o capacitor cairá tão rapidamente, pois o cap. de filtro que está sendo usado é de 100uF e o circuito não funciona com um capacitor menor, pois esta parte do circuito é usada para outra função que depende de um sinal bem retificado, entende?
Aguardo o desenho e/ou novas sugestões. Obrigado.
Pask
Word
 
Mensagens: 600
Registrado em: 22 Dez 2006 19:19

Mensagempor RobL » 24 Nov 2008 13:13

Código: Selecionar todos
              D
Retificador------>|------------- V fonte
                  |    diodo          |             
                  R                  Cel
                  |-----porta         |
                 Cer  int0            |
                  |                   |
-----------------------------------  0V


Cel = Capacitor eletrolítico
R= resistor
Cer = Capacitor cerâmico
>|- = diodo

O sinal para porta RB0 (INT0) sai do retificador antes do diodo que
vai desligar o capacitor eletrolítico do filtro da fonte.
Esse sinal pulsante é filtrado pelo capacitor cerâmico. O valor desta constante RC deve ser o suficiente para que a ondulação fique acima do nível zero lógico da porta. Não é necessário usar um RC a ponto de reduzir muito a ondulação deixando-a perfeitamente contínua.
Funcionamento:
Ao tirar o" plug da tomada" imediatamente a tensão no anodo do diodo D
cai a zero. Neste momento o Cel de filtro é desligado pelo diodo D e a tensão sobre Cer, que já está próximo ao nível zero da porta, cairá em menos de 8ms. Este tempo será determinado pela sua necessidade.
No esquema acima, a descarga no Cer (capacitor cerâmico na faixa de 10nF a 100nF) cairá devido à sua resistência interna e a da porta (que é muito alta).
Não está mostrado um importante R que deverá ser ligado do anodo do diodo D para referência a fim de manter o diodo D polarizado. Este R poderá também ser de 10K. Isto depende do valor de sua tensão nesse ponto. Sem esse R não funciona.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Próximo

Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x