Mensagens de Pedro L Ribeiro - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)2024-03-29T05:00:53ZPedro L Ribeirohttps://labdegaragem.com/profile/PedroLRibeirohttps://storage.ning.com/topology/rest/1.0/file/get/704340603?profile=RESIZE_48X48&width=48&height=48&crop=1%3A1https://labdegaragem.com/profiles/blog/feed?user=3jum4emsq82e3&xn_auth=noCarregador p/ Bateria Selada Qualquer Voltagemtag:labdegaragem.com,2019-01-09:6223006:BlogPost:6955542019-01-09T13:30:00.000ZPedro L Ribeirohttps://labdegaragem.com/profile/PedroLRibeiro
<p><span><a href="https://storage.ning.com/topology/rest/1.0/file/get/704158404?profile=original" rel="noopener" target="_blank"><img class="align-full" src="https://storage.ning.com/topology/rest/1.0/file/get/704158404?profile=original"></img></a> <a href="https://storage.ning.com/topology/rest/1.0/file/get/704112577?profile=original" rel="noopener" target="_blank">https://storage.ning.com/topology/rest/1.0/file/get/704112577?profile=original…</a></span></p>
<p><span><a href="https://storage.ning.com/topology/rest/1.0/file/get/704158404?profile=original" target="_blank" rel="noopener"><img src="https://storage.ning.com/topology/rest/1.0/file/get/704158404?profile=original" class="align-full"/></a><a href="https://storage.ning.com/topology/rest/1.0/file/get/704112577?profile=original" target="_blank" rel="noopener">https://storage.ning.com/topology/rest/1.0/file/get/704112577?profile=original</a><span style="font-size: 12pt;"><a href="https://storage.ning.com/topology/rest/1.0/file/get/372693557?profile=original" target="_blank" rel="noopener"><br/></a> CARREGADOR QUALQUER VOLTAGEM</span></span></p>
<p><span style="font-size: 12pt;">BATERIA SELADA</span></p>
<p></p>
<p><span style="font-size: 12pt;">As baterias chumbo-ácidas seladas caracterizam-se por pedirem carga por voltagem constante, em contraste com as comuns.</span></p>
<p><span style="font-size: 12pt;">Muitos exemplos existem por aí de projetos desenvolvidos para 12 volts. Minha tarefa era a de construir um carregador para uma GPU (Ground Power Unit) de helicópteros, que utilizam baterias de 28 volts. Acabei com um projeto que pode ser facilmente adaptado para qualquer voltagem e amperagem.</span></p>
<p><span style="font-size: 12pt;">As pesquisas me levaram a circuitos utilizando o Arduino. O problema que sempre observo, é que essa placa de desenvolvimento virou uma parafernália entre projetistas que pouco entendem de eletrônica, e em seus projetos encontro muitos problemas.</span></p>
<p><span style="font-size: 12pt;">Neste ponto é que eu devo afirmar que não sou engenheiro eletrônico, nem tampouco programador em C++. Conheço um tanto de eletrônica por hobby e ainda vou gatinhando nos sketch de Arduino.</span></p>
<p><span style="font-size: 12pt;">A idéia deste circuito não é totalmente original. Como quase tudo que fazemos, sempre estudamos os projetos dos outros.</span></p>
<p><span style="font-size: 12pt;">Quando se lida com voltagens mais altas como neste caso, há a necessidade de isolar bastante o Arduino para protege-lo das consequências dele experimentar fatais picos de tensão. Foi isso que tentei fazer aqui, e é nisso que me diferenciei dos outros projetos que consultei na net.</span></p>
<p></p>
<p><span style="font-size: 12pt;">O carregador baseia-se em um Arduino Mini mas pode-se utilizar qualquer outro. O programa irá faze-lo disparar um Mosfet de canal P em PWM. Quando digo PWM quero dizer uma série de pulsos gerados pelo sketch, mantendo constante o pico de voltagem de carga. A corrente obedecerá a resistencia interna da bateria, que aumenta rápida porem gradativamente com o processo de carga. Note-se que se se pretende fazer um carregador para baterias que sejam totalmente descarregadas, haverá com certeza a necessidade de se limitar a corrente nos primeiros minutos de carga. As instruções simplesmente emitem um pulso de duração inversamente proporcional a voltagem da bateria, interrompe para medir a voltarem e volta a carregar, sucessivamente. Tentei comentar bastante o sketch e espero que assim ele tenha ficado intuitivo. Passo agora a descrever o circuito</span></p>
<p></p>
<p><span style="font-size: 12pt;">O Mosfet que usei foi o 9630, ok para as correntes de carga de minhas bateiras de 27 Ah. Outros modelos de canal P podem ser utilizados, adequando o circuito a diferentes cargas. O Arduino é alimentado por uma fonte de 6 VDC conectada ao pino Vin. Um diodo zener é utilizado para “ler” a tensão da bateria. No meu caso usei um de 30V, abaixo portanto de minha voltagem de flutuação que será 32,2V (14 x 2,3). Isso me permite ajustar bem o sketch. Esse valor de zener poderá ser alterado para outras voltagens de baterias. Como o pino só pode receber até 5v, nesse ponto estará presente somente a tensão que exceder a tensão zener. Para esse sinal chegar com boa isolação ao Arduino, utilizei um LM358, conectado no modo de zero ganho, como seguidor de tensão. Devido a altíssima impedâncias dos pinos de entrada, ele pode ler a tensão através de um resistor de 3M e entregar quase a mesma voltagem ao pino A3. O microprocessador irá mandar o sinal de PWM através do pino D3 que por sua vez está conectado a um acoplador ótico. O transistor do acoplador irá trazer o Gate do Mosfet a zero, disparando-o. Como no meu caso a tensão é superior a tensão máxima daquele Gate, tive de acrescentar um pequeno circuito com um Zener para ajuste dessa variável, aproveitando também para alimentar o OpAmp. Esse diodo pode ser jumpeado nos casos em que a tensão da fonte seja adequada ao Mosfet. Para cargas maiores poder-se-ia facilmente juntar ao sketch um controle de temperatura do dissipador, usando-se o sensor adequado.</span></p>
<p><span style="font-size: 12pt;">Não gosto muito daquelas placas universais com furinhos, acho mais fácil fazer logo um PCB, no fim do texto estão os arquivos de Eagle para quem precisar.</span></p>
<p></p>
<p><span style="font-size: 12pt;"><span class="Apple-converted-space">Aqui vai também o meu Sketch:</span></span></p>
<p></p>
<p>int LED1 = 8; // LED vermelho no pino 8<br/> int LED2 = 9; // LED verde no pino 9<br/> int y;<br/> int choff = 1500; // tempo desligado para deixar a tensão da bateria estabilizar e ler y<br/> long chon; //Tempo carregando<br/> long CP = 550; //variável que determinará o estado de carga final<br/> long Volt; // um número que mostrará o progresso do carregamento no monitor<br/> void setup() {</p>
<p>pinMode(3, OUTPUT);<br/> digitalWrite(3, LOW);<br/> pinMode(LED1, OUTPUT); <br/> pinMode(LED2, OUTPUT);</p>
<p>Serial.begin(9600);<br/> delay(500);<br/> y = analogRead(3); // ler a diferença entre a tensão zener e a carga da bateria<br/> <br/> }</p>
<p>void loop() {<br/> // Mostras no monitor, usadas para depurar e ajustar variáveis<br/> Serial.print("CP = ");<br/> Serial.println(CP);<br/> <br/> CP = 550;<br/> if (y <= CP)<br/> chon = ((CP - y) * 100); // calcula o tempo transformando inversamente o valor de y em mils<br/> else chon = 1000; // ajusta o tempo para 1 segundo, a bateria é considerada carregada, mantém a flutuação.<br/> // É preciso ajustar o valor de chon para manter a corrente média de flutuação que a bateria requer.<br/> <br/> digitalWrite(3, HIGH);<br/> <br/> Volt = map(y, 0, 1023, 0, 5000); // vai publicar excesso de tensão zener em milivolts<br/> Serial.print(y);<br/> Serial.print(" ");<br/> Serial.print ("Voltage: ");<br/> Serial.print(Volt);<br/> Serial.print(" ");<br/> <br/> // gerencia os LEDs que indicam o esdato da carga<br/> if (y > CP) digitalWrite(LED2, LOW); <br/> if (y > CP) digitalWrite(LED1, HIGH); // Vermelho aceso bateria carregando<br/> if (y <= CP) digitalWrite(LED2, HIGH);// Verde aceso bateria pronta<br/> if (y <= CP) digitalWrite(LED1, LOW);<br/> <br/> Serial.print("chon = ");<br/> Serial.print(chon);<br/> Serial.print(" ");<br/> delay(chon); // Carrega durante o pulso chon<br/> digitalWrite(3, LOW); // Desliga o Mosfet<br/> delay (300);<br/> y = analogRead(3); // lê a diferença entre a voltagem do Zener e a carga atual</p>
<p>delay(choff); // Tempo desligado do PWM</p>
<p>}</p>
<p></p>
<p><span><a href="https://storage.ning.com/topology/rest/1.0/file/get/704197020?profile=original" target="_blank" rel="noopener">CarregadorQualquerVoltagem.ino</a></span></p>
<p>Arquivos de Eagle:</p>
<p><a href="https://storage.ning.com/topology/rest/1.0/file/get/704133094?profile=original" target="_blank" rel="noopener">CarregadorGPUVer7.0.sch</a></p>
<p><a href="https://storage.ning.com/topology/rest/1.0/file/get/704135566?profile=original" target="_blank" rel="noopener">CarregadorGPUVer7.0.brd</a></p>
<p></p>
<p></p>