Paso 3: Medición de voltaje
Voltaje se mide con la ayuda de un circuito divisor de tensión. Como el voltaje de entrada de pin analógico de ARDUINO
restringido a 5V diseñé el divisor de voltaje de manera tal que el voltaje de la salida de ella debe ser menor que 5V. Mi batería que se utiliza para almacenar la energía del panel solar está clasificado 6v, 5.5Ah.So tengo que bajar este 6.5v a una tensión menor que 5V.
He usado R1 = 10k y R2 = 10K. El valor de R1 y R2 puede ser inferior pero el problema es que cuando la resistencia es baja mayor corriente a través de ella como resultado gran cantidad de energía (P = I ^ 2R) disipada en forma de calor. Valor de resistencia tan diferente puede ser elegido pero debe tener cuidado para reducir al mínimo la pérdida de energía a través de la resistencia.
Vout = R2 /(R1+R2) * Vbat
VBAT = 6.5 cuando está completamente cargada
R1 = 10k y R2 = 10k
Vout = 10 /(10+10) * 6,5 = 3.25v que es inferior a 5v y conveniente para el pin analógico ARDUINO
NOTA
He mostrado 9 batería de voltio en el circuito del tablero pelado es solo por ejemplo conectar los cables. Pero el real de la batería utiliza es un 6 voltios, 5.5Ah batería de plomo.
Calibración de voltaje:
Cuando la batería está completamente cargada (6.5v) obtenemos una Vout = 3.25v y el valor más bajo para otros menor voltaje de la batería.
Convertir ADC AEDUINO analógica señal de aproximación digital correspondiente.
Cuando el voltaje de la batería es 6.5v tengo 3.25v del divisor de tensión y sample1 = 696 en el monitor serial, donde sample1 es el valor de ADC corresponde a 3.25v
Para mejor comprensión he adjuntado la simulación en tiempo real por 123D.circuit para medida de voltaje
Calibración:
3.25V equivalente a 696
1 es equivalente a 3.25/696=4.669mv
Vout = (4.669 * sample1) / 1000 voltios
Voltaje de la batería real = (2 * Vout) voltios
CÓDIGO DE ARDUINO:
tomar 150 muestras de divisor de tensión con un intervalo de 2 segundos y medio entonces los datos de las muestras recogidos para (int i = 0; i < 150; i ++)
{
sample1=sample1+analogRead(a2); leer el voltaje del circuito divisor
demora (2);
}
sample1 = sample1/150;
voltaje = 4.669 * 2 * sample1/1000;