Índice:

Fonte de alimentação Bluetooth com USB C digital: 8 etapas (com imagens)
Fonte de alimentação Bluetooth com USB C digital: 8 etapas (com imagens)

Vídeo: Fonte de alimentação Bluetooth com USB C digital: 8 etapas (com imagens)

Vídeo: Fonte de alimentação Bluetooth com USB C digital: 8 etapas (com imagens)
Vídeo: Adaptador bluetooth p2/usb para som 2024, Julho
Anonim
Fonte de alimentação Bluetooth USB C digital
Fonte de alimentação Bluetooth USB C digital
Fonte de alimentação Bluetooth USB C digital
Fonte de alimentação Bluetooth USB C digital
Fonte de alimentação Bluetooth USB C digital
Fonte de alimentação Bluetooth USB C digital
Fonte de alimentação Bluetooth com USB C digital
Fonte de alimentação Bluetooth com USB C digital

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 e seu telefone?

Neste instrutível, mostrarei como construir exatamente isso: uma fonte de alimentação digital, que é alimentada por USB C. É compatível com Arduino e pode ser controlada via PC via USB ou via telefone via Bluetooth.

Este projeto é uma evolução do meu suprimento de energia anterior, que funcionava com bateria e tinha um visor e botões. Confira aqui! No entanto, eu queria ir menor, então é por isso que fiz isso!

A fonte de alimentação pode ser alimentada por um banco de baterias USB C ou carregador de telefone. Isso permite até 15W de potência, o que é suficiente para alimentar a maioria dos eletrônicos de baixa potência! Para ter uma boa IU em um dispositivo tão pequeno, incluí Bluetooth e um aplicativo Android para os controles. Isso torna este powerupply ultra portátil!

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

  • Alimentado por USB C
  • Controlado via aplicativo Android via Bluetooth
  • Controlado via Java sobre USB C
  • 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
  • Desenvolvido por ATMEGA32U4, programado com Arduino IDE
  • Pode ser alimentado por um banco de bateria USB C para torná-lo portátil
  • Detecção de carregador USB C e Apple
  • 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 - 25V, etapas de 25 mV (10 bits DAC) (operação 0V verdadeira)
  • Medição de tensão: resolução de 25 mV (ADC de 10 bits)
  • Medição de corrente: <resolução 40mA: 10uA (ina219) <resolução 80mA: 20uA (ina219) <resolução 160mA: 40uA (ina219) <resolução 320mA: 80uA (ina219)> resolução 320mA: 1mA (ADC de 10 bits)

Custo

O fornecimento de energia completo me custou cerca de US $ 100, com todos os componentes únicos. 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 pedir seus componentes no ebay ou no aliexpress, o preço cairia para cerca de US $ 70. 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 (C23 e R32). 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 - 25 V, teremos que amplificar este sinal com um fator de 5. Isso é feito pela configuração opamp não inversora do U7C. O ganho para o pino definido é determinado por R31 e R36. Esses resistores são tolerantes a 0,1%, para minimizar erros. R39 e R41 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,5 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 de opamp U1B. Se a corrente estiver muito alta, acenderá um led, e também puxará a linha de ajuste do LT3080 para o terra (via Q1), 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 do resistor R22. Quando a corrente flui por esse resistor, ela cria uma queda de tensão, que podemos medir, e é colocada antes do LT3080, uma vez que a queda de tensão por ele não deve influenciar a tensão de saída. A queda de tensão é medida com um amplificador diferencial (U7B) com ganho de 5. Isso resulta em uma faixa de tensão de 0 - 2,5 V (mais sobre isso depois), daí o divisor de tensão no sinal PWM da corrente. O buffer (U7A) existe para garantir que a corrente que flui para os resistores R27, R34 e R35 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 R46), 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. Infelizmente, este circuito está na saída do LT3080, o que significa que sua corrente contribuirá para a corrente de saída que queremos medir. Felizmente, é constante para que possamos calibrar para esta corrente. O diodo zener D7 é usado para travar a tensão de saída se ficar acima de 25 V, e o divisor do resistor diminui a faixa de tensão de saída de 0 - 25 V para 0 - 2,5 V (ADC_Vout). O buffer (U7D) garante que os resistores não estejam consumindo corrente da saída.

Bomba de carga

A tensão negativa que mencionamos antes é gerada por um pequeno circuito curioso: a bomba de carga. É alimentado por um PWM de 50% do microcontrolador (PWM).

Conversor Boost

Vamos agora dar uma olhada na tensão de entrada do nosso bloco principal: VCC. Vemos que é 5 - 27V, mas espere, USB dá no máximo 5 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 27 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.

USB C

Isso nos leva à verdadeira tensão de entrada: a porta USB! A razão para usar USB C (USB tipo 3.1 para ser exato, USB C é apenas o tipo de conector) é porque ele permite uma corrente de 3 A a 5 V, que já é bastante potente. Mas há um problema, o dispositivo precisa ser compatível para extrair essa corrente e 'negociar' com o dispositivo host. Na prática, isso é feito conectando-se dois resistores suspensos de 5,1k (R12 e R13) à linha CC1 e CC2. Para compatibilidade com USB 2, a documentação é menos clara. Resumindo: você desenha a corrente que quiser, desde que o hospedeiro possa fornecê-la. Isso pode ser verificado monitorando a tensão do barramento USB: quando a tensão cai abaixo de 4,25 V, o dispositivo consome muita corrente. Isso é detectado pelo comparador U1A e desativará a saída. Ele também envia um sinal ao microcontrolador para definir a corrente máxima. Como um bônus, resistores foram adicionados para apoiar a detecção da identificação do carregador de carregadores Apple e Samsung.

Regulador 5V

A tensão de alimentação de 5 V do arduino normalmente vem diretamente do USB. Mas como a voltagem do USB pode variar entre 4,5 e 5,5 V de acordo com as especificações do USB, isso não é preciso o suficiente. Portanto, um regulador de 5 V é usado, o que pode gerar 5 V a partir de tensões mais baixas e mais altas. Ainda assim, essa tensão não é extremamente precisa, mas isso é resolvido por uma etapa de calibração onde o ciclo de trabalho do sinal PWM é ajustado de acordo. Esta tensão e é medida pelo divisor de tensão formado por R42 e R43. 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 acionar a linha de seleção de chip do potenciômetro.

Referência de tensão 2,56 V

Este pequeno chip fornece uma referência de tensão de 2,56 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 reduzir esses sinais para 2,5 V.

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. Felizmente, isso é feito pelo ATMEGA32U4, este é o mesmo chip que é usado no Arduino Micro.

Bluetooth

A parte Bluetooth é muito simples: um módulo Bluetooth pronto para uso é adicionado e cuida de tudo para nós. Uma vez que seu nível lógico é 3,3 V (VS 5 V para o microcontrolador), um divisor de tensão é usado para mudar o nível do sinal.

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

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.

Embora meu suprimento de energia anterior tivesse apenas componentes de passagem, a restrição de tamanho do meu novo tornava isso impossível. A maioria dos componentes ainda é relativamente fácil de soldar, então não tenha medo. A título de ilustração: um amigo meu que nunca havia soldado antes conseguiu povoar este dispositivo!

É mais fácil fazer os componentes primeiro na parte da frente, depois na parte de trás e terminar com os componentes do orifício de passagem. Ao fazer isso, o PCB não irá balançar ao soldar os componentes mais difíceis. O último componente a ser soldado é o módulo Bluetooth.

Todos os componentes podem ser soldados, exceto os 2 conectores banana, que montaremos na próxima etapa!

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 de uma caixa de alumínio 20x50x80mm (https://www.aliexpress.com/item/Aluminum-PCB-Instr…), portanto, usar outra caixa 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 os macacos de banana. Fiz isso manualmente, mas se você tiver acesso a um CNC essa seria uma opção mais precisa. Insira os conectores banana nesses orifícios e solde-os no PCB.

É uma boa ideia adicionar algumas almofadas de seda agora e segurá-las no lugar com uma pequena gota de super cola. Isso permitirá a transferência de calor entre o LT3080 e o LT1370 e o gabinete. Não se esqueça deles!

Agora podemos nos concentrar no painel frontal, que é apenas parafusado. Com os dois painéis no lugar, agora podemos inserir o conjunto no gabinete e fechá-lo totalmente. 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 ATMEGA32U4, 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. Enviar dados para o aplicativo
  2. Leia os dados do aplicativo
  3. Meça a tensão
  4. Meça a corrente
  5. Botão de votação

A sobrecorrente USB é tratada por uma rotina de serviço de interrupção para que seja o mais responsiva possível.

Antes que o chip possa ser programado por USB, o bootloader deve ser queimado. Isso é feito através da porta ISP / ICSP (os cabeçalhos 3x2 machos) por meio de um programador ISP. As opções são o AVRISPMK2, USBTINY ISP ou um arduino como ISP. Certifique-se de que a placa recebe energia e pressione o botão 'queimar bootloader'.

O código agora pode ser carregado para a placa através da porta USB C (já que o chip tem um bootloader). Placa: Arduino Micro Programador: AVR ISP / AVRISP MKII Agora podemos dar uma olhada na interação entre o Arduino e o PC.

Etapa 6: aplicativo Android

App Android
App Android

Agora temos uma fonte de alimentação totalmente funcional, mas nenhuma maneira de controlá-la ainda. Muito irritante. Portanto, faremos um aplicativo Android para controlar o fornecimento de energia por Bluetooth.

O aplicativo foi feito com o programa inventor de aplicativos do MIT. Todos os arquivos podem ser incluídos para clonar e modificar o projeto. Primeiro, baixe o aplicativo complementar MIT AI2 para o seu telefone. Em seguida, importe o arquivo.aia no site do AI. Isso também permite que você baixe o aplicativo em seu próprio telefone, escolhendo "Build> App (fornecer o código QR para.apk)"

Para usar o aplicativo, selecione um dispositivo Bluetooth da lista: ele aparecerá como módulo HC-05. Quando conectado, todas as configurações podem ser alteradas e a saída da fonte de alimentação pode ser lida.

Etapa 7: 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 8:

Imagem
Imagem
Imagem
Imagem
Imagem
Imagem

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

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, por favor, vote em mim no concurso de bolso e microcontrolador, eu realmente aprecio isso!

Recomendado: