Manual
do
Maker
.
com
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.
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:
Uma representação mais clara seria essa:
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%.
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:
Se quiser mais informações sobre divisor de tensão, escrevi esse artigo a respeito.
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.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.