Carregador Inteligente Avançado de Baterias com Multiplexação e Display Digital
Componentes e Materiais
- Arduino UNO – 1 unidade
- Shield Proto para Arduino – 1 unidade
- MCP3008 (ADC 8 canais, 10-bit, SPI) – 1 unidade
- Módulo Relé 5V (2 canais, optoacoplado) – 3 unidades (total 6 canais)
- Módulo Buck LM2596 (3A, ajustável) – 1 unidade (alimentação do carregador)
- Sensor Ultrassónico HC-SR04 – 1 unidade (detecção de presença para ligar display)
- Display LCD 16x2 I2C (YWRobot LCM1602 IIC V1) – 1 unidade
- Resistores 1 kΩ (12 un.) – divisores de tensão para MCP3008
- Bloco de terminais 6 posições – conexão das baterias
- Fonte de alimentação 12V/5A (para o buck e relés)
Ferramentas
- Ferro de soldar, estanho, multímetro
Sobre o Projeto
Sistema para manter até 6 baterias de 12V (carro, barco, gerador, etc.) em carga de manutenção durante o inverno, usando um único carregador inteligente comutado automaticamente entre baterias. O Arduino monitoriza tensões, controla relés e gere ciclos de carga.
Funcionamento
- Bateria 1 (obrigatória): Ligação fixa ao pino 1 do bloco de terminais. Alimenta o Arduino (via buck LM2596 → 5V) e serve de referência.
- Baterias 2–6: Ligadas em qualquer ordem nos terminais 2–6. Detetadas automaticamente por tensão > 8V.
- Ciclo de carga: Cada bateria ativa recebe 1 hora de carga (configurável) antes de comutar para a seguinte.
- Monitorização: MCP3008 lê 6 divisores de tensão (2×1kΩ = 1/11 da tensão da bateria). Arduino calcula tensão real.
- Display LCD: Mostra tensões das baterias 1–4 (linha 1: bat 1,2 | linha 2: bat 3,4). Alterna para baterias 5,6 + tensões internas (5V, 3.3V) a cada poucos segundos.
- Economia de display: HC-SR04 desliga backlight após 100s sem movimento. Passar a mão (<80 cm) reativa por 100s.
- Modo teste rápido: Manter mão sobre HC-SR04 por alguns segundos → pisca backlight → relés comutam a cada poucos segundos para verificação. Repetir para voltar ao normal.
Funções Principais do Código
read_show_volts()– Lê ADC, atualiza LCD, deteta baterias conectadas (>min_volts), atualiza array de relés ativos.checkRelays()– Timer: quandocharge_time_counter >= charge_time_max, avança para próximo relé ativo.update_display()– Alterna vistas no LCD.read_distance()– HC-SR04: liga/desliga backlight por proximidade.
Parâmetros Ajustáveis (no código)
chargeTime– Tempo por bateria (default 1h = 3.600.000 ms).min_volts– Limiar de deteção (default 1V no ADC ≈ 11V real).time_on_count– Segundos de backlight ligado (default 100).volts_update– Intervalo de leitura ADC (default 500 ms).
Código Completo
Disponível no projeto original (arquivo BatteryMultiplexer.ino). Usa bibliotecas Wire, LiquidCrystal_I2C, timer, HCSR04.
Esquema Elétrico
Ver secção Schematics: divisor de tensão 1k/1k por canal → MCP3008 (SPI: pinos 10,11,12,13) → Arduino. Relés nos pinos 3,4,5,6 (ativos em LOW). HC-SR04 nos pinos 11 (trig), 12 (echo). LCD I2C no endereço 0x27 (pinos A4/A5).
Processo de manufatura
- Persianas Inteligentes: Controle Automático de Luz com Arduino e Energia Solar
- Mealheiro Inteligente: Controlar Aceitador de Moedas com Arduino Nano
- Monitor de Temperatura e Relógio Tempo Real com Arduino Due e Display TFT 3.2"
- Controlar um LED via Bluetooth com Arduino – Guia DIY Simples
- Soluções de Energia Otimizadas para Projetos Arduino
- Projeto HMI Interativo com Nextion, Arduino Mega e Sensores
- Construa um Voltímetro DIY com Arduino e Display Nokia 5110 – Guia Passo a Passo
- Kit de Treinamento Arduino Completo com Mega 2560, Sensores, Motores e PCB Personalizada
- Construa o App Fridgeye com Display Nextion: Guia Passo a Passo
- Medição Precisa de Radiação Solar com Arduino UNO e Ethernet Shield