collapse

* Posts Recentes

Emulador NES em ESP32 por dropes
[22 de Abril de 2024, 14:14]


Arame de Estendal por almamater
[18 de Abril de 2024, 16:16]


O que é isto ? por SerraCabo
[12 de Abril de 2024, 14:20]


Amplificador - Rockboard HA 1 In-Ear por almamater
[11 de Abril de 2024, 20:46]


Meu novo robô por josecarlos
[29 de Março de 2024, 18:30]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]

Autor Tópico: fonte alimentação 0-16v 0-2.5A  (Lida 78606 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
Re: fonte alimentação
« Responder #120 em: 09 de Julho de 2014, 14:31 »
Tenho tudo  pronto, estou aqui a acertar os ultimos promenores, mas surgiu aqui uma duvida.

No eagle,  os pads que ligam ao ground plane ficam com 3 ou 4 pistas pequeninas em forma de cruz e ligam ao ground plane.
A minha duvida é se dá para aumentar um pouco essas pistas.
ex: http://cl.ly/image/311N002k0j0c

Obrigado

Offline jm_araujo

  • Mini Robot
  • *
  • Mensagens: 2.950
  • NERD!
Re: fonte alimentação
« Responder #121 em: 09 de Julho de 2014, 14:55 »
Chamam-se "thermals".
Alteram-se mudando a espessura de linha do polígono que está a fazer o plano (tive de procurar ;) )

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.598
    • Tróniquices
Re: fonte alimentação
« Responder #122 em: 09 de Julho de 2014, 15:06 »
"thermal relief", "alívio térmico"

http://en.wikipedia.org/wiki/Thermal_relief

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
Re: fonte alimentação
« Responder #123 em: 09 de Julho de 2014, 16:39 »
É isso mesmo,
Quando desenha-se o poligno para fazer o ground plane escolhe-se a espessura para o Thermal relief.


Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
Re: fonte alimentação
« Responder #124 em: 14 de Julho de 2014, 15:22 »
Esta é a 2ª fonte, em anexo,  parece estar estavel, tanto no lt spice como na prática a olho.

Tenho 1 led de 12v ligado a saida e a voltagem há saida é  12,04v.
Mudo o led para uma lampada 12v 7w  aprox: 1.7A ai acende o CC, acerto o potenciometro do ajuste CC e fica ok.
O problema é que vou medir a voltagem há saida da fonte novamente e tenho 11,74v. Depois tenho de ir ao cv dar-lhe um ajustezinho para ir 12.08v. Se desligar a lampada e ligar o led a volta a voltagem na saida sobe para 12.68v.

A minha duvida é a seguinte: o op-amp U2 nao devia corrigir este drop voltage que acontece com o variar das correntes?


Obrigado

 
« Última modificação: 17 de Julho de 2014, 12:04 por dio123 »

Offline dropes

  • Mini Robot
  • *
  • Mensagens: 2.198
Re: fonte alimentação
« Responder #125 em: 14 de Julho de 2014, 15:27 »
12V 7W dá 0.583A e não 1.7A
Não estarás a perder tensão nos cabos?
Na simulação funcionou bem com cargas?
« Última modificação: 14 de Julho de 2014, 15:29 por dropes »

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: fonte alimentação
« Responder #126 em: 14 de Julho de 2014, 15:54 »
Poderá ser o facto de esse op-amp não ser rail to rail e não ter grande capacidade de drive quando próximo da massa ou do Vcc?
Avr fanboy

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
Re: fonte alimentação
« Responder #127 em: 15 de Julho de 2014, 21:29 »
As breadboard são muito traisoeiras. Tenho um fio que leva GND depois do RSENSE para a parte superior da breadboard e ai liga as resistencias que metem a tensão.  depois a resistencia do GND  e puxei um fio para a parte inferior da breadboard e já funciona.  Técnicamente está ligado ao mesmo sitio.

Vou fazer a placa, e logo se ve...

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
Re: fonte alimentação
« Responder #128 em: 22 de Julho de 2014, 22:57 »
Com a 1ª parte da fonte alimentação feita, e a placa final feita começo agora a  2ª parte da fonte que é medir tensão e corrente e controlo da fan. 

montei o circuito todo na breadboard http://cl.ly/image/3L1T2t0W1323 , começei por usar a referencia interna do atmega8, e o resultado foi que a voltagem  tem  ligeira  diferença, que é corrigivel.
O grande problema é que a voltagem no lcd está sempre oscilar, exprimentei fazer ume media de 16 amostras, e o problema melhorou muito pouco.  Depois  troquei a referencia interna por externa usando TL431, mas o resultado foi o mesmo. Neste momento está a oscilar entre 11.78v, 11.82v,11.87v  11.80v ,11.82v. sendo a saida da fonte 12v certos pelo o multimetro.

O que estou a fazer mal?

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: fonte alimentação
« Responder #129 em: 22 de Julho de 2014, 22:59 »
Esquema de como estás a fazer a medição, mas possivelmente um condensador de 1uF á entrada do pino do ADC deve estabilizar a coisa.
Avr fanboy

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
Re: fonte alimentação
« Responder #130 em: 22 de Julho de 2014, 23:14 »
Já coloquei condensadores  1uF e de 10uF , mas continua a oscilar.

