Olá, boa noite!
No fim de semana passado tava à procura dum projecto pequeno pra me entreter um bocado, e decidi fazer um tester para as minhas LiPo.
Como isto até é uma coisa um bocado simples, e dá jeito, decidi então partilhar convosco (já que não apareço no fórum há uns quase dez anos).
Antes de começar, peço só que tenham atenção à polaridade das baterias (em especial LiPos) pra não fazerem asneira, já que o projecto que aqui se segue não tem qualquer protecção contra inversão de polaridade - se quiserem, modifiquem ou façam extensões pra melhor o adequar aos vossos projectos/gostos.
Também é bom dizer que no meu projecto, usei certos componentes que podem muito bem variar, caso queiram fazer o vosso mas não tenham os mesmos componentes.
Material a usar:
1x resistência de 3k
1x resistência de 2k
4x resistencia de 1k
1x Atmega 328p
1x 7805 - regulador de 5v
2x condensadores 10u
1x cristal
2x condensadores 22pF
1x OLED display 164*64
perf board, fios, headers femea p/ display e atmega, headers macho p/ conector da bateria, solda e ferro de soldar.
se não tiverem as resistências dos valores indicados acima, ponham umas quantas em série que dêem no mesmo valor (ou o mais próximo possível).
Imagem 1:
Nesta imagem, como podem ver, só incluí as ligações da bateria e resistências. Convém ter em atenção aos pontos de ligação! Gnd e VCC deveriam então ligar ao regulador ou arduino (não incluídos na imagem, por já haver tutoriais por aqui sobre como fazer um breaduino). É importante lembrar que a tensão à saída da segunda celula da bateria pode dar 7.2v, e, se estiverem a usar breaduino, o regulador é extremamente importante para não queimar a atmega.
![](https://lusorobotica.com/index.php?PHPSESSID=8a1341fa4f3245499c34c26615561362&action=dlattach;topic=9296.0;attach=4403;image)
Código de teste (de referir que tinha visto outros códigos online, que usavam o valor das resistências para mostrar leituras mais exactas, que testei e não obtive resultados nem perto das leituras do voltímetro, daí que tenha optado por não incluir o valor das resistências, mas focado no valor da tensão. Os valores lidos com o código abaixo foram exactamente o que tinha lido com o voltímetro, nas duas baterias testadas) :
#include <Adafruit_SSD1306.h>
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
void setup(){
pinMode(A0, INPUT);
pinMode(A1, INPUT);
pinMode(A2, INPUT);
pinMode(A3, INPUT);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.display();
display.setTextColor(1);
display.setTextSize(1);
}
void loop(){
display.clearDisplay();
display.setCursor(0,0);
float p1 = 0;
float p2 = 0;
float p3 = 0;
float p4 = 0;
// 5.02(V) foi a leitura do voltimetro ao Vout do regulador
p1 = 5.02 * analogRead(A0) / 1023;
p2 = 5.02 * analogRead(A1) / 1023;
p3 = 5.02 * analogRead(A2) / 1023;
p4 = 5.02 * analogRead(A3) / 1023;
display.print("V1: ");
display.println(p1);
display.print("V2: ");
display.println(p2);
display.print("V3: ");
display.println(p3);
display.print("V4: ");
display.println(p4);
display.display();
delay(100);
}
Imagem 2:
Nesta imagem podem então ver o resultado do código e ligações acima.
![](https://lusorobotica.com/index.php?PHPSESSID=8a1341fa4f3245499c34c26615561362&action=dlattach;topic=9296.0;attach=4405;image)
Video 1:
Neste vídeo podem ver o resultado final do projecto, depois de 'brincar' um bocado com o código, e dar um ar mais agradável à representação das leituras das células / bateria. De notar que a ultima célula não tem leitura, por a bateria em teste ter só 3 células.
Comentários, sugestões e tal, estejam à vontade..