• Welcome to LusoRobótica - Robótica em Português.
 

fonte alimentação 0-16v 0-2.5A

Started by dio123, 04 de August de 2013, 15:48

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

senso

o sleep mete-te o micro a dormir, ou seja, basicamente desligado.
Avr fanboy

dio123

O codigo consegui resumir um pouco mais, mas o problema dos valores estarem a oscilar presistem.
Basicamente é acordar o adc para ler e depois desligar para nao "acumular ruido" certo?

Quanto ao codigo do Njay consegui por a funcionar, mas penso que é assim.
No arranque   SREG |= _BV(SREG_I); para ligar interrupts
                   set_sleep_mode(SLEEP_MODE_ADC); define o modo do sleep
                   sleep_enable();  liga o sleep.
                   inicia o adc

depois no adc_read é onde uso o codigo do Njay.

Penso que nao fiz nada de errado.
                   
anexo codigo completo.

Njay

#137
Então possivelmente a oscilação está mesmo lá; 90mV de ripple na verdade parece-me muito para ruído. Assumindo que não tens um osciloscópio à mão, podes fazer este teste, que é meter o AVR a ler uma bateria de 12V (ou plha de 9V, ou...). A tensão de uma bateria é sempre bastante estável (partindo do principio que não tem lá nenhuma carga a dar "puxões" na corrente) e assim ficas a saber se a oscilação continua. Faz 2 testes, 1 com o circuito do AVR alimentado pela tua fonte e outro com ele alimentado pela bateria.

p.s. Ah! Tb podes experimentar baixar R1/R2 por um factor de 10, usar 8K2 e 1K

dio123

1-  pilha 9v --lm317 -- divisor ligado ao 5v e gnd do atmega . pino analogico varia entre 212 e 213.
2-  pilha 9v --lm317 -- divisor ligado ao vcc e gnd da fonte alimentacao  pino analogico varia num intervalo entre 500 e 520
3-  fonte de alimentação 5v - atmega e divisor ligado a uma pilha 9v  com gnd partilhado pino analogico varia entre 308 e 311

mudei as resistencias para 8k2 e 1k

4-  fonte de alimentação 5v - atmega e divisor ligado há uma pilha 9v  com gnd partilhado pino analogico varia entre 345 e 350 mas a variação é mais fixa  350.
5-  fonte de alimentação 5v - atmega e divisor ligado há fonte alimentacao  pino analogico varia entre 518 e 522 mas e a variação é mais fixa  para 522.

Estas resistencias são de 5% , mas quando estive numa calculadora online dizia-me que 82k e 10k era melhor em termos de erro  e ratio que a de 8k2  e 1k.




dropes

- Tudo o que é digital gera muito ruído nas linhas de alimentação.
- Se estás a fazer a montagem em breadboard ainda mais se agrava esse fenómeno.
- Quando é em pcb deve ser de dupla face e separar as massas de analógico e digital.
- Mesmo em breadboard não devias ter uma variação tão grande, ou o modo sleep não está a ser usado.
- Quanto menor as resistências de entrada ao ADC melhor, menos ruído apanham por interferências eletromagnéticas.
- Como o refrescamento que pretendes não é alto, sempre podes colocar delays entre cada leitura, assim não são feitas as medições todas seguidas para achares a média.
- É bom que estejas longe de fontes eletromagnéticas como lâmpadas economizadoras, PCs ou transformadores.
- Aumenta a capacidade de filtração da fonte do micro, melhor seria alimentar este micro com uma resistência +-10ohms e colocar um condensador directamente no micro, assim as interferências à linha de alimentação atenuam bastante,
- Já foi aqui referido que a soma das leituras é através de um nº inteiro, a divisão pelo nº de leituras para se achar a média já pode ser fracionário.

Desculpa tanto palavreado, já tive várias vezes problemas com interferências e sei como é frustrante descobrir soluções.

dio123

Bem peguei no TL431 meti a fazer referencia a 2.49v e troquei a referencia interna do atmega8L  pela a externa e o resultado foi maravilhoso. Tenho o resultado da porta analógica estabilizada 538. As vezes abana 537 e 538, o que é perfeitamente normal isto sem fazer  médias com resultado directo.


senso

Atira-lhe um LM4040 de 2.048v, assim cada LSB corresponde a mV's certos a não a valores decimais, acaba-se logo os floats, poupas 2K de flash sem as bibliotecas float.
Avr fanboy

Hugu

eu ja tenho os lm317 em stock...

dio123

Boa noite,
uma vez que nao tenho em mãos o material para testar, resolvi desenvolver as coisas na teoria e aplicar na pratica quando estiver em casa. 
A controladora fiz o seguinte:
DIVISOR RESTRITIVO: GND --- 1K ---A2---8K2------VCC
A2 = 2.5V  quando vcc = 23v.  A fonte em aberto é 21v, fiquei com margem de segurança.

Medição de corrente:  RShunt= 0,47R  ao passar  2.5A pela resistencia, a tensão máxima é  1.175v  depois meti um lm358 alimentado a 5v e tenho um output entre 0- 2.48v.

Agora tenho as seguintes duvidas.
1- Usar o LM35 metendo por cima do 2n3055,com massa termica para medir a temperatura, ligado por um cabo de 20cm de distancia do atmega. Pode funcionar? a distancia do cabo nao vai trazer problemas nas leituras?

2- input 20v usando 7812 para 12v e ligar as 2 fans, isto dá mais ou menos 500mA será perciso dissipador? ou é melhor usar um regulador que permita mais corrente tipo 5A e assim evito dissipadores.






dropes

Quote from: dio123 on 23 de August de 2014, 20:55
Boa noite,
uma vez que nao tenho em mãos o material para testar, resolvi desenvolver as coisas na teoria e aplicar na pratica quando estiver em casa. 
A controladora fiz o seguinte:
DIVISOR RESTRITIVO: GND --- 1K ---A2---8K2------VCC
A2 = 2.5V  quando vcc = 23v.  A fonte em aberto é 21v, fiquei com margem de segurança.
Os valores estão correctos, mesmo com tensão de referência exterior, deve ser calibrado no programa para se ter um valor preciso.

Quote
Medição de corrente:  RShunt= 0,47R  ao passar  2.5A pela resistencia, a tensão máxima é  1.175v  depois meti um lm358 alimentado a 5v e tenho um output entre 0- 2.48v.
Esta é uma parte crítica, fizeste ao menos simulação?

Quote
Já se tinha comentado por aqui que um divisor resistivo não é das melhores soluções quando se quer fazer leituras porque
Não era a melhor solução quando se queria monitorizar a pequena variação de uma bateria, não é o caso.

Quote
Agora tenho as seguintes duvidas.
1- Usar o LM35 metendo por cima do 2n3055,com massa termica para medir a temperatura, ligado por um cabo de 20cm de distancia do atmega. Pode funcionar? a distancia do cabo nao vai trazer problemas nas leituras?
Sem problemas em relação ao cabo, medir a temperatura é que é um pouco desprovido numa fonte, já pensaste em colocar um NTC em série com a ventoinha, funciona perfeitamente?

Quote
2- input 20v usando 7812 para 12v e ligar as 2 fans, isto dá mais ou menos 500mA será perciso dissipador? ou é melhor usar um regulador que permita mais corrente tipo 5A e assim evito dissipadores.
20V - 12V = 8V x 0.5A = 4W
Aconselhava dissipador, não é por usares um regulador que suporte mais corrente que estes 4W desaparecem, a não ser que seja por comutação e aí estás a introduzir ruído no circuito.


dio123

Boa noite,
Sim cheguei a fazer a simulação da Medição de corrente no isis proteus, e irei fazer na breadboard.

O divisor restritivo de facto nao é a melhor solução, até tenho o icl7107 do multimetro em DIP  só que nao quero usar porque vai-me obrigar a usar o display 7 segmentos em vez do lcd que leva mais informação e ocupa menos espaço.

Tenho um transformador de um relogio, e poderá dar, mas só testando.

dio123

Bom dia,
A fonte já está a trabalhar,  finalizada e montada numa placa de madeira.  Só falta fazer umas correcções no eagle, tinha problema nas massas,  para partilhar aqui .  foto: http://cl.ly/image/271h461H432I

Agora  só falta um volmeter e ammeter.
Chego a conclusão que vai ser bastante dificil medir voltagem com o atmega, isto porque a medição não é tão  linear.
Estou a medir 12v acertos da fonte e o atmega está a medir 12 certos. Dentro da gama 11 e 13v bate certo um erro minimo nos extremos, mas se baixar a fonte para 5v o atmega já me le 4V  já é um erro grande.

Agora podia criar um array com todos os erros de 0 a 20v e a partir dai dar a voltagem final mas vai subcarregar imenso e não me parece que fique alguma coisa decente.

Estou a ponderar sériamente nisto, é só ligar e nao percisava de preocupar tenho as 2 coisas, mas tenho receio que não preste.
http://www.ebay.com/itm/New-100V-100A-DC-Digital-Voltmeter-Ammeter-LED-Amp-Volt-Meter-Current-Shunt-/291079963241?pt=LH_DefaultDomain_0&hash=item43c5b7c269

aceita-se sugestões.

Obrigado

senso

1v ao lado, estás a alimentar o micro por onde?
Avr fanboy

Njay

Parabéns!, foi preciso persistência para chegar até aqui :)
É mto estranho, tens aí gato em qq lado, dá perfeitamente para fazer uma leitura dessas com um mega ou qq outro micro com um ADC. Esquema e código?

dio123

O divisor resistivo estou a usar 2 resistencias 1/4  5% que veio no kit resistencias velleman.
Eu estou alimentar o atmega por um 7805 que meti na fonte. Por usb do pc o resultado é igual.

O esquema é este http://cl.ly/image/1S2I2t3j162p
O codigo em anexo.

Será que metendo 2 resistencias 1% a coisa melhora?