código em anexo mas fica aqui o resumo:
Citar
readout = read_adc(1);
      buf_medias[i++] = readout;
      if(i < 16) continue;
      // Calcular a media de 16 amostras
      for(i = 0; i < 15;  i++)
      {
         voltage += (float)buf_medias;
      }
      voltage = (voltage / 16.0)*factor;

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: fonte alimentação
« Responder #131 em: 22 de Julho de 2014, 23:18 »
Não uses assim floats com fartura..
Faz só a conversão final de counts de adc para float quanto metes o valor no lcd, não ganhas nada em estar a guardar valores float, só perdes ram, e torna-se muito mais lento.

E o código que trata da leitura do ADC?
Estás a usar vários canais?
Em modo free-runing sempre que mudas de canal, a primeira leitura após a mudança tem um valor do canal anterior.

Se é para fazer scanning usas interrupts, isto é para um atmega328p em SMD que tem mais dois pinos analógios, e está a saltar o A4 e o A5 porque os estou a usar para i2c:
Citar
inline void adcInit(void){

   ADCSRA |= (_BV(ADPS2)|_BV(ADPS1)|_BV(ADPS0)|_BV(ADIE));   //16Mhz/128 = 125Khz ADC interrupts ON
   ADMUX = ADCREF;          //Referencia de 5v
   ADCSRA |= _BV(ADEN);      //Adc ligada
   ADCSRA |= _BV(ADSC);      //Fazer uma primeira conversão para iniciar o circuito e porque é a mais lenta
}

ISR(ADC_vect){
   
   static uint8_t inputIndex=0;
   
   if(inputIndex > 4){
      adcRaw[inputIndex-2] = ADCW;   //grab the new conversion data   
   }
   else {
      adcRaw[inputIndex] = ADCW;
   }
   
   if (++inputIndex >= 8 )
   {
      inputIndex=0;
   }
   
   if(inputIndex == 4){
      inputIndex = 6;
   }
   
   ADMUX = ADCREF + inputIndex;   //Define o novo canal a ler do ADC
   ADCSRA |= (1<<ADSC);   //Start a new conversion

   
}

« Última modificação: 22 de Julho de 2014, 23:21 por senso »
Avr fanboy

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
Re: fonte alimentação
« Responder #132 em: 23 de Julho de 2014, 00:24 »
Neste caso , só preciso de um canal que é ADC1.  Os outros não me interessam. Mas no caso de crer ler vários canais terei de usar interrupts certo?

Não estou a perceber o que quer dizer com " E o código que trata da leitura do ADC?"

Então uint16_t read_adc só vai ler o canal que eu escolher neste caso 1, e dai vou receber um valor entre 0-1023 que vai para a variável readout e na continuação do loop o valor é convertido e calculado a voltagem Vin do divisor restritivo.

Se calhar está parte das "contas" havia de estar num void a parte do loop , e no loop ter só ficar o resultado final para passar para o lcd?

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: fonte alimentação
« Responder #133 em: 23 de Julho de 2014, 00:36 »
Mantem a leitura, médias e afins tudo em uint's, só no print para o lcd é que fazes a multiplicaçã/divisão para passar para float.
Avr fanboy

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.598
    • Tróniquices
Re: fonte alimentação
« Responder #134 em: 23 de Julho de 2014, 01:27 »
Os outros não me interessam. Mas no caso de crer ler vários canais terei de usar interrupts certo?
Não.

Mete 100nF em C5 (ou além de C5). C5, C4 e C6 têm que estar mesmo "em cima" das patas do chip.

Esta é a minha rotina tipica de leitura do ADC, quando não quero usar a interrupção para fazer o trabalho todo. É um esquema "hibrido", uso a interrupção apenas para não estar a fazer um ciclo activo à espera do final da conversão, assim posso fazer sleep para reduzir a interferência do trabalhar do chip.

EMPTY_INTERRUPT(ADC_vect)

static uint16_t ReadAdc (uint8_t channel)
{
    uint8_t  prevSREG;
    uint16_t  val;

    // Set channel
    ADMUX = (ADMUX & 0xf0) | channel;
    //set_sleep_mode(SLEEP_MODE_ADC);       // does not allow timer1 to continue operate
    // Enable intrs, ADC. Conversion starts automatically when entering
    // sleep mode (idle or ADC noise reduction). @@TODO CHECK THIS - não funca no simulador

    ADCSRA |= _BV(ADIE);
    ADCSRA |= _BV(ADSC);

    // Wait end-of-conversion. The ADC interrupt will unblock sleep.
    do sleep_mode();
    while (ADCSRA & _BV(ADSC));     // wait for the bit to go to zero

    // Read the value
    prevSREG = SREG;
    cli();
    val = ADCW;
    SREG = prevSREG;

    // Disable the ADC interrupt
    ADCSRA &= ~_BV(ADIE);
    return val;
}


(Há ali umas experiências que fiz mas não funcionaram e não voltei a debruçar-me sobre o assunto, ignorem.) Como é que isto funca? O CPU sai de sleep sempre que há uma interrupção. Quando a conversão terminar vai haver uma e portanto o loop termina. Entretanto o core está em sleep (e idealmente estaria num modo especial de sleep para o ADC) e há menos ruído digital a ser gerado. A interrupção é implementada vazia (o handler só tem uma instrução, o iret). Como posso ter outras interrupções no sistema, quando o sleep desbloqueia tenho à mesma que testar se a conversão acabou mesmo.
Esta rotina assume que o ADC já foi ligado e configurado noutro sítio.
« Última modificação: 23 de Julho de 2014, 01:37 por Njay »