Manual

do

Maker

.

com

Como montar um carregador de bateria 18650

Como montar um carregador de bateria 18650

Eu vi um vídeo excelente no Youtube mostrando o processo, bastante simples, para carregar 3 baterias. Bem, no vídeo (desse link) você vai ver um trabalho excepcional, parece até fácil, mas realmente merece um valor. Mas o que eu queria não era exatamente mostrar como montar um carregador de bateria, eu queria era fazer a medição da tensão de carga com Arduino pra dispensar um hardware específico para isso. Então, essa imagem de destaque que demonstra o caos é o resultado da minha montagem, e vou discorrer sobre a interface para medir a carga no Arduino.

Carregador de bateria hx-3s-01

Esse é um circuito protegido para carregar 3 baterias, cuja conexão é muito simples. Peguei uma imagem da Internet e adicionei apenas os pontos de onde tirei o sinal para fazer a medição:

wiring-carregador-300x289.webp

Uma representação mais clara seria essa:

wiring-representacao_linear-300x300.webp

Ou seja, não tem segredo para ligar.

Com as baterias conectadas, já é possível fazer a medição. Mas não podemos ler diretamente a tensão da bateria em um pino analógico por algumas razões; primeiro, que a tolerância no pino do Arduino (Leonardo, nesse tutorial) é 5V. Segundo, como o nível lógico é 5V, qualquer coisa acima disso seria 100%.

Divisor de tensão

Para ler um sinal de 5V, cometi um pequeno erro, mas serviu para provar o conceito.

A soma das baterias equivale a 11.1V, mas ela passa de 3.7V quando bem carregada, chegando a 4.2V. As baterias que tenho aqui estão boas e a tensão acabou passando um pouco, chegando a 11.9V. Não foi o suficiente para queimar o pino do Arduino Ainda.

Fiz o divisor de tensão baseado em 11.1V, seguindo a lei de Ohm:

vout = Vin * R2 / (R2 + R1)
vout = 11.1 * 22 / (22 + 27)
vout = 4.983

Seria bom o suficiente, não fora a questão supracitada.

Para R1 usei um resistor de 27k e para R2 usei um resistor de 22K, chegando nesse valor na divisão.

Ainda não adicionei os valores a um dos displays (ainda não decidi qual vou usar e começou a me bater uma preguiça), então fiz o código para mostrar o resultado da leitura do pino analógico no terminal. Resta fazer o mapeamento dos valores do pino para porcentagem, mostrar em um display etc.

Antes de colocar no Arduino, fiz um "teste controlado" fora do circuito, só para comprovar o resultado esperado no divisor de tensão. Para entender o quão simples é o processo para o caso de você não ter nenhuma intimidade com eletrônica, o resultado de um divisor de tensão dever ser algo como isso:

divisor_de_tensao-300x49.webp

Se quiser mais informações sobre divisor de tensão, escrevi esse artigo a respeito.

Código

O código até agora é extremamente simples, pretendo evoluir isso depois que estiver com minha CNC laser em mãos, para fazer algo mais organizado. Por enquanto, você pode ir adquirindo seu circuito HX-S3-01 12.6V 10A com a EasyTronics.

O código inicial para teste é esse:

#define APORT A2

void getSamples(uint8_t samples){
  float result =0;
  for (uint8_t i=0; i<samples; i++){
    result += analogRead(APORT) * 1.0;
  }
  result = result/samples;

  Serial.println(result);
}

void setup() {
  Serial.begin(9600);
}

void loop() {

 delay(1000);
 getSamples(10);
}

Com a carga atual da bateria, o valor deve ser sempre 1023, não vejo razão para mostrar, mas assim que tiver um projeto bonitinho, escrevo novamente.

Até a próxima!

Inscreva-se no nosso canal Manual do Maker no YouTube.

Também estamos no Instagram.

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.