Stap 3: Spanning meten
Spanning wordt gemeten door de hulp van een circuit spanning divider. Als de ARDUINO is analoge pin ingangsspanning
beperkt tot 5V ontwierp ik de scheidingslijn van de spanning op zodanige wijze dat de uitgangsspanning hieruit minder dan 5V moet. Mijn batterij wordt gebruikt voor het opslaan van de macht van het zonnepaneel is gewaardeerd 6v, 5.5Ah.So heb ik aan stap-neer deze 6.5v met een spanning lager dan 5V.
Ik gebruikte R1 = 10k en R2 = 10K. De waarde van de R1 en R2 kan lager maar het probleem is dat wanneer de weerstand laag hogere stroom vloeien door het daardoor grote hoeveelheid stroom (P = I ^ 2R) afgevoerd in de vorm van warmte. Zo verschillend weerstandswaarde kan worden gekozen, maar moet worden gezorgd om te minimaliseren van het verlies van de macht over de weerstand.
Vout R2 = /(R1+R2) * Vbat
VBAT = 6.5 bij volledig opgeladen batterij
R1 = 10k en R2 = 10k
Vout = 10 /(10+10) * 6.5 = 3.25v is lager dan 5v en geschikt voor analoge pin van de ARDUINO
OPMERKING
Ik heb aangetoond 9 Volt batterij in bared bestuur circuit is alleen om bijvoorbeeld te verbinden de draden. Maar de werkelijke batterij die ik gebruikte is een 6 Volt, 5.5Ah zuur accu leiden.
Kalibratie van de spanning:
Wanneer de batterij volledig is opgeladen (6.5v) zullen we een Vout = 3.25v en lagere waarde voor andere lagere batterijspanning van de.
AEDUINO ADC converteren analoog signaal bijbehorende digitale nader tot elkaar brengen.
Toen de accuspanning 6.5v is kreeg ik 3.25v van de spanning divider en sample1 696 in seriële monitor waar sample1 is ADC waarde correspondeert met 3.25v =
Voor een beter begrip heb ik bijgevoegd de real-time simulatie van 123D.circuit voor meting van de spanning
Kalibratie:
3.25V gelijk aan 696
1 is gelijk aan 3.25/696=4.669mv
Vout = (4.669 * sample1) / 1000 volt
Werkelijke batterijspanning = (2 * Vout) volt
ARDUINO CODE:
150 te nemen monsters van spanning divider met een tussenpoos van 2sec en dan gemiddelde de monsters gegevens verzameld voor (int i = 0; ik < 150; i ++)
{
sample1=sample1+analogRead(a2); Lees de spanning van de scheidingslijn circuit
vertraging (2);
}
sample1 = sample1/150;
spanning = 4.669 * 2 * sample1/1000;