Índice:
- Etapa 1: O que é MPPT e por que precisamos dele?
- Etapa 2: COMO FUNCIONA O MPPT?
- Etapa 3: Implementando MPPT no Arduino
- Etapa 4: Conversor Buck
- Etapa 5: retoque final -
- Etapa 6: ATUALIZAÇÃO: - Diagrama de circuito real, BOM e código
Vídeo: Arduino - Carregador solar PV MPPT: 6 etapas (com fotos)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
Existem muitos controladores de carga disponíveis no mercado. controladores de carga baratos comuns não são eficientes para usar a potência máxima dos painéis solares. Os que são eficientes são muito caros.
Então, decidi fazer meu próprio controlador de carga, que é eficiente e inteligente o suficiente para entender as necessidades da bateria e as condições solares. ele toma as ações apropriadas para extrair o máximo de energia disponível da energia solar e colocá-la dentro da bateria de forma muito eficiente.
SE VOCÊ GOSTA DO MEU ESFORÇO, POR FAVOR, VOTE ESSES INSTRUÇÕES.
Etapa 1: O que é MPPT e por que precisamos dele?
Nossos painéis solares são burros e não são inteligentes para entender as condições da bateria. Suponha que temos um painel solar de 12v / 100 watts e ele fornecerá uma saída entre 18V-21V dependendo dos fabricantes, mas as baterias são classificadas para tensão nominal de 12v, em condições de carga total serão 13,6v e 11,0v no máximo descarga. agora vamos assumir que nossas baterias estão carregando 13 V, os painéis estão dando 18 V, 5,5 A com 100% de eficiência de trabalho (não é possível ter 100%, mas vamos supor). os controladores comuns têm um regulador de tensão PWM ckt que reduz a tensão para 13,6, mas não há ganho de corrente. ele apenas fornece proteção contra sobrecarga e fuga de corrente para os painéis durante a noite.
Portanto, estamos tendo 13,6 V * 5,5 A = 74,8 watts.
Perdemos aproximadamente 25 watts.
Para encontrar esse problema, usei o conversor smps buck. esse tipo de conversor tem eficiência acima de 90%.
O segundo problema que temos é a produção não linear de painéis solares. eles precisam ser operados em certa tensão para colher a potência máxima disponível. Sua produção varia ao longo do dia.
Para resolver este problema, algoritmos MPPT são usados. MPPT (Rastreamento de Ponto de Potência Máxima) como o nome sugere, esse algoritmo rastreia a potência máxima disponível dos painéis e varia os parâmetros de saída para sustentar a condição.
Portanto, ao usar o MPPT nossos painéis estarão gerando a potência máxima disponível e o conversor de buck estará colocando essa carga de forma eficiente nas baterias.
Etapa 2: COMO FUNCIONA O MPPT?
Não vou discutir isso em detalhes. então se você quiser entender dê uma olhada neste link -O que é MPPT?
Neste projeto eu rastreei as características de entrada V-I e saída V-I também. multiplicando a entrada V-I pela saída V-I, podemos obter a potência em watts.
digamos que estamos tendo 17 V, 5 A, ou seja, 17x5 = 85 watts a qualquer hora do dia. ao mesmo tempo, nossa saída é de 13 V, 6A, ou seja, 13x6 = 78 Watt.
Agora o MPPT aumentará ou diminuirá a tensão de saída comparando com a alimentação de entrada / saída anterior.
se a potência de entrada anterior era alta e a tensão de saída era menor do que a atual, então a tensão de saída será mais baixa novamente para voltar à potência alta e se a tensão de saída for alta, a tensão atual aumentará para o nível anterior. assim, ele continua oscilando em torno do ponto de potência máxima. essas oscilações são minimizadas por algoritmos MPPT eficientes.
Etapa 3: Implementando MPPT no Arduino
Este é o cérebro deste carregador. Abaixo está o código do Arduino para regular a saída e implementação do MPPT em um único bloco de código.
// Iout = corrente de saída
// Vout = tensão de saída
// Vin = tensão de entrada
// Pin = potência de entrada, Pin_previous = última potência de entrada
// Vout_last = última tensão de saída, Vout_sense = tensão de saída atual
void regular (flutuar Iout, flutuar Vin, flutuar Vout) {if ((Vout> Vout_max) || (Iout> Iout_max) || ((Pin> Pin_previous && Vout_sense <Vout_last) || (PinVout_last)))
{
if (duty_cycle> 0)
{
dever_ciclo - = 1;
}
analogWrite (buck_pin, duty_cycle);
}
else if ((Vout
{
if (duty_cycle <240)
{dever_ciclo + = 1;
}
analogWrite (buck_pin, duty_cycle);
}
Pin_previous = Pin;
Vin_last = Vin;
Vout_last = Vout;
}
Etapa 4: Conversor Buck
Usei o mosfet do canal N para fazer o conversor de buck. normalmente as pessoas escolhem o mosfet do canal P para a comutação do lado alto e se escolherem o mosfet do canal N para o mesmo propósito, será necessário um IC de driver ou ckt de inicialização.
mas eu modifiquei o conversor de buck ckt para ter uma comutação de lado baixo usando mosfet de canal N. i, m usando o canal N porque são de baixo custo, altas classificações de energia e menor dissipação de energia. este projeto usa mosfet de nível lógico IRFz44n, de modo que pode ser acionado diretamente por um pino PWM arduino.
para corrente de carga mais alta, deve-se usar um transistor para aplicar 10 V na porta para deixar o mosfet em saturação completamente e minimizar a dissipação de energia, eu também fiz o mesmo.
como você pode ver no ckt acima, coloquei o mosfet na tensão -ve, usando + 12v do painel como aterramento. esta configuração me permite usar um mosfet de canal N para conversor de buck com componentes mínimos.
mas também tem algumas desvantagens. como você tem tensão de ambos os lados separados, você não tem mais um aterramento de referência comum. portanto, medir tensões é muito complicado.
Eu conectei o Arduino aos terminais de entrada Solar e usando sua linha -ve como aterramento para o Arduino. podemos facilmente medir a volateg de entrada neste ponto usando um divisor de tensão ckt de acordo com nossa exigência. mas não podemos medir a tensão de saída tão facilmente, pois não temos um aterramento comum.
Agora, para fazer isso, existe um truque. em vez de medir a tensão acumulada no capacitor de saída, medi a tensão entre duas linhas -ve. usando solar -ve como aterramento para o Arduino e output -ve como o sinal / tensão a ser medido. valor que você obteve com esta medição deve ser subtraído da tensão de entrada medida e você obterá a tensão de saída real através do capacitor de saída.
Vout_sense_temp = Vout_sense_temp * 0,92 + float (raw_vout) * volt_factor * 0,08; // mede a volatilidade em input gnd e output gnd.
Vout_sense = Vin_sense-Vout_sense_temp-diode_volt; // altera a diferença de tensão entre dois aterramentos para a tensão de saída..
Para medições de corrente, usei os módulos de detecção de corrente ACS-712. Eles foram alimentados por arduino e conectados à entrada gnd.
os temporizadores internos são modificados para ganhar 62,5 Khz PWM no pino D6. que é usado para conduzir o mosfet. um diodo de bloqueio de saída será necessário para fornecer vazamento reverso e proteção de polaridade reversa, use um diodo Schottky da classificação de corrente desejada para este propósito. O valor do indutor depende dos requisitos de frequência e corrente de saída. você pode usar calculadoras conversoras de buck disponíveis on-line ou usar carga de 100uH 5A-10A. nunca exceda a corrente de saída máxima do indutor em 80% -90%.
Etapa 5: retoque final -
você também pode adicionar recursos adicionais ao seu carregador. como o meu, o LCD também exibe os parâmetros e 2 interruptores para receber a entrada do usuário.
Vou atualizar o código final e completar o diagrama ckt muito em breve.
Etapa 6: ATUALIZAÇÃO: - Diagrama de circuito real, BOM e código
ATUALIZAR:-
Eu carreguei o código, bom e circuito. é um pouco diferente do meu, porque é mais fácil fazer esse.
Recomendado:
Matriz de painel solar com módulo MPPT chinês: 11 etapas
Matriz de painel solar com módulo MPPT chinês: uma breve descrição da minha opinião sobre como fazer os painéis solares funcionarem bem, e de forma bastante barata … Eu absolutamente não garanto nenhum dos conteúdos, eles podem ser apenas divagações de um homem louco, na verdade Suspeito fortemente que sejam … Algumas fotos devem ser
Estação meteorológica NaTaLia: Estação meteorológica com energia solar Arduino Feito da maneira certa: 8 etapas (com fotos)
Estação meteorológica de NaTaLia: Estação meteorológica com energia solar Arduino feito da maneira certa: após 1 ano de operação bem-sucedida em 2 locais diferentes, estou compartilhando meus planos de projeto de estação meteorológica movida a energia solar e explicando como ela evoluiu para um sistema que pode realmente sobreviver por muito tempo períodos de energia solar. Se você seguir
Cabine de fotos de casamento Arduino - peças impressas em 3D, automatizadas e de baixo orçamento: 22 etapas (com fotos)
Arduino Wedding Photo Booth - peças impressas em 3D, automatizadas e de baixo orçamento: Recentemente fui convidado para o casamento do irmão do meu parceiro e eles perguntaram se poderíamos construir uma cabine fotográfica para eles, pois seu aluguel é muito caro. Isso é o que nós pensamos e depois de vários elogios, decidi transformá-lo em um instrutivo
Dispositivo de radiação solar (SID): um sensor solar baseado em Arduino: 9 etapas
Dispositivo de radiação solar (SID): um sensor solar baseado em Arduino: O dispositivo de radiação solar (SID) mede o brilho do sol e é projetado especificamente para ser usado em sala de aula. Eles são construídos usando Arduinos, o que permite que sejam criados por todos, desde estudantes do ensino médio até adultos. Este inst
CONTROLADOR DE CARGA SOLAR ARDUINO (versão 1): 11 etapas (com fotos)
CONTROLADOR DE CARGA SOLAR ARDUINO (versão 1): [Reproduzir vídeo] Em meus instructables anteriores, descrevi os detalhes do monitoramento de energia de um sistema solar fora da rede. Também ganhei a competição de circuitos 123D para isso. Você pode ver este MEDIDOR DE ENERGIA ARDUINO .Finalmente eu posto minha nova carga de versão 3