Índice:

Fonte de alimentação digital operada por bateria: 7 etapas (com fotos)
Fonte de alimentação digital operada por bateria: 7 etapas (com fotos)

Vídeo: Fonte de alimentação digital operada por bateria: 7 etapas (com fotos)

Vídeo: Fonte de alimentação digital operada por bateria: 7 etapas (com fotos)
Vídeo: como substituir Fontes de alimentação ou carregadores de forma correta. 2024, Novembro
Anonim
Fonte de alimentação digital operada por bateria
Fonte de alimentação digital operada por bateria
Fonte de alimentação digital operada por bateria
Fonte de alimentação digital operada por bateria
Fonte de alimentação digital operada por bateria
Fonte de alimentação digital operada por bateria
Fonte de alimentação digital operada por bateria
Fonte de alimentação digital operada por bateria

Sempre quis uma fonte de alimentação para usar em qualquer lugar, mesmo sem uma tomada por perto? E não seria legal se também fosse muito preciso, digital e controlável via PC?

Neste instrutível, mostrarei como construir exatamente isso: uma fonte de alimentação digital operada por bateria, que é compatível com o Arduino e pode ser controlada pelo PC via USB.

Um tempo atrás, eu construí uma fonte de alimentação a partir de uma velha fonte de alimentação ATX e, embora funcione muito bem, eu queria melhorar meu jogo com uma fonte de alimentação digital. Como já foi dito, é alimentado por baterias (2 células de lítio para ser mais preciso), e pode fornecer no máximo 20 V a 1 A; o que é suficiente para a maioria dos meus projetos que requerem um fornecimento de energia preciso.

Vou mostrar todo o processo de design, e todos os arquivos do projeto podem ser encontrados na minha página GitHub:

Vamos começar!

Etapa 1: Recursos e custo

Recursos e custos
Recursos e custos

Recursos

  • Modos de tensão constante e corrente constante
  • Usa um regulador linear de baixo ruído, precedido por um pré-regulador de rastreamento para minimizar a dissipação de energia
  • Uso de componentes manuais para manter o projeto acessível
  • Desenvolvido por ATMEGA328P, programado com Arduino IDE
  • Comunicação de PC via aplicativo Java via micro USB
  • Alimentado por 2 células protegidas de 18.650 íons de lítio
  • Plugues banana com 18 mm de espaçamento para compatibilidade com adaptadores BNC

Especificações

  • 0 - 1A, etapas de 1 mA (10 bits DAC)
  • 0 - 20V, etapas de 20 mV (10 bits DAC) (operação 0V verdadeira)
  • Medição de tensão: resolução de 20 mV (ADC de 10 bits)
  • Medição atual:

    • <40mA: resolução de 10uA (ina219)
    • <80mA: resolução 20uA (ina219)
    • <160mA: resolução de 40uA (ina219)
    • <320mA: resolução de 80uA (ina219)
    • > 320mA: resolução de 1mA (ADC de 10 bits)

Custo

O fornecimento de energia completo me custou cerca de US $ 135, com todos os componentes únicos. As baterias são a parte mais cara (US $ 30 para 2 células), uma vez que são protegidas 18.650 células de lítio. É possível reduzir o custo significativamente se nenhuma operação com bateria for necessária. Ao omitir as baterias e o circuito de carregamento, o preço cai para cerca de US $ 100. Embora possa parecer caro, fontes de alimentação com muito menos desempenho e recursos geralmente custam mais do que isso.

Se você não se importar em encomendar seus componentes no ebay ou no aliexpress, o preço com baterias cairia para US $ 100 e US $ 70 sem. Demora mais para as peças chegarem, mas é uma opção viável.

Etapa 2: Esquemático e Teoria de Operação

Esquemática e teoria de operação
Esquemática e teoria de operação

Para entender o funcionamento do circuito, teremos que olhar para o esquema. Eu o dividi em blocos funcionais, de forma que seja mais fácil de entender; Assim, explicarei também o funcionamento passo a passo. Esta parte é bastante aprofundada e requer um bom conhecimento em eletrônica. Se você apenas deseja saber como construir o circuito, pode pular para a próxima etapa.

Bloco principal

A operação é baseada no chip LT3080: é um regulador de tensão linear, que pode reduzir as tensões, com base em um sinal de controle. Este sinal de controle será gerado por um microcontrolador; como isso é feito, será explicado em detalhes posteriormente.

Configuração de tensão

O circuito ao redor do LT3080 gera os sinais de controle apropriados. Primeiro, vamos dar uma olhada em como a tensão é definida. A configuração de tensão do microcontrolador é um sinal PWM (PWM_Vset), que é filtrado por um filtro passa-baixa (C9 e R26). Isso produz uma tensão analógica - entre 0 e 5 V - proporcional à tensão de saída desejada. Uma vez que nossa faixa de saída é de 0 a 20 V, teremos que amplificar este sinal com um fator de 4. Isso é feito pela configuração opamp não inversora do U3C. O ganho para o pino definido é determinado por R23 // R24 // R25 e R34. Esses resistores são tolerantes a 0,1%, para minimizar erros. R39 e R36 não importam aqui, pois eles fazem parte do ciclo de feedback.

Configuração atual

Este pino definido também pode ser usado para a segunda configuração: modo atual. Queremos medir o consumo de corrente e desligar a saída quando exceder a corrente desejada. Portanto, começamos novamente por um sinal PWM (PWM_Iset), gerado pelo microcontrolador, que agora é filtrado em lowpass e atenuado para ir de uma faixa de 0 - 5 V a uma faixa de 0 - 2 V. Esta tensão é agora comparada com a queda de tensão através do resistor de detecção de corrente (ADC_Iout, veja abaixo) pela configuração do comparador do opamp U3D. Se a corrente estiver muito alta, acenderá um led, e também puxará a linha de set do LT3080 para o terra (via Q2), desligando a saída. A medição da corrente e a geração do sinal ADC_Iout são feitas da seguinte forma. A corrente de saída flui através dos resistores R7 - R16. Isso totaliza 1 ohm; a razão para não usar 1R em primeiro lugar é dupla: 1 resistor precisaria ter uma classificação de potência mais alta (ele precisa dissipar pelo menos 1 W) e usando 10 resistores de 1% em paralelo, obtemos uma precisão maior do que com um único resistor de 1%. Um bom vídeo sobre por que isso funciona pode ser encontrado aqui: https://www.youtube.com/embed/1WAhTdWErrU&t=1s Quando a corrente flui por esses resistores, ela cria uma queda de tensão, que podemos medir, e é colocado antes do LT3080, uma vez que a queda de tensão nele não deve influenciar a tensão de saída. A queda de tensão é medida com um amplificador diferencial (U3B) com um ganho de 2. Isso resulta em uma faixa de tensão de 0 - 2 V (mais sobre isso depois), daí o divisor de tensão no sinal PWM da corrente. O buffer (U3A) existe para garantir que a corrente que flui para os resistores R21, R32 e R33 não passe pelo resistor de detecção de corrente, o que influenciaria sua leitura. Observe também que este deve ser um amplificador operacional de trilho a trilho, porque a tensão de entrada na entrada positiva é igual à tensão de alimentação. O amplificador não inversor é apenas para medição de curso embora, para medições muito precisas, tenhamos o chip INA219 a bordo. Este chip nos permite medir correntes muito pequenas e é endereçado via I2C.

Coisas adicionais

Na saída do LT3080, temos mais algumas coisas. Em primeiro lugar, existe um dissipador de corrente (LM334). Isso consome uma corrente constante de 677 uA (definida pelo resistor R41), para estabilizar o LT3080. No entanto, não está conectado ao terra, mas ao VEE, uma tensão negativa. Isso é necessário para permitir que o LT3080 opere até 0 V. Quando conectado ao aterramento, a tensão mais baixa seria cerca de 0,7 V. Isso parece baixo o suficiente, mas tenha em mente que isso nos impede de desligar completamente a fonte de alimentação. O diodo zener D3 é usado para travar a tensão de saída se ficar acima de 22 V, e o divisor do resistor diminui a faixa de tensão de saída de 0 - 20 V para 0 - 2 V (ADC_Vout). Infelizmente, esses circuitos estão na saída do LT3080, o que significa que sua corrente contribuirá para a corrente de saída que queremos medir. Felizmente, essas correntes são constantes se a tensão permanecer constante; para que possamos calibrar a corrente quando a carga for desconectada primeiro.

Bomba de carga

A tensão negativa que mencionamos antes é gerada por um pequeno circuito curioso: a bomba de carga. Para o seu funcionamento, gostaria de referir aqui: https://www.youtube.com/embed/1WAhTdWErrU&t=1s É alimentado por 50% PWM do microcontrolador (PWM)

Conversor Boost

Vamos agora dar uma olhada na tensão de entrada do nosso bloco principal: Vboost. Vemos que é 8 - 24 V, mas espere, 2 células de lítio em série dá um máximo de 8,4 V? De fato, e é por isso que precisamos aumentar a tensão, com um chamado conversor de reforço. Sempre poderíamos aumentar a tensão para 24 V, independentemente da saída que quisermos; no entanto, isso desperdiçaria muita energia no LT3080 e as coisas ficariam muito quentes! Portanto, em vez de fazer isso, aumentaremos a tensão um pouco mais do que a tensão de saída. Cerca de 2,5 V mais alto é apropriado, para levar em conta a queda de tensão no resistor de detecção de corrente e a queda de tensão do LT3080. A tensão é definida por resistores no sinal de saída do conversor de reforço. Para alterar essa tensão em tempo real, usamos um potenciômetro digital, o MCP41010, que é controlado via SPI.

Carregamento de bateria

Isso nos leva à verdadeira tensão de entrada: as baterias! Como usamos células protegidas, simplesmente precisamos colocá-las em série e pronto! É importante usar células protegidas aqui, para evitar sobrecorrente ou descarga excessiva e, portanto, danos às células. Novamente, usamos um divisor de voltagem para medir a voltagem da bateria e baixá-la para uma faixa utilizável. Agora vamos para a parte interessante: o circuito de carregamento. Usamos o chip BQ2057WSN para este propósito: em combinação com o TIP32CG, ele basicamente forma uma fonte de alimentação linear. Este chip carrega as células por meio de uma trajetória CV CC apropriada. Como minhas baterias não têm sensor de temperatura, essa entrada deve ser vinculada à metade da voltagem da bateria. Isso conclui a parte de regulação de tensão da fonte de alimentação.

Regulador 5V

A tensão de alimentação de 5 V do arduino é feita com este regulador de tensão simples. No entanto, não é a saída de 5 V mais precisa, mas isso será resolvido a seguir.

Referência de tensão de 2,048 V

Este pequeno chip fornece uma referência de tensão de 2,048 V muito precisa. Isso é usado como uma referência para os sinais analógicos ADC_Vout, ADC_Iout, ADC_Vbatt. É por isso que precisávamos de divisores de tensão para baixar esses sinais para 2 V. Microcontrolador O cérebro desse projeto é o ATMEGA328P, esse é o mesmo chip que é usado no Arduino Uno. Já examinamos a maioria dos sinais de controle, mas existem algumas adições interessantes, no entanto. Os codificadores rotativos são conectados aos 2 únicos pinos de interrupção externos do arduino: PD2 e PD3. Isso é necessário para uma implementação de software confiável. Os interruptores abaixo usam um resistor pullup interno. Então, há esse estranho divisor de tensão na linha de seleção de chip do potenciômetro (Pot). Um divisor de tensão em uma saída, para que serve isso; pode-se dizer. Como mencionado antes, a alimentação de 5 V não é extremamente precisa. Portanto, seria bom medir isso com precisão e ajustar o ciclo de trabalho do sinal PWM de acordo. Mas como eu não tinha mais insumos grátis, tive que fazer um pino puxar com dupla função. Quando a fonte de alimentação inicializa, este pino é primeiro definido como uma entrada: ele mede o trilho de alimentação e se calibra. Em seguida, ele é definido como uma saída e pode conduzir a linha de seleção de chip.

Driver de vídeo

Para a tela, eu queria uma tela LCD Hitachi comumente disponível - e barata. Eles são acionados por 6 pinos, mas como eu não tinha mais pinos, precisava de outra solução. Um registro de turno para o resgate! O 74HC595 me permite usar a linha SPI para controlar o display, necessitando apenas de 1 linha adicional de seleção de chip.

FTDI

A última parte desse fornecimento de energia é a conexão com o mundo exterior cruel. Para isso, precisamos converter os sinais seriais em sinais USB. Isso é feito por um chip FTDI, que é conectado a uma porta micro USB para fácil conexão.

E isso é tudo que há para fazer!

Etapa 3: PCB e eletrônicos

PCB e eletrônicos
PCB e eletrônicos
PCB e eletrônicos
PCB e eletrônicos
PCB e eletrônicos
PCB e eletrônicos
PCB e eletrônicos
PCB e eletrônicos

Agora que entendemos como o circuito funciona, podemos começar a construí-lo! Você pode simplesmente pedir o PCB online do seu fabricante favorito (o meu custa cerca de US $ 10), os arquivos gerber podem ser encontrados no meu GitHub, junto com a lista de materiais. A montagem da placa de circuito impresso é basicamente uma questão de soldar os componentes no lugar de acordo com a serigrafia e a lista de materiais.

O primeiro passo é soldar os componentes SMD. A maioria deles é fácil de fazer manualmente, exceto com o chip FTDI e o conector micro USB. Portanto, você pode evitar a soldagem desses 2 componentes e, em vez disso, usar uma placa de breakout FTDI. Eu forneci pinos de cabeçalho onde podem ser soldados.

Quando o trabalho SMD estiver concluído, você pode passar para todos os componentes do furo passante. Estes são muito diretos. Para os chips, você pode querer usar soquetes em vez de soldá-los diretamente na placa. É preferível usar um ATMEGA328P com o bootloader Arduino, caso contrário, você terá que carregá-lo usando o cabeçalho ICSP (mostrado aqui).

A única parte que precisa de um pouco mais de atenção é a tela de lcd, já que precisa ser montada em ângulo. Solde alguns cabeçotes angulares machos nele, com a peça de plástico voltada para a parte inferior da tela. Isso permitirá um bom posicionamento da tela no pcb. Depois disso, ele pode ser soldado no lugar como qualquer outro componente de orifício.

A única coisa que resta a fazer é adicionar 2 fios, que se conectarão aos terminais banana na placa frontal.

Etapa 4: Caixa e montagem

Caixa e montagem
Caixa e montagem
Caixa e montagem
Caixa e montagem
Caixa e montagem
Caixa e montagem

Com o pcb feito, podemos passar ao caso. Eu projetei especificamente o PCB em torno deste caso de hammond, então usar outro caso não é recomendado. No entanto, você sempre pode imprimir em 3D um caso com as mesmas dimensões.

A primeira etapa é preparar o painel final. Precisaremos fazer alguns furos para parafusos, interruptores, etc. Fiz isso manualmente, mas se você tiver acesso a um CNC, essa seria uma opção mais precisa. Fiz os furos de acordo com o esquema e rosquei os furos dos parafusos.

É uma boa ideia adicionar algumas almofadas de seda agora e segurá-las no lugar com uma pequena gota de super cola. Isso isolará o LT3080 e o TIP32 da placa traseira, enquanto ainda permite a transferência de calor. Não se esqueça deles! Ao aparafusar os chips ao painel traseiro, use uma arruela de mica para garantir o isolamento!

Agora podemos nos concentrar no painel frontal, que apenas desliza no lugar. Agora podemos adicionar os jacks banana e os botões para os codificadores rotativos.

Com os dois painéis no lugar, agora podemos inserir o conjunto na caixa, adicionar as baterias e fechar tudo. Certifique-se de usar baterias protegidas, você não quer que as células explodam!

Neste ponto, o hardware está pronto, agora tudo o que resta é soprar um pouco de vida nele com o software!

Etapa 5: Código Arduino

Código Arduino
Código Arduino

O cérebro deste projeto é o ATMEGA328P, que iremos programar com o IDE Arduino. Nesta seção, irei passar pela operação básica do código, os detalhes podem ser encontrados como comentários dentro do código.

O código basicamente percorre estas etapas:

  1. Ler dados seriais de java
  2. Botões de votação
  3. Meça a tensão
  4. Meça a corrente
  5. Meça a corrente com INA219
  6. Enviar dados seriais para java
  7. Configure boostconvertor
  8. Obter carga da bateria
  9. Tela de atualização

Os codificadores rotativos são tratados por uma rotina de serviço de interrupção para que sejam o mais responsivos possível.

O código agora pode ser carregado para a placa através da porta micro USB (se o chip tiver um bootloader). Placa: Arduino pro ou pro mini Programador: AVR ISP / AVRISP MKII

Agora podemos dar uma olhada na interação entre o Arduino e o PC.

Etapa 6: Código Java

Código Java
Código Java

Para registrar dados e controlar o fornecimento de energia via PC, fiz um aplicativo java. Isso nos permite controlar facilmente a placa por meio de uma GUI. Como com o código do Arduino, não vou entrar em todos os detalhes, mas dar uma visão geral.

Começamos fazendo uma janela com botões, campos de texto etc; coisas básicas da GUI.

Agora vem a parte divertida: adicionar as portas USB, para as quais usei a biblioteca jSerialComm. Assim que uma porta for selecionada, o java ouvirá todos os dados de entrada. Também podemos enviar dados para o dispositivo.

Além disso, todos os dados recebidos são salvos em um arquivo csv, para tratamento posterior dos dados.

Ao executar o arquivo.jar, devemos primeiro escolher a porta correta no menu suspenso. Depois de conectar, os dados começarão a chegar e podemos enviar nossas configurações para o powerupply.

Embora o programa seja bastante básico, pode ser muito útil controlá-lo por meio de um PC e registrar seus dados.

Etapa 7: Sucesso

Sucesso!
Sucesso!
Sucesso!
Sucesso!
Sucesso!
Sucesso!

Depois de todo esse trabalho, agora temos uma fonte de alimentação totalmente funcional!

Devo também agradecer a algumas pessoas pelo apoio:

  • O projeto foi baseado no projeto uSupply da EEVBLOG e seu esquema Rev C. Portanto, um agradecimento especial a David L. Jones por lançar seus esquemas sob uma licença de código aberto e compartilhar todo o seu conhecimento.
  • Um grande obrigado a Johan Pattyn por produzir os protótipos deste projeto.
  • Também Cedric Busschots e Hans Ingelberts merecem crédito pela ajuda na solução de problemas.

Agora podemos desfrutar de nosso próprio fornecimento de energia feito em casa, que será útil enquanto trabalhamos em outros projetos incríveis! E o mais importante: aprendemos muitas coisas ao longo do caminho.

Se você gostou deste projeto, vote em mim no concurso powersupply, eu realmente aprecio! Https: //www.instructables.com/contest/powersupply/

Concurso de fonte de alimentação
Concurso de fonte de alimentação
Concurso de fonte de alimentação
Concurso de fonte de alimentação

Segundo prêmio no concurso de fonte de alimentação

Recomendado